Imported Upstream version 3.2.1
authorHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:33:25 +0000 (10:33 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:33:53 +0000 (10:33 +0900)
Change-Id: I07bbacc5ba28698ceaa949af1d86e2186ea292e1
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
425 files changed:
CHANGES.txt
PKG-INFO
doc/extensions.txt
doc/html/FAQ.html
doc/html/api.html
doc/html/api/abc.ABCMeta-class.html
doc/html/api/api-objects.txt
doc/html/api/class-tree.html
doc/html/api/cssselect.parser.SelectorError-class.html [new file with mode: 0644]
doc/html/api/cssselect.parser.SelectorSyntaxError-class.html [new file with mode: 0644]
doc/html/api/cssselect.xpath.ExpressionError-class.html [new file with mode: 0644]
doc/html/api/cssselect.xpath.XPathExpr-class.html [new file with mode: 0644]
doc/html/api/deprecated-index.html
doc/html/api/exceptions.AssertionError-class.html
doc/html/api/help.html
doc/html/api/identifier-index-A.html
doc/html/api/identifier-index-B.html
doc/html/api/identifier-index-C.html
doc/html/api/identifier-index-D.html
doc/html/api/identifier-index-E.html
doc/html/api/identifier-index-F.html
doc/html/api/identifier-index-G.html
doc/html/api/identifier-index-H.html
doc/html/api/identifier-index-I.html
doc/html/api/identifier-index-J.html
doc/html/api/identifier-index-K.html
doc/html/api/identifier-index-L.html
doc/html/api/identifier-index-M.html
doc/html/api/identifier-index-N.html
doc/html/api/identifier-index-O.html
doc/html/api/identifier-index-P.html
doc/html/api/identifier-index-Q.html
doc/html/api/identifier-index-R.html
doc/html/api/identifier-index-S.html
doc/html/api/identifier-index-T.html
doc/html/api/identifier-index-U.html
doc/html/api/identifier-index-V.html
doc/html/api/identifier-index-W.html
doc/html/api/identifier-index-X.html
doc/html/api/identifier-index-Y.html
doc/html/api/identifier-index-Z.html
doc/html/api/identifier-index-_.html
doc/html/api/identifier-index.html
doc/html/api/lxml-module.html
doc/html/api/lxml-pysrc.html
doc/html/api/lxml.ElementInclude-module.html
doc/html/api/lxml.ElementInclude-pysrc.html
doc/html/api/lxml.ElementInclude.FatalIncludeError-class.html
doc/html/api/lxml.builder-module.html
doc/html/api/lxml.builder-pysrc.html
doc/html/api/lxml.builder.ElementMaker-class.html
doc/html/api/lxml.cssselect-module.html
doc/html/api/lxml.cssselect-pysrc.html
doc/html/api/lxml.cssselect.CSSSelector-class.html
doc/html/api/lxml.cssselect.LxmlHTMLTranslator-class.html
doc/html/api/lxml.cssselect.LxmlTranslator-class.html
doc/html/api/lxml.doctestcompare-module.html
doc/html/api/lxml.doctestcompare-pysrc.html
doc/html/api/lxml.doctestcompare.LHTMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare.LXMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare._RestoreChecker-class.html
doc/html/api/lxml.etree-module.html
doc/html/api/lxml.etree.AncestorsIterator-class.html
doc/html/api/lxml.etree.AttributeBasedElementClassLookup-class.html
doc/html/api/lxml.etree.C14NError-class.html
doc/html/api/lxml.etree.CDATA-class.html
doc/html/api/lxml.etree.CommentBase-class.html
doc/html/api/lxml.etree.CustomElementClassLookup-class.html
doc/html/api/lxml.etree.DTD-class.html
doc/html/api/lxml.etree.DTDError-class.html
doc/html/api/lxml.etree.DTDParseError-class.html
doc/html/api/lxml.etree.DTDValidateError-class.html
doc/html/api/lxml.etree.DocInfo-class.html
doc/html/api/lxml.etree.DocumentInvalid-class.html
doc/html/api/lxml.etree.ETCompatXMLParser-class.html
doc/html/api/lxml.etree.ETXPath-class.html
doc/html/api/lxml.etree.ElementBase-class.html
doc/html/api/lxml.etree.ElementChildIterator-class.html
doc/html/api/lxml.etree.ElementClassLookup-class.html
doc/html/api/lxml.etree.ElementDefaultClassLookup-class.html
doc/html/api/lxml.etree.ElementDepthFirstIterator-class.html
doc/html/api/lxml.etree.ElementNamespaceClassLookup-class.html
doc/html/api/lxml.etree.ElementTextIterator-class.html
doc/html/api/lxml.etree.EntityBase-class.html
doc/html/api/lxml.etree.Error-class.html
doc/html/api/lxml.etree.ErrorDomains-class.html
doc/html/api/lxml.etree.ErrorLevels-class.html
doc/html/api/lxml.etree.ErrorTypes-class.html
doc/html/api/lxml.etree.FallbackElementClassLookup-class.html
doc/html/api/lxml.etree.HTMLParser-class.html
doc/html/api/lxml.etree.LxmlError-class.html
doc/html/api/lxml.etree.LxmlRegistryError-class.html
doc/html/api/lxml.etree.LxmlSyntaxError-class.html
doc/html/api/lxml.etree.NamespaceRegistryError-class.html
doc/html/api/lxml.etree.PIBase-class.html
doc/html/api/lxml.etree.ParseError-class.html
doc/html/api/lxml.etree.ParserBasedElementClassLookup-class.html
doc/html/api/lxml.etree.ParserError-class.html
doc/html/api/lxml.etree.PyErrorLog-class.html
doc/html/api/lxml.etree.PythonElementClassLookup-class.html
doc/html/api/lxml.etree.QName-class.html
doc/html/api/lxml.etree.RelaxNG-class.html
doc/html/api/lxml.etree.RelaxNGError-class.html
doc/html/api/lxml.etree.RelaxNGErrorTypes-class.html
doc/html/api/lxml.etree.RelaxNGParseError-class.html
doc/html/api/lxml.etree.RelaxNGValidateError-class.html
doc/html/api/lxml.etree.Resolver-class.html
doc/html/api/lxml.etree.Schematron-class.html
doc/html/api/lxml.etree.SchematronError-class.html
doc/html/api/lxml.etree.SchematronParseError-class.html
doc/html/api/lxml.etree.SchematronValidateError-class.html
doc/html/api/lxml.etree.SerialisationError-class.html
doc/html/api/lxml.etree.SiblingsIterator-class.html
doc/html/api/lxml.etree.TreeBuilder-class.html
doc/html/api/lxml.etree.XInclude-class.html
doc/html/api/lxml.etree.XIncludeError-class.html
doc/html/api/lxml.etree.XMLParser-class.html
doc/html/api/lxml.etree.XMLSchema-class.html
doc/html/api/lxml.etree.XMLSchemaError-class.html
doc/html/api/lxml.etree.XMLSchemaParseError-class.html
doc/html/api/lxml.etree.XMLSchemaValidateError-class.html
doc/html/api/lxml.etree.XMLSyntaxError-class.html
doc/html/api/lxml.etree.XPath-class.html
doc/html/api/lxml.etree.XPathDocumentEvaluator-class.html
doc/html/api/lxml.etree.XPathElementEvaluator-class.html
doc/html/api/lxml.etree.XPathError-class.html
doc/html/api/lxml.etree.XPathEvalError-class.html
doc/html/api/lxml.etree.XPathFunctionError-class.html
doc/html/api/lxml.etree.XPathResultError-class.html
doc/html/api/lxml.etree.XPathSyntaxError-class.html
doc/html/api/lxml.etree.XSLT-class.html
doc/html/api/lxml.etree.XSLTAccessControl-class.html
doc/html/api/lxml.etree.XSLTApplyError-class.html
doc/html/api/lxml.etree.XSLTError-class.html
doc/html/api/lxml.etree.XSLTExtension-class.html
doc/html/api/lxml.etree.XSLTExtensionError-class.html
doc/html/api/lxml.etree.XSLTParseError-class.html
doc/html/api/lxml.etree.XSLTSaveError-class.html
doc/html/api/lxml.etree._Attrib-class.html
doc/html/api/lxml.etree._BaseErrorLog-class.html
doc/html/api/lxml.etree._Comment-class.html
doc/html/api/lxml.etree._Document-class.html
doc/html/api/lxml.etree._DomainErrorLog-class.html
doc/html/api/lxml.etree._Element-class.html
doc/html/api/lxml.etree._ElementIterator-class.html
doc/html/api/lxml.etree._ElementMatchIterator-class.html
doc/html/api/lxml.etree._ElementStringResult-class.html
doc/html/api/lxml.etree._ElementTagMatcher-class.html
doc/html/api/lxml.etree._ElementTree-class.html
doc/html/api/lxml.etree._ElementUnicodeResult-class.html
doc/html/api/lxml.etree._Entity-class.html
doc/html/api/lxml.etree._ErrorLog-class.html
doc/html/api/lxml.etree._FeedParser-class.html
doc/html/api/lxml.etree._IDDict-class.html
doc/html/api/lxml.etree._ListErrorLog-class.html
doc/html/api/lxml.etree._LogEntry-class.html
doc/html/api/lxml.etree._ProcessingInstruction-class.html
doc/html/api/lxml.etree._RotatingErrorLog-class.html
doc/html/api/lxml.etree._SaxParserTarget-class.html
doc/html/api/lxml.etree._TargetParserResult-class.html
doc/html/api/lxml.etree._Validator-class.html
doc/html/api/lxml.etree._XPathEvaluatorBase-class.html
doc/html/api/lxml.etree._XSLTProcessingInstruction-class.html
doc/html/api/lxml.etree._XSLTResultTree-class.html
doc/html/api/lxml.etree.iterparse-class.html
doc/html/api/lxml.etree.iterwalk-class.html
doc/html/api/lxml.etree.xmlfile-class.html
doc/html/api/lxml.html-module.html
doc/html/api/lxml.html-pysrc.html
doc/html/api/lxml.html.CheckboxGroup-class.html
doc/html/api/lxml.html.CheckboxValues-class.html
doc/html/api/lxml.html.ElementSoup-module.html
doc/html/api/lxml.html.ElementSoup-pysrc.html
doc/html/api/lxml.html.FieldsDict-class.html
doc/html/api/lxml.html.FormElement-class.html
doc/html/api/lxml.html.HTMLParser-class.html
doc/html/api/lxml.html.HtmlComment-class.html
doc/html/api/lxml.html.HtmlElement-class.html
doc/html/api/lxml.html.HtmlElementClassLookup-class.html
doc/html/api/lxml.html.HtmlEntity-class.html
doc/html/api/lxml.html.HtmlMixin-class.html
doc/html/api/lxml.html.HtmlProcessingInstruction-class.html
doc/html/api/lxml.html.InputElement-class.html
doc/html/api/lxml.html.InputGetter-class.html
doc/html/api/lxml.html.InputMixin-class.html
doc/html/api/lxml.html.LabelElement-class.html
doc/html/api/lxml.html.MultipleSelectOptions-class.html
doc/html/api/lxml.html.RadioGroup-class.html
doc/html/api/lxml.html.SelectElement-class.html
doc/html/api/lxml.html.TextareaElement-class.html
doc/html/api/lxml.html.XHTMLParser-class.html
doc/html/api/lxml.html._MethodFunc-class.html
doc/html/api/lxml.html.builder-module.html
doc/html/api/lxml.html.builder-pysrc.html
doc/html/api/lxml.html.clean-module.html
doc/html/api/lxml.html.clean-pysrc.html
doc/html/api/lxml.html.clean.Cleaner-class.html
doc/html/api/lxml.html.defs-module.html
doc/html/api/lxml.html.defs-pysrc.html
doc/html/api/lxml.html.diff-module.html
doc/html/api/lxml.html.diff-pysrc.html
doc/html/api/lxml.html.diff.DEL_END-class.html
doc/html/api/lxml.html.diff.DEL_START-class.html
doc/html/api/lxml.html.diff.InsensitiveSequenceMatcher-class.html
doc/html/api/lxml.html.diff.NoDeletes-class.html
doc/html/api/lxml.html.diff.href_token-class.html
doc/html/api/lxml.html.diff.tag_token-class.html
doc/html/api/lxml.html.diff.token-class.html
doc/html/api/lxml.html.formfill-module.html
doc/html/api/lxml.html.formfill-pysrc.html
doc/html/api/lxml.html.formfill.DefaultErrorCreator-class.html
doc/html/api/lxml.html.formfill.FormNotFound-class.html
doc/html/api/lxml.html.html5parser-module.html
doc/html/api/lxml.html.html5parser-pysrc.html
doc/html/api/lxml.html.html5parser.HTMLParser-class.html
doc/html/api/lxml.html.html5parser.XHTMLParser-class.html
doc/html/api/lxml.html.soupparser-module.html
doc/html/api/lxml.html.soupparser-pysrc.html
doc/html/api/lxml.html.usedoctest-module.html
doc/html/api/lxml.html.usedoctest-pysrc.html
doc/html/api/lxml.includes-module.html
doc/html/api/lxml.includes-pysrc.html
doc/html/api/lxml.isoschematron-module.html
doc/html/api/lxml.isoschematron-pysrc.html
doc/html/api/lxml.isoschematron.Schematron-class.html
doc/html/api/lxml.objectify-module.html
doc/html/api/lxml.objectify.BoolElement-class.html
doc/html/api/lxml.objectify.ElementMaker-class.html
doc/html/api/lxml.objectify.FloatElement-class.html
doc/html/api/lxml.objectify.IntElement-class.html
doc/html/api/lxml.objectify.LongElement-class.html
doc/html/api/lxml.objectify.NoneElement-class.html
doc/html/api/lxml.objectify.NumberElement-class.html
doc/html/api/lxml.objectify.ObjectPath-class.html
doc/html/api/lxml.objectify.ObjectifiedDataElement-class.html
doc/html/api/lxml.objectify.ObjectifiedElement-class.html
doc/html/api/lxml.objectify.ObjectifyElementClassLookup-class.html
doc/html/api/lxml.objectify.PyType-class.html
doc/html/api/lxml.objectify.StringElement-class.html
doc/html/api/lxml.pyclasslookup-module.html
doc/html/api/lxml.pyclasslookup-pysrc.html
doc/html/api/lxml.sax-module.html
doc/html/api/lxml.sax-pysrc.html
doc/html/api/lxml.sax.ElementTreeContentHandler-class.html
doc/html/api/lxml.sax.ElementTreeProducer-class.html
doc/html/api/lxml.sax.SaxError-class.html
doc/html/api/lxml.tests-module.html
doc/html/api/lxml.tests-pysrc.html
doc/html/api/lxml.tests.common_imports-module.html
doc/html/api/lxml.tests.common_imports-pysrc.html
doc/html/api/lxml.tests.common_imports.HelperTestCase-class.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_classlookup-module.html
doc/html/api/lxml.tests.test_classlookup-pysrc.html
doc/html/api/lxml.tests.test_classlookup.ClassLookupTestCase-class.html
doc/html/api/lxml.tests.test_classlookup.ProxyTestCase-class.html
doc/html/api/lxml.tests.test_css-module.html
doc/html/api/lxml.tests.test_css-pysrc.html
doc/html/api/lxml.tests.test_css.CSSTestCase-class.html
doc/html/api/lxml.tests.test_dtd-module.html
doc/html/api/lxml.tests.test_dtd-pysrc.html
doc/html/api/lxml.tests.test_dtd.ETreeDtdTestCase-class.html
doc/html/api/lxml.tests.test_elementtree-module.html
doc/html/api/lxml.tests.test_elementtree-pysrc.html
doc/html/api/lxml.tests.test_elementtree.CElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree._ETreeTestCaseBase-class.html
doc/html/api/lxml.tests.test_errors-module.html
doc/html/api/lxml.tests.test_errors-pysrc.html
doc/html/api/lxml.tests.test_errors.ErrorTestCase-class.html
doc/html/api/lxml.tests.test_etree-module.html
doc/html/api/lxml.tests.test_etree-pysrc.html
doc/html/api/lxml.tests.test_etree.ETreeC14NTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeErrorLogTest-class.html
doc/html/api/lxml.tests.test_etree.ETreeOnlyTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeWriteTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeXIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree.ElementIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree._XIncludeTestCase-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_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html
doc/html/api/lxml.tests.test_io-module.html
doc/html/api/lxml.tests.test_io-pysrc.html
doc/html/api/lxml.tests.test_io.ETreeIOTestCase-class.html
doc/html/api/lxml.tests.test_io.ElementTreeIOTestCase-class.html
doc/html/api/lxml.tests.test_io._IOTestCaseBase-class.html
doc/html/api/lxml.tests.test_isoschematron-module.html
doc/html/api/lxml.tests.test_isoschematron-pysrc.html
doc/html/api/lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html
doc/html/api/lxml.tests.test_nsclasses-module.html
doc/html/api/lxml.tests.test_nsclasses-pysrc.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html
doc/html/api/lxml.tests.test_objectify-module.html
doc/html/api/lxml.tests.test_objectify-pysrc.html
doc/html/api/lxml.tests.test_objectify.ObjectifyTestCase-class.html
doc/html/api/lxml.tests.test_pyclasslookup-module.html
doc/html/api/lxml.tests.test_pyclasslookup-pysrc.html
doc/html/api/lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html
doc/html/api/lxml.tests.test_relaxng-module.html
doc/html/api/lxml.tests.test_relaxng-pysrc.html
doc/html/api/lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html
doc/html/api/lxml.tests.test_sax-module.html
doc/html/api/lxml.tests.test_sax-pysrc.html
doc/html/api/lxml.tests.test_sax.ETreeSaxTestCase-class.html
doc/html/api/lxml.tests.test_schematron-module.html
doc/html/api/lxml.tests.test_schematron-pysrc.html
doc/html/api/lxml.tests.test_schematron.ETreeSchematronTestCase-class.html
doc/html/api/lxml.tests.test_threading-module.html
doc/html/api/lxml.tests.test_threading-pysrc.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html
doc/html/api/lxml.tests.test_threading.ThreadingTestCase-class.html
doc/html/api/lxml.tests.test_unicode-module.html
doc/html/api/lxml.tests.test_unicode-pysrc.html
doc/html/api/lxml.tests.test_unicode.UnicodeTestCase-class.html
doc/html/api/lxml.tests.test_xmlschema-module.html
doc/html/api/lxml.tests.test_xmlschema-pysrc.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator-module.html
doc/html/api/lxml.tests.test_xpathevaluator-pysrc.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html
doc/html/api/lxml.tests.test_xslt-module.html
doc/html/api/lxml.tests.test_xslt-pysrc.html
doc/html/api/lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTTestCase-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-everything.html
doc/html/api/toc-lxml.cssselect-module.html
doc/html/api/toc-lxml.tests.test_css-module.html
doc/html/api/xml.etree.ElementTree-module.html
doc/html/api/xml.etree.ElementTree-pysrc.html
doc/html/api/xml.etree.ElementTree.Element-class.html
doc/html/api/xml.etree.ElementTree.ElementTree-class.html
doc/html/api/xml.etree.ElementTree.ParseError-class.html
doc/html/api/xml.etree.ElementTree.QName-class.html
doc/html/api/xml.etree.ElementTree.TreeBuilder-class.html
doc/html/api/xml.etree.ElementTree.XMLParser-class.html
doc/html/api/xml.etree.ElementTree._IterParseIterator-class.html
doc/html/api/xml.etree.ElementTree._SimpleElementPath-class.html
doc/html/build.html
doc/html/capi.html
doc/html/changes-3.2.0.html [deleted file]
doc/html/changes-3.2.1.html [new file with mode: 0644]
doc/html/compatibility.html
doc/html/credits.html
doc/html/cssselect.html
doc/html/element_classes.html
doc/html/elementsoup.html
doc/html/extensions.html
doc/html/html5parser.html
doc/html/index.html
doc/html/installation.html
doc/html/intro.html
doc/html/lxml-source-howto.html
doc/html/lxmlhtml.html
doc/html/objectify.html
doc/html/parsing.html
doc/html/performance.html
doc/html/resolvers.html
doc/html/sax.html
doc/html/sitemap.html
doc/html/tutorial.html
doc/html/validation.html
doc/html/xpathxslt.html
doc/main.txt
src/lxml.egg-info/PKG-INFO
src/lxml.egg-info/SOURCES.txt
src/lxml/classlookup.pxi
src/lxml/includes/lxml-version.h
src/lxml/lxml.etree.c
src/lxml/lxml.etree.h
src/lxml/lxml.etree.pyx
src/lxml/lxml.objectify.c
src/lxml/proxy.pxi
src/lxml/readonlytree.pxi
src/lxml/tests/common_imports.py
src/lxml/tests/test_classlookup.py
src/lxml/tests/test_elementtree.py
src/lxml/tests/test_etree.py
src/lxml/tests/test_xslt.py
src/lxml/xsltext.pxi
version.txt

index 555a75c8d8942b7ef66846eb99dd56051be8ae7c..2ede4991b3f0a75f63634f33fb55b638243ef018 100644 (file)
@@ -2,6 +2,35 @@
 lxml changelog
 ==============
 
+3.2.1 (2013-05-11)
+==================
+
+Features added
+--------------
+
+* The methods ``apply_templates()`` and ``process_children()`` of XSLT
+  extension elements have gained two new boolean options ``elements_only``
+  and ``remove_blank_text`` that discard either all strings or whitespace-only
+  strings from the result list.
+
+Bugs fixed
+----------
+
+* When moving Elements to another tree, the namespace cleanup mechanism
+  no longer drops namespace prefixes from attributes for which it finds
+  a default namespace declaration, to prevent them from appearing as
+  unnamespaced attributes after serialisation.
+
+* Returning non-type objects from a custom class lookup method could lead
+  to a crash.
+
+* Instantiating and using subtypes of Comments and ProcessingInstructions
+  crashed.
+
+Other changes
+-------------
+
+
 3.2.0 (2013-04-28)
 ==================
 
index 9e8852cbe04ddb3365a0b7b2653efc5f9464dcae..a172627c082373ec4f107d35747d75fabe4596d2 100644 (file)
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.2.0
+Version: 3.2.1
 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.2.0.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.1.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.
@@ -37,34 +37,30 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         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.2.0 (2013-04-28)
+        3.2.1 (2013-05-11)
         ==================
         
         Features added
         --------------
         
+        * The methods ``apply_templates()`` and ``process_children()`` of XSLT
+          extension elements have gained two new boolean options ``elements_only``
+          and ``remove_blank_text`` that discard either all strings or whitespace-only
+          strings from the result list.
+        
         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.
+        * When moving Elements to another tree, the namespace cleanup mechanism
+          no longer drops namespace prefixes from attributes for which it finds
+          a default namespace declaration, to prevent them from appearing as
+          unnamespaced attributes after serialisation.
         
-        * LP#971754: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
-          of overwriting the current value.
+        * Returning non-type objects from a custom class lookup method could lead
+          to a crash.
         
-        * LP#715687: lxml.html.clean no longer discards scripts that are explicitly
-          allowed by the user provided whitelist.  Patch by Christine Koppelt.
+        * Instantiating and using subtypes of Comments and ProcessingInstructions
+          crashed.
         
         Other changes
         -------------
index 95d65ba59c959098ca3409a4e525fadc0ee1cf20..d379ae028cc78ebc5263447071dab0763f8c16d1 100644 (file)
@@ -548,10 +548,33 @@ that passes an Element into the ``.apply_templates()`` method of the
   >>> str(result)
   '<?xml version="1.0"?>\n<foo><CHILD>--xyz--</CHILD></foo>\n'
 
-Note how we applied the templates to a child of the extension element
+Here, we applied the templates to a child of the extension element
 itself, i.e. to an element inside the stylesheet instead of an element
 of the input document.
 
+The return value of ``.apply_templates()`` is always a list.  It may
+contain a mix of elements and strings, collected from the XSLT processing
+result.  If you want to append these values to the output parent, be aware
+that you cannot use the ``.append()`` method to add strings.  In many
+cases, you would only be interested in elements anyway, so you can discard
+strings (e.g. formatting whitespace) and append the rest.
+
+If you want to include string results in the output, you can either build
+an appropriate tree yourself and append that, or you can manually add the
+string values to the current output tree, e.g. by concatenating them with
+the ``.tail`` of the last element that was appended.
+
+Note that you can also let lxml build the result tree for you by passing
+the ``output_parent`` into the ``.apply_templates()`` method.  In this
+case, the result will be None and all content found by applying templates
+will be appended to the output parent.
+
+If you do not care about string results at all, e.g. because you already
+know that they will only contain whitespace, you can pass the option
+``elements_only=True`` to the ``.apply_templates()`` method, or pass
+``remove_blank_text=True`` to remove only those strings that consist
+entirely of whitespace.
+
 
 Working with read-only elements
 -------------------------------
index 48aca51c94b64adcbbbf15df68f63285adfe739d..d42c67fb0681290c7397635664a6e9164626b6b5 100644 (file)
@@ -10,7 +10,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -915,7 +915,7 @@ map it to your namespace.  See also the question above.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index b8cb0ae6d85973e9ad5fee348429ee257e6ae53e..a28cf31d79a82dd4106f64cc21c2322f03586a44 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -450,7 +450,7 @@ example:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 28e93d7adadcb0d79a483d34f5aa108d70696f98..00c16de361e29f5c80297fb381ffd1392dbe3261 100644 (file)
@@ -259,7 +259,7 @@ even via super()).</p>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_invalidation_counter"></a><span class="summary-name">_abc_invalidation_counter</span> = <code title="18">18</code>
+        <a name="_abc_invalidation_counter"></a><span class="summary-name">_abc_invalidation_counter</span> = <code title="22">22</code>
     </td>
   </tr>
 </table>
@@ -426,7 +426,7 @@ even via super()).</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f8caec52836bb201c0afd14ff589fae6c6ca51bf..6877a3abf95c64929ab949c8b92569b775dd6cb8 100644 (file)
@@ -17,11 +17,8 @@ lxml.builder.__package__     lxml.builder-module.html#__package__
 lxml.builder.callable  lxml.builder-module.html#callable
 lxml.cssselect lxml.cssselect-module.html
 lxml.cssselect.ns      lxml.cssselect-module.html#ns
-lxml.cssselect.SelectorError   lxml.cssselect-module.html#SelectorError
 lxml.cssselect._make_lower_case        lxml.cssselect-module.html#_make_lower_case
-lxml.cssselect.ExpressionError lxml.cssselect-module.html#ExpressionError
-lxml.cssselect.external_cssselect      lxml.cssselect-module.html#external_cssselect
-lxml.cssselect.SelectorSyntaxError     lxml.cssselect-module.html#SelectorSyntaxError
+lxml.cssselect.__package__     lxml.cssselect-module.html#__package__
 lxml.doctestcompare    lxml.doctestcompare-module.html
 lxml.doctestcompare._norm_whitespace_re        lxml.doctestcompare-module.html#_norm_whitespace_re
 lxml.doctestcompare.norm_whitespace    lxml.doctestcompare-module.html#norm_whitespace
@@ -470,7 +467,6 @@ lxml.tests.test_classlookup.canonicalize    lxml.tests.common_imports-module.html#c
 lxml.tests.test_css    lxml.tests.test_css-module.html
 lxml.tests.test_css.__package__        lxml.tests.test_css-module.html#__package__
 lxml.tests.test_css.HTML       lxml.tests.test_css-module.html#HTML
-lxml.tests.test_css.cssselect  lxml.tests.test_css-module.html#cssselect
 lxml.tests.test_css.test_suite lxml.tests.test_css-module.html#test_suite
 lxml.tests.test_dtd    lxml.tests.test_dtd-module.html
 lxml.tests.test_dtd.make_doctest       lxml.tests.common_imports-module.html#make_doctest
@@ -684,6 +680,17 @@ abc.ABCMeta.__instancecheck__      abc.ABCMeta-class.html#__instancecheck__
 abc.ABCMeta.__subclasscheck__  abc.ABCMeta-class.html#__subclasscheck__
 abc.ABCMeta.register   abc.ABCMeta-class.html#register
 abc.ABCMeta._dump_registry     abc.ABCMeta-class.html#_dump_registry
+cssselect.parser.SelectorError cssselect.parser.SelectorError-class.html
+cssselect.parser.SelectorSyntaxError   cssselect.parser.SelectorSyntaxError-class.html
+cssselect.xpath.ExpressionError        cssselect.xpath.ExpressionError-class.html
+cssselect.xpath.XPathExpr      cssselect.xpath.XPathExpr-class.html
+cssselect.xpath.XPathExpr.add_star_prefix      cssselect.xpath.XPathExpr-class.html#add_star_prefix
+cssselect.xpath.XPathExpr.join cssselect.xpath.XPathExpr-class.html#join
+cssselect.xpath.XPathExpr.__str__      cssselect.xpath.XPathExpr-class.html#__str__
+cssselect.xpath.XPathExpr.add_name_test        cssselect.xpath.XPathExpr-class.html#add_name_test
+cssselect.xpath.XPathExpr.__repr__     cssselect.xpath.XPathExpr-class.html#__repr__
+cssselect.xpath.XPathExpr.add_condition        cssselect.xpath.XPathExpr-class.html#add_condition
+cssselect.xpath.XPathExpr.__init__     cssselect.xpath.XPathExpr-class.html#__init__
 exceptions.AssertionError      exceptions.AssertionError-class.html
 exceptions.AssertionError.__init__     exceptions.AssertionError-class.html#__init__
 exceptions.AssertionError.__new__      exceptions.AssertionError-class.html#__new__
@@ -704,8 +711,10 @@ lxml.etree.XPath.path      lxml.etree.XPath-class.html#path
 lxml.cssselect.CSSSelector.__init__    lxml.cssselect.CSSSelector-class.html#__init__
 lxml.cssselect.LxmlHTMLTranslator      lxml.cssselect.LxmlHTMLTranslator-class.html
 lxml.cssselect.LxmlTranslator.xpath_contains_function  lxml.cssselect.LxmlTranslator-class.html#xpath_contains_function
+cssselect.xpath.GenericTranslator.xpathexpr_cls        cssselect.xpath.XPathExpr-class.html
 lxml.cssselect.LxmlTranslator  lxml.cssselect.LxmlTranslator-class.html
 lxml.cssselect.LxmlTranslator.xpath_contains_function  lxml.cssselect.LxmlTranslator-class.html#xpath_contains_function
+cssselect.xpath.GenericTranslator.xpathexpr_cls        cssselect.xpath.XPathExpr-class.html
 lxml.doctestcompare.LHTMLOutputChecker lxml.doctestcompare.LHTMLOutputChecker-class.html
 lxml.doctestcompare.LXMLOutputChecker.collect_diff_end_tag     lxml.doctestcompare.LXMLOutputChecker-class.html#collect_diff_end_tag
 lxml.doctestcompare.LXMLOutputChecker.text_compare     lxml.doctestcompare.LXMLOutputChecker-class.html#text_compare
@@ -4465,16 +4474,21 @@ lxml.tests.test_classlookup.ClassLookupTestCase.test_parser_based_lookup        lxml.te
 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.test_classlookup.ClassLookupTestCase.test_evil_class_lookup lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup
 lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
 lxml.tests.test_classlookup.ProxyTestCase      lxml.tests.test_classlookup.ProxyTestCase-class.html
 lxml.tests.test_classlookup.ProxyTestCase.test_proxy_reuse_after_del_root      lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_del_root
 lxml.tests.test_classlookup.ProxyTestCase.etree        lxml.etree-module.html
 lxml.tests.test_classlookup.ProxyTestCase.test_proxy_hashing   lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_hashing
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
+lxml.tests.test_classlookup.ProxyTestCase.test_element_base_children   lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children
+lxml.tests.test_classlookup.ProxyTestCase.test_pi_base lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base
+lxml.tests.test_classlookup.ProxyTestCase.test_comment_base    lxml.tests.test_classlookup.ProxyTestCase-class.html#test_comment_base
 lxml.tests.common_imports.HelperTestCase._rootstring   lxml.tests.common_imports.HelperTestCase-class.html#_rootstring
 lxml.tests.test_classlookup.ProxyTestCase.test_proxy_reuse_after_gc    lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_gc
 lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
 unittest.case.TestCase.failureException        exceptions.AssertionError-class.html
+lxml.tests.test_classlookup.ProxyTestCase.test_element_base    lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base
 lxml.tests.test_classlookup.ProxyTestCase.test_proxy_reuse     lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse
 lxml.tests.common_imports.HelperTestCase.assertFalse   lxml.tests.common_imports.HelperTestCase-class.html#assertFalse
 lxml.tests.test_css.CSSTestCase        lxml.tests.test_css.CSSTestCase-class.html
@@ -4525,7 +4539,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall_ns    lxml.tests.test_e
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_with_encoding        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_tail      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse_getiterator      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_text  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text
@@ -4559,7 +4573,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_register_namespace    lxml.test
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement_reference       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parser_target_error_in_end lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_fromstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_update_dict      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict
@@ -4644,7 +4658,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_setitem       lxml.tests.test_elem
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text2  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_crash    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_getslice_text      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_attribute_ns   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_comment_getitem_getslice   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice
@@ -4663,6 +4677,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text_empty        lxml.tests.te
 lxml.tests.test_elementtree._ETreeTestCaseBase._test_element_boolean   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_element_indexing_negative  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_keys2    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_text       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text
@@ -4763,7 +4778,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi_nonsense   lxml.tests.test_
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_elementtree_getiterator_filter     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
 lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#required_versions_cET
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_tostring_method_text       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_getslice_text      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_sub_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_getiterator_filter lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_cmp  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp
@@ -4806,7 +4821,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall_ns    lxml.tests.test_e
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_with_encoding        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_tail      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse_getiterator      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_text  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text
@@ -4840,7 +4855,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_register_namespace    lxml.test
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement_reference       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parser_target_error_in_end lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_fromstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_update_dict      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict
@@ -4925,7 +4940,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_setitem       lxml.tests.test_elem
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text2  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_crash    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_getslice_text      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_attribute_ns   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_comment_getitem_getslice   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice
@@ -4944,6 +4959,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text_empty        lxml.tests.te
 lxml.tests.test_elementtree._ETreeTestCaseBase._test_element_boolean   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_element_indexing_negative  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_keys2    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_text       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text
@@ -5044,7 +5060,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi_nonsense   lxml.tests.test_
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_elementtree_getiterator_filter     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
 lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#required_versions_cET
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_tostring_method_text       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_getslice_text      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_sub_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_getiterator_filter lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_cmp  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp
@@ -5087,7 +5103,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall_ns    lxml.tests.test_e
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_with_encoding        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_tail      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse_getiterator      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_text  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text
@@ -5122,7 +5138,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy   lxml.tests.test_
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
 lxml.tests.test_elementtree.ElementTreeTestCase.setUpClass     lxml.tests.test_elementtree.ElementTreeTestCase-class.html#setUpClass
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement_reference       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parser_target_error_in_end lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_fromstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_update_dict      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict
@@ -5207,7 +5223,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_setitem       lxml.tests.test_elem
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text2  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_iteration_crash    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_getslice_text      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_attribute_ns   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_del_setslice       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_comment_getitem_getslice   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice
@@ -5226,6 +5242,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text_empty        lxml.tests.te
 lxml.tests.test_elementtree._ETreeTestCaseBase._test_element_boolean   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_element_indexing_negative  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_keys2    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_text       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text
@@ -5326,7 +5343,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_pi_nonsense   lxml.tests.test_
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_elementtree_getiterator_filter     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter
 lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#required_versions_cET
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_tostring_method_text       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_getslice_text      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_encoding_tostring_sub_tail lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_getiterator_filter lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_qname_cmp  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp
@@ -5369,7 +5386,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall_ns    lxml.tests.test_e
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_with_encoding        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_setslice_tail      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_tail       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_iterparse_getiterator      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write_method_text  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text
@@ -5403,7 +5420,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_register_namespace    lxml.test
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_shallowcopy        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_feed_parser_unicode        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_subelement_reference       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference
-lxml.tests.test_elementtree._ETreeTestCaseBase.test_parse_stringio     lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio
+lxml.tests.test_elementtree._ETreeTestCaseBase.test_insert_beyond_index        lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_parser_target_error_in_end lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_fromstring lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_update_dict      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict
@@ -5507,6 +5524,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.test_set_text_empty        lxml.tests.te
 lxml.tests.test_elementtree._ETreeTestCaseBase._test_element_boolean   lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_write      lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_findall    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_element_indexing_negative  lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_attribute_keys2    lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2
 lxml.tests.test_elementtree._ETreeTestCaseBase.test_text       lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text
@@ -5716,12 +5734,14 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_getiterator       lxml.tests.tes
 lxml.tests.test_etree.ETreeOnlyTestCase.test_itersiblings_tag_multiple lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_pretty   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterdescendants_tag_multiple      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple
+unittest.case.TestCase.failureException        exceptions.AssertionError-class.html
 lxml.tests.test_etree.ETreeOnlyTestCase.test_c_api     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api
 lxml.tests.test_etree.ETreeOnlyTestCase.test_standalone        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_8bit_override  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterancestors_tag lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag
 lxml.tests.test_etree.ETreeOnlyTestCase.test_namespaces_reuse_after_move       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move
 lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_text_resolve        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve
+lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_broken  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken
 lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_has_key lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns_empty    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty
@@ -5802,7 +5822,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_unicode_none        lxml.tests.te
 lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_element        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tree_comments   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_byte_zero lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero
+lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_stringio_base_url   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url
 lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_xpath       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath
 lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_pi    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi
@@ -5847,7 +5867,6 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode    lxml.tests.test_etree.ETr
 lxml.tests.common_imports.HelperTestCase.parse lxml.tests.common_imports.HelperTestCase-class.html#parse
 lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_name_only lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only
 lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_base_url_docinfo      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo
-unittest.case.TestCase.failureException        exceptions.AssertionError-class.html
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_comments        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_with_tail        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail
 lxml.tests.test_etree.ETreeOnlyTestCase.test_prefix_default_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns
@@ -5864,6 +5883,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_index        lxml.tests.test_etree.ETreeOn
 lxml.tests.test_etree.ETreeOnlyTestCase.test_HTML_base_url_docinfo     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo
 lxml.tests.test_etree.ETreeOnlyTestCase.test_feed_parser_recover       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterchildren_reversed     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed
+lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons
 lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_restructure        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure
 lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_file_dtd  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd
 lxml.tests.test_etree.ETreeOnlyTestCase.test_element_name_quote        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote
@@ -5880,6 +5900,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_entities  lxml.te
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterdescendants   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_all lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_none    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none
+lxml.tests.test_etree.ETreeOnlyTestCase.test_byte_zero lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterancestors     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors
 lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step
 lxml.tests.test_etree.ETreeOnlyTestCase.test_cdata_parser      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser
@@ -5890,6 +5911,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_bytes_dtd    lxml.tests.test_e
 lxml.tests.test_etree.ETreeOnlyTestCase.test_elementtree_findall_ns_qname      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname
 lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_comment     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment
+lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge
 lxml.tests.test_etree.ETreeOnlyTestCase.test_pi        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi
 lxml.tests.test_etree.ETreeWriteTestCase       lxml.tests.test_etree.ETreeWriteTestCase-class.html
 lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzipfile_parse        lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse
@@ -6905,9 +6927,11 @@ 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_xslt.ETreeXSLTExtElementTestCase       lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html
 lxml.tests.test_xslt.ETreeXSLTExtElementTestCase._test_extension_element_attribute_context     lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context
+lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only  lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only
 lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node    lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node
 lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
+lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text      lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text
 lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_content        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content
 lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only        lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only
 lxml.tests.test_xslt.ETreeXSLTExtElementTestCase.test_extension_element_process_children       lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children
index 4f700e07bc11c79f724fb176a07ef260605cc7e1..aeb80387dfba8aecbda3b9502083aed2c0b6c5da 100644 (file)
 </b></center><br />
 <h1 class="epydoc">Class Hierarchy</h1>
 <ul class="nomargin-top">
-    <li> <strong class="uidlink"><i>unreachable</i></strong>
-    </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>
@@ -325,6 +321,18 @@ this one.</em>
     <li> <strong class="uidlink"><a href="lxml.html.diff.NoDeletes-class.html" onclick="show_private();">lxml.html.diff.NoDeletes</a></strong>:
       <em class="summary">Raised when the document no longer contains any pending deletes
 (DEL_START/DEL_END)</em>
+    </li>
+    <li> <strong class="uidlink"><a href="cssselect.parser.SelectorError-class.html">cssselect.parser.SelectorError</a></strong>:
+      <em class="summary">Common parent for :class:`SelectorSyntaxError` and
+:class:`ExpressionError`.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="cssselect.xpath.ExpressionError-class.html">cssselect.xpath.ExpressionError</a></strong>:
+      <em class="summary">Unknown or unsupported selector (eg. pseudo-class).</em>
+    </li>
+    <li> <strong class="uidlink"><a href="cssselect.parser.SelectorSyntaxError-class.html">cssselect.parser.SelectorSyntaxError</a></strong>:
+      <em class="summary">Parsing a selector that does not match the grammar.</em>
+    </li>
+    </ul>
     </li>
     <li> <strong class="uidlink">exceptions.StandardError</strong>:
       <em class="summary">Base class for all standard Python exceptions that do not represent
@@ -341,6 +349,14 @@ interpreter exiting.</em>
     </li>
     </ul>
     </li>
+    <li> <strong class="uidlink">exceptions.RuntimeError</strong>:
+      <em class="summary">Unspecified run-time error.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="cssselect.xpath.ExpressionError-class.html">cssselect.xpath.ExpressionError</a></strong>:
+      <em class="summary">Unknown or unsupported selector (eg. pseudo-class).</em>
+    </li>
+    </ul>
+    </li>
     <li> <strong class="uidlink">exceptions.SyntaxError</strong>:
       <em class="summary">Invalid syntax.</em>
     <ul>
@@ -363,6 +379,9 @@ interpreter exiting.</em>
     </li>
     <li> <strong class="uidlink"><a href="xml.etree.ElementTree.ParseError-class.html">xml.etree.ElementTree.ParseError</a></strong>
     </li>
+    <li> <strong class="uidlink"><a href="cssselect.parser.SelectorSyntaxError-class.html">cssselect.parser.SelectorSyntaxError</a></strong>:
+      <em class="summary">Parsing a selector that does not match the grammar.</em>
+    </li>
     </ul>
     </li>
     </ul>
@@ -476,6 +495,27 @@ Iterates over the text content of a subtree.</em>
     <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">cssselect.xpath.GenericTranslator</strong>:
+      <em class="summary">Translator for &quot;generic&quot; XML documents.</em>
+    <ul>
+    <li> <strong class="uidlink">cssselect.xpath.HTMLTranslator</strong>:
+      <em class="summary">Translator for (X)HTML documents.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="lxml.cssselect.LxmlHTMLTranslator-class.html" onclick="show_private();">lxml.cssselect.LxmlHTMLTranslator</a></strong>:
+      <em class="summary">lxml extensions + HTML support.</em>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="lxml.cssselect.LxmlTranslator-class.html" onclick="show_private();">lxml.cssselect.LxmlTranslator</a></strong>:
+      <em class="summary">A custom CSS selector to XPath translator with lxml-specific extensions.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="lxml.cssselect.LxmlHTMLTranslator-class.html" onclick="show_private();">lxml.cssselect.LxmlHTMLTranslator</a></strong>:
+      <em class="summary">lxml extensions + HTML support.</em>
+    </li>
+    </ul>
+    </li>
+    </ul>
+    </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>
@@ -547,12 +587,12 @@ Immutable object that represents a compiled object path.</em>
     <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>
@@ -726,6 +766,8 @@ XInclude processor.</em>
     </li>
     <li> <strong class="uidlink"><a href="xml.etree.ElementTree.XMLParser-class.html">xml.etree.ElementTree.XMLParser</a></strong>
     </li>
+    <li> <strong class="uidlink"><a href="cssselect.xpath.XPathExpr-class.html">cssselect.xpath.XPathExpr</a></strong>
+    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.XSLT-class.html">lxml.etree.XSLT</a></strong>:
       <em class="summary">XSLT(self, xslt_input, extensions=None, regexp=True, access_control=None)</em>
     </li>
@@ -969,13 +1011,13 @@ A DTD validator.</em>
       <em class="summary">RelaxNG(self, etree=None, file=None)
 Turn a document into a Relax NG validator.</em>
     </li>
+    <li> <strong class="uidlink"><a href="lxml.isoschematron.Schematron-class.html">lxml.isoschematron.Schematron</a></strong>:
+      <em class="summary">An ISO Schematron validator.</em>
+    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.Schematron-class.html">lxml.etree.Schematron</a></strong>:
       <em class="summary">Schematron(self, etree=None, file=None)
 A Schematron validator.</em>
     </li>
-    <li> <strong class="uidlink"><a href="lxml.isoschematron.Schematron-class.html">lxml.isoschematron.Schematron</a></strong>:
-      <em class="summary">An ISO Schematron validator.</em>
-    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.XMLSchema-class.html">lxml.etree.XMLSchema</a></strong>:
       <em class="summary">XMLSchema(self, etree=None, file=None)
 Turn a document into an XML Schema validator.</em>
@@ -984,7 +1026,8 @@ Turn a document into an XML Schema validator.</em>
     </li>
     <li> <strong class="uidlink">threading._Verbose</strong>
     <ul>
-    <li> <strong class="uidlink">threading.Thread</strong>
+    <li> <strong class="uidlink">threading.Thread</strong>:
+      <em class="summary">A class that represents a thread of control.</em>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html">lxml.tests.test_threading.ThreadPipelineTestCase.Worker</a></strong>
     <ul>
@@ -1010,6 +1053,9 @@ Turn a document into an XML Schema validator.</em>
       <em class="summary">XPath(self, path, namespaces=None, extensions=None, regexp=True, smart_strings=True)
 A compiled XPath expression that can be called on Elements and ElementTrees.</em>
     <ul>
+    <li> <strong class="uidlink"><a href="lxml.cssselect.CSSSelector-class.html">lxml.cssselect.CSSSelector</a></strong>:
+      <em class="summary">A CSS selector.</em>
+    </li>
     <li> <strong class="uidlink"><a href="lxml.etree.ETXPath-class.html">lxml.etree.ETXPath</a></strong>:
       <em class="summary">ETXPath(self, path, extensions=None, regexp=True, smart_strings=True)
 Special XPath class that supports the ElementTree {uri} notation for namespaces.</em>
@@ -1032,7 +1078,7 @@ Create an XPath evaluator for an ElementTree.</em>
       <em class="summary">Type basestring cannot be instantiated; it is the base for str and unicode.</em>
     <ul>
     <li> <strong class="uidlink"><a href="str-class.html">str</a></strong>:
-      <em class="summary">str(object) -&gt; string</em>
+      <em class="summary">str(object='') -&gt; string</em>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.etree._ElementStringResult-class.html" onclick="show_private();">lxml.etree._ElementStringResult</a></strong>
     </li>
@@ -1058,7 +1104,8 @@ is only represented in a document by a tag.</em>
     </ul>
     </li>
     <li> <strong class="uidlink">unicode</strong>:
-      <em class="summary">unicode(string [, encoding[, errors]]) -&gt; object</em>
+      <em class="summary">unicode(object='') -&gt; unicode object
+unicode(string[, encoding[, errors]]) -&gt; unicode object</em>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">lxml.etree._ElementUnicodeResult</a></strong>
     </li>
@@ -1148,7 +1195,7 @@ type(name, bases, dict) -&gt; a new type</em>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/doc/html/api/cssselect.parser.SelectorError-class.html b/doc/html/api/cssselect.parser.SelectorError-class.html
new file mode 100644 (file)
index 0000000..38e71ee
--- /dev/null
@@ -0,0 +1,216 @@
+<?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>cssselect.parser.SelectorError</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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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">
+        cssselect ::
+        parser ::
+        SelectorError ::
+        Class&nbsp;SelectorError
+      </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&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="cssselect.parser.SelectorError-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SelectorError</h1><p class="nomargin-top"></p>
+<pre class="base-tree">
+              object --+        
+                       |        
+exceptions.BaseException --+    
+                           |    
+        exceptions.Exception --+
+                               |
+                              <strong class="uidshort">SelectorError</strong>
+</pre>
+
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li><a href="cssselect.xpath.ExpressionError-class.html">xpath.ExpressionError</a></li><li>, <a href="cssselect.parser.SelectorSyntaxError-class.html">SelectorSyntaxError</a></li>  </ul>
+</dd></dl>
+
+<hr />
+<pre class="literalblock">
+Common parent for :class:`SelectorSyntaxError` and
+:class:`ExpressionError`.
+
+You can just use ``except SelectorError:`` when calling
+:meth:`~GenericTranslator.css_to_xpath` and handle both exceptions types.
+
+</pre>
+
+<!-- ==================== 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>exceptions.Exception</code></b>:
+      <code>__init__</code>,
+      <code>__new__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>,
+      <code>__str__</code>,
+      <code>__unicode__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__format__</code>,
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__sizeof__</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>exceptions.BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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 Sat May 11 23:36:56 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>
diff --git a/doc/html/api/cssselect.parser.SelectorSyntaxError-class.html b/doc/html/api/cssselect.parser.SelectorSyntaxError-class.html
new file mode 100644 (file)
index 0000000..e09bcd9
--- /dev/null
@@ -0,0 +1,223 @@
+<?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>cssselect.parser.SelectorSyntaxError</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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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">
+        cssselect ::
+        parser ::
+        SelectorSyntaxError ::
+        Class&nbsp;SelectorSyntaxError
+      </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&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="cssselect.parser.SelectorSyntaxError-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class SelectorSyntaxError</h1><p class="nomargin-top"></p>
+<pre class="base-tree">
+                  object --+            
+                           |            
+    exceptions.BaseException --+        
+                               |        
+            exceptions.Exception --+    
+                                   |    
+                       <a href="cssselect.parser.SelectorError-class.html">SelectorError</a> --+
+                                       |
+              object --+               |
+                       |               |
+exceptions.BaseException --+           |
+                           |           |
+        exceptions.Exception --+       |
+                               |       |
+        exceptions.StandardError --+   |
+                                   |   |
+              exceptions.SyntaxError --+
+                                       |
+                                      <strong class="uidshort">SelectorSyntaxError</strong>
+</pre>
+
+<hr />
+Parsing a selector that does not match the grammar.
+
+<!-- ==================== 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>exceptions.SyntaxError</code></b>:
+      <code>__init__</code>,
+      <code>__new__</code>,
+      <code>__str__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>,
+      <code>__unicode__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__format__</code>,
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__sizeof__</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>exceptions.SyntaxError</code></b>:
+      <code>filename</code>,
+      <code>lineno</code>,
+      <code>msg</code>,
+      <code>offset</code>,
+      <code>print_file_and_line</code>,
+      <code>text</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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 Sat May 11 23:36:56 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>
diff --git a/doc/html/api/cssselect.xpath.ExpressionError-class.html b/doc/html/api/cssselect.xpath.ExpressionError-class.html
new file mode 100644 (file)
index 0000000..3fcea8c
--- /dev/null
@@ -0,0 +1,215 @@
+<?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>cssselect.xpath.ExpressionError</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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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">
+        cssselect ::
+        xpath ::
+        ExpressionError ::
+        Class&nbsp;ExpressionError
+      </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&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="cssselect.xpath.ExpressionError-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ExpressionError</h1><p class="nomargin-top"></p>
+<pre class="base-tree">
+                  object --+            
+                           |            
+    exceptions.BaseException --+        
+                               |        
+            exceptions.Exception --+    
+                                   |    
+                <a href="cssselect.parser.SelectorError-class.html">parser.SelectorError</a> --+
+                                       |
+              object --+               |
+                       |               |
+exceptions.BaseException --+           |
+                           |           |
+        exceptions.Exception --+       |
+                               |       |
+        exceptions.StandardError --+   |
+                                   |   |
+             exceptions.RuntimeError --+
+                                       |
+                                      <strong class="uidshort">ExpressionError</strong>
+</pre>
+
+<hr />
+Unknown or unsupported selector (eg. pseudo-class).
+
+<!-- ==================== 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>exceptions.RuntimeError</code></b>:
+      <code>__init__</code>,
+      <code>__new__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>exceptions.BaseException</code></b>:
+      <code>__delattr__</code>,
+      <code>__getattribute__</code>,
+      <code>__getitem__</code>,
+      <code>__getslice__</code>,
+      <code>__reduce__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__setstate__</code>,
+      <code>__str__</code>,
+      <code>__unicode__</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__format__</code>,
+      <code>__hash__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__sizeof__</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>exceptions.BaseException</code></b>:
+      <code>args</code>,
+      <code>message</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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 Sat May 11 23:36:56 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>
diff --git a/doc/html/api/cssselect.xpath.XPathExpr-class.html b/doc/html/api/cssselect.xpath.XPathExpr-class.html
new file mode 100644 (file)
index 0000000..9a15516
--- /dev/null
@@ -0,0 +1,401 @@
+<?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>cssselect.xpath.XPathExpr</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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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">
+        cssselect ::
+        xpath ::
+        XPathExpr ::
+        Class&nbsp;XPathExpr
+      </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&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="cssselect.xpath.XPathExpr-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class XPathExpr</h1><p class="nomargin-top"></p>
+<pre class="base-tree">
+object --+
+         |
+        <strong class="uidshort">XPathExpr</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">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="cssselect.xpath.XPathExpr-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">path</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">element</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">*</code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">condition</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>,
+        <span class="summary-sig-arg">star_prefix</span>=<span class="summary-sig-default">False</span>)</span><br />
+      x.__init__(...) initializes x; see help(type(x)) for signature</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">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="cssselect.xpath.XPathExpr-class.html#__repr__" class="summary-sig-name">__repr__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      repr(x)</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">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="cssselect.xpath.XPathExpr-class.html#__str__" class="summary-sig-name">__str__</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      str(x)</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">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="add_condition"></a><span class="summary-sig-name">add_condition</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">condition</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">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="add_name_test"></a><span class="summary-sig-name">add_name_test</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">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="add_star_prefix"></a><span class="summary-sig-name">add_star_prefix</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Append '<a href="#id1"><span class="rst-problematic" id="rst-id2">*</span></a>/' to the path to keep the context constrained
+to a single parent.</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">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="join"></a><span class="summary-sig-name">join</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">combiner</span>,
+        <span class="summary-sig-arg">other</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>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>__setattr__</code>,
+      <code>__sizeof__</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">path</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">element</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">*</code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">condition</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>,
+        <span class="sig-arg">star_prefix</span>=<span class="sig-default">False</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    >&nbsp;
+    </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>
+<a name="__repr__"></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">__repr__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    >&nbsp;
+    </td>
+  </tr></table>
+  
+  repr(x)
+  <dl class="fields">
+    <dt>Overrides:
+        object.__repr__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<a name="__str__"></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">__str__</span>(<span class="sig-arg">self</span>)</span>
+    <br /><em class="fname">(Informal representation operator)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    >&nbsp;
+    </td>
+  </tr></table>
+  
+  str(x)
+  <dl class="fields">
+    <dt>Overrides:
+        object.__str__
+        <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>&nbsp;&nbsp;&nbsp;<a
+        href="lxml-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</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 Sat May 11 23:36:56 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>
index cbbe988f62f97abaa8f7bd8f4d3d105ba6639617..7c36cab9ff709e4b3740b81baadff083e6292344 100644 (file)
@@ -145,7 +145,7 @@ with older versions of lxml or ElementTree.</li>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8cfd848f85a5a05c23682482ac541af5ba09c5b5..416320beddf29b1e0d3a1f55dd04d6672827ec2f 100644 (file)
@@ -280,7 +280,7 @@ Assertion failed.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 238f020da05aa14abce9d0dd3ea91b09d7dbb936..27e2090a83b562ee90bc5c87a710a765c7031a95 100644 (file)
@@ -256,7 +256,7 @@ page was last updated. </p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 98049cd7ebc79a6c413385af706f7289e85d94bb..8f907cc76bc18795d16bf5d73f7c427400e1b839 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d316bb69597fbd6aae18c20ff448cdbafb8e837f..ca3d85ee6c2be0bab054a9217ad78fcdfcac7fb7 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 568808ed805c688326fb8b883c355f18f361250e..1152b52bcbf6795741506254aa3caf0f481d2ecb 100644 (file)
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#clean">clean</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#cssselect">cssselect</a><br />
-<span class="index-where">(in&nbsp;<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.HtmlMixin-class.html#cssselect">cssselect()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_NOTATION">CHECK_FOUND_NOTATION</a><br />
 <span class="index-where">(in&nbsp;<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#clean_html">clean_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#cssselect">cssselect()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_PI">CHECK_FOUND_PI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#clean_html">clean_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a><br />
+<span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#CHECK_FOUND_TEXT">CHECK_FOUND_TEXT</a><br />
 <span class="index-where">(in&nbsp;<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">Cleaner</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a><br />
-<span class="index-where">(in&nbsp;<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.CustomElementClassLookup-class.html">CustomElementClassLookup</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_NAME_NOT_NULL">CHECK_NAME_NOT_NULL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#cleanup_delete">cleanup_delete()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.CustomElementClassLookup-class.html">CustomElementClassLookup</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_NO_DICT">CHECK_NO_DICT</a><br />
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 156bc71d39c0b803b7908e26c406fe365221fd24..7bb2e7795e8eadeb90bc9c52d0b1c4223df217d0 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0583d26f8bc8ef82871779e75be6df6a334ccf40..42b98e11e88d0545ca512ed919107c77b8b47b8a 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.builder-module.html#E">E</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.builder-module.html">lxml.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_BOUNDARY">ERR_ENTITY_BOUNDARY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENCODING_NAME">ERR_ENCODING_NAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNPARSED_ENTITY">ERR_UNPARSED_ENTITY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_ENCODING">ERR_UNKNOWN_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<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#E">E</a><br />
 <span class="index-where">(in&nbsp;<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#ERR_ENTITY_CHAR_ERROR">ERR_ENTITY_CHAR_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_BOUNDARY">ERR_ENTITY_BOUNDARY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNSUPPORTED_ENCODING">ERR_UNSUPPORTED_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_VERSION">ERR_UNKNOWN_VERSION</a><br />
 <span class="index-where">(in&nbsp;<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#E">E</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_EXTERNAL">ERR_ENTITY_IS_EXTERNAL</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_CHAR_ERROR">ERR_ENTITY_CHAR_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_FRAGMENT">ERR_URI_FRAGMENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNPARSED_ENTITY">ERR_UNPARSED_ENTITY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html">Element</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_PARAMETER">ERR_ENTITY_IS_PARAMETER</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_EXTERNAL">ERR_ENTITY_IS_EXTERNAL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_REQUIRED">ERR_URI_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNSUPPORTED_ENCODING">ERR_UNSUPPORTED_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<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#Element">Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_LOOP">ERR_ENTITY_LOOP</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_PARAMETER">ERR_ENTITY_IS_PARAMETER</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VALUE_REQUIRED">ERR_VALUE_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_FRAGMENT">ERR_URI_FRAGMENT</a><br />
 <span class="index-where">(in&nbsp;<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#Element">Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_FINISHED">ERR_ENTITY_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_LOOP">ERR_ENTITY_LOOP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISMATCH">ERR_VERSION_MISMATCH</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_REQUIRED">ERR_URI_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element">Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_STARTED">ERR_ENTITY_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_FINISHED">ERR_ENTITY_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISSING">ERR_VERSION_MISSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VALUE_REQUIRED">ERR_VALUE_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#element_class">element_class</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PE_INTERNAL">ERR_ENTITY_PE_INTERNAL</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_STARTED">ERR_ENTITY_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_FINISHED">ERR_XMLDECL_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISMATCH">ERR_VERSION_MISMATCH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html">ElementBase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PROCESSING">ERR_ENTITY_PROCESSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PE_INTERNAL">ERR_ENTITY_PE_INTERNAL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_STARTED">ERR_XMLDECL_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISSING">ERR_VERSION_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementChildIterator-class.html">ElementChildIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_AT_EOF">ERR_ENTITYREF_AT_EOF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PROCESSING">ERR_ENTITY_PROCESSING</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_FINISHED">ERR_XMLDECL_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.Error-class.html">Error</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementClassLookup-class.html">ElementClassLookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_DTD">ERR_ENTITYREF_IN_DTD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_AT_EOF">ERR_ENTITYREF_AT_EOF</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_STARTED">ERR_XMLDECL_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#ERROR">ERROR</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_EPILOG">ERR_ENTITYREF_IN_EPILOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_DTD">ERR_ENTITYREF_IN_DTD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_block_class">error_block_class</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.Error-class.html">Error</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDepthFirstIterator-class.html">ElementDepthFirstIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_PROLOG">ERR_ENTITYREF_IN_PROLOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_EPILOG">ERR_ENTITYREF_IN_EPILOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_container_tag">error_container_tag</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#ERROR">ERROR</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html">ElementInclude</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_NO_NAME">ERR_ENTITYREF_NO_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_PROLOG">ERR_ENTITYREF_IN_PROLOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#error_log">error_log</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_block_class">error_block_class</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_SEMICOL_MISSING">ERR_ENTITYREF_SEMICOL_MISSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_NO_NAME">ERR_ENTITYREF_NO_NAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#error_log">error_log</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_container_tag">error_container_tag</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html">ElementMaker</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.builder-module.html">lxml.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EQUAL_REQUIRED">ERR_EQUAL_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_SEMICOL_MISSING">ERR_ENTITYREF_SEMICOL_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#error_log">error_log</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#error_log">error_log</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_ENTITY_STANDALONE">ERR_EXT_ENTITY_STANDALONE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EQUAL_REQUIRED">ERR_EQUAL_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#error_log">error_log</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#error_log">error_log</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_SUBSET_NOT_FINISHED">ERR_EXT_SUBSET_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_ENTITY_STANDALONE">ERR_EXT_ENTITY_STANDALONE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#error_log">error_log</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#error_log">error_log</a><br />
+<span class="index-where">(in&nbsp;<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.DTD-class.html#elements">elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXTRA_CONTENT">ERR_EXTRA_CONTENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_SUBSET_NOT_FINISHED">ERR_EXT_SUBSET_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_message_class">error_message_class</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#error_log">error_log</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.ElementSoup-module.html">ElementSoup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_GT_REQUIRED">ERR_GT_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXTRA_CONTENT">ERR_EXTRA_CONTENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#error_log">error_log</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementTextIterator-class.html">ElementTextIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_HYPHEN_IN_COMMENT">ERR_HYPHEN_IN_COMMENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_GT_REQUIRED">ERR_GT_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_message_class">error_message_class</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html">ElementTree</a><br />
 <span class="index-where">(in&nbsp;xml.etree)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INTERNAL_ERROR">ERR_INTERNAL_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_HYPHEN_IN_COMMENT">ERR_HYPHEN_IN_COMMENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.ElementTree-class.html">ElementTree</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHAR">ERR_INVALID_CHAR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INTERNAL_ERROR">ERR_INTERNAL_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#ElementTree">ElementTree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHARREF">ERR_INVALID_CHARREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHAR">ERR_INVALID_CHAR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#ET_VERSION">ET_VERSION</a><br />
-<span class="index-where">(in&nbsp;<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_errors.ErrorTestCase-class.html">ErrorTestCase</a><br />
+<span class="index-where">(in&nbsp;<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.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_DEC_CHARREF">ERR_INVALID_DEC_CHARREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHARREF">ERR_INVALID_CHARREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io.ElementTreeIOTestCase-class.html">ElementTreeIOTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.ErrorTypes-class.html#ERR_INVALID_ENCODING">ERR_INVALID_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_DEC_CHARREF">ERR_INVALID_DEC_CHARREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree-module.html">etree</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#ET_VERSION">ET_VERSION</a><br />
+<span class="index-where">(in&nbsp;<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.sax.ElementTreeProducer-class.html">ElementTreeProducer</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_HEX_CHARREF">ERR_INVALID_HEX_CHARREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_ENCODING">ERR_INVALID_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#etree">etree</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a><br />
+<span class="index-where">(in&nbsp;<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.ElementTreeTestCase-class.html">ElementTreeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_URI">ERR_INVALID_URI</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_HEX_CHARREF">ERR_INVALID_HEX_CHARREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html#etree">etree</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html">CElementTreeTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree-module.html">etree</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#EM">EM</a><br />
 <span class="index-where">(in&nbsp;<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#ERR_LITERAL_NOT_FINISHED">ERR_LITERAL_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_URI">ERR_INVALID_URI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#etree">etree</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#etree">etree</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#embedded">embedded</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_STARTED">ERR_LITERAL_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_FINISHED">ERR_LITERAL_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#etree">etree</a><br />
-<span class="index-where">(in&nbsp;<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.CElementTreeTestCase-class.html#etree">etree</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html">CElementTreeTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags">empty_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LT_IN_ATTRIBUTE">ERR_LT_IN_ATTRIBUTE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_STARTED">ERR_LITERAL_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#etree">etree</a><br />
+<span class="index-where">(in&nbsp;<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#empty_tags">empty_tags</a><br />
 <span class="index-where">(in&nbsp;<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#ERR_LT_REQUIRED">ERR_LT_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LT_IN_ATTRIBUTE">ERR_LT_IN_ATTRIBUTE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#etree">etree</a><br />
+<span class="index-where">(in&nbsp;<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.diff-module.html#empty_tags">empty_tags</a><br />
 <span class="index-where">(in&nbsp;<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#ERR_LTSLASH_REQUIRED">ERR_LTSLASH_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LT_REQUIRED">ERR_LT_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.objectify-module.html#enable_recursive_str">enable_recursive_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MISPLACED_CDATA_END">ERR_MISPLACED_CDATA_END</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LTSLASH_REQUIRED">ERR_LTSLASH_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a><br />
-<span class="index-where">(in&nbsp;<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_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a><br />
+<span class="index-where">(in&nbsp;<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.etree.DocInfo-class.html#encoding">encoding</a><br />
 <span class="index-where">(in&nbsp;<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#ERR_MISSING_ENCODING">ERR_MISSING_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MISPLACED_CDATA_END">ERR_MISPLACED_CDATA_END</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#end">end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_FINISHED">ERR_MIXED_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MISSING_ENCODING">ERR_MISSING_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a><br />
-<span class="index-where">(in&nbsp;<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_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a><br />
+<span class="index-where">(in&nbsp;<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.html.diff-module.html#end_tag">end_tag()</a><br />
 <span class="index-where">(in&nbsp;<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#ERR_MIXED_NOT_STARTED">ERR_MIXED_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_FINISHED">ERR_MIXED_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a><br />
+<span class="index-where">(in&nbsp;<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.html.diff-module.html#end_whitespace_re">end_whitespace_re</a><br />
 <span class="index-where">(in&nbsp;<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#ERR_MIXED_NOT_STARTED">ERR_MIXED_NOT_STARTED</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a><br />
+<span class="index-where">(in&nbsp;<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.sax.ElementTreeContentHandler-class.html#endDocument">endDocument()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NAME_REQUIRED">ERR_NAME_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a><br />
+<span class="index-where">(in&nbsp;<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.sax.ElementTreeContentHandler-class.html#endElement">endElement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NMTOKEN_REQUIRED">ERR_NMTOKEN_REQUIRED</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.sax.ElementTreeContentHandler-class.html#endDocument">endDocument()</a><br />
+<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#endElementNS">endElementNS()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NMTOKEN_REQUIRED">ERR_NMTOKEN_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NO_DTD">ERR_NO_DTD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.sax.ElementTreeContentHandler-class.html#endElement">endElement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#endPrefixMapping">endPrefixMapping()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NO_DTD">ERR_NO_DTD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NO_MEMORY">ERR_NO_MEMORY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.sax.ElementTreeContentHandler-class.html#endElementNS">endElementNS()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NO_MEMORY">ERR_NO_MEMORY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#entities">entities()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOT_STANDALONE">ERR_NOT_STANDALONE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.sax.ElementTreeContentHandler-class.html#endPrefixMapping">endPrefixMapping()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOT_STANDALONE">ERR_NOT_STANDALONE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree-module.html#Entity">Entity()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOT_WELL_BALANCED">ERR_NOT_WELL_BALANCED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.DTD-class.html#entities">entities()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOT_WELL_BALANCED">ERR_NOT_WELL_BALANCED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#entity_class">entity_class</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_FINISHED">ERR_NOTATION_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree.ETreeTestCase-class.html">ETreeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree-module.html#Entity">Entity()</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.EntityBase-class.html">EntityBase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_FINISHED">ERR_NOTATION_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_STARTED">ERR_NOTATION_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#entity_class">entity_class</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOTATION_NOT_STARTED">ERR_NOTATION_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_FINISHED">ERR_ATTLIST_NOT_FINISHED</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOTATION_PROCESSING">ERR_NOTATION_PROCESSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.EntityBase-class.html">EntityBase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NOTATION_PROCESSING">ERR_NOTATION_PROCESSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_STARTED">ERR_ATTLIST_NOT_STARTED</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NS_DECL_ERROR">ERR_NS_DECL_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_FINISHED">ERR_ATTLIST_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_FINISHED">ERR_ATTRIBUTE_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NS_DECL_ERROR">ERR_NS_DECL_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_OK">ERR_OK</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_ATTLIST_NOT_STARTED">ERR_ATTLIST_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_STARTED">ERR_ATTRIBUTE_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_OK">ERR_OK</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PCDATA_REQUIRED">ERR_PCDATA_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_FINISHED">ERR_ATTRIBUTE_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_REDEFINED">ERR_ATTRIBUTE_REDEFINED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PCDATA_REQUIRED">ERR_PCDATA_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_AT_EOF">ERR_PEREF_AT_EOF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_NOT_STARTED">ERR_ATTRIBUTE_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_WITHOUT_VALUE">ERR_ATTRIBUTE_WITHOUT_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_AT_EOF">ERR_PEREF_AT_EOF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_EPILOG">ERR_PEREF_IN_EPILOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_REDEFINED">ERR_ATTRIBUTE_REDEFINED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CDATA_NOT_FINISHED">ERR_CDATA_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_EPILOG">ERR_PEREF_IN_EPILOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_INT_SUBSET">ERR_PEREF_IN_INT_SUBSET</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_WITHOUT_VALUE">ERR_ATTRIBUTE_WITHOUT_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CHARREF_AT_EOF">ERR_CHARREF_AT_EOF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_INT_SUBSET">ERR_PEREF_IN_INT_SUBSET</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_PROLOG">ERR_PEREF_IN_PROLOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_CDATA_NOT_FINISHED">ERR_CDATA_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_DTD">ERR_CHARREF_IN_DTD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_IN_PROLOG">ERR_PEREF_IN_PROLOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_NO_NAME">ERR_PEREF_NO_NAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_CHARREF_AT_EOF">ERR_CHARREF_AT_EOF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_EPILOG">ERR_CHARREF_IN_EPILOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_NO_NAME">ERR_PEREF_NO_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_SEMICOL_MISSING">ERR_PEREF_SEMICOL_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ETXPath-class.html">ETXPath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_DTD">ERR_CHARREF_IN_DTD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_PROLOG">ERR_CHARREF_IN_PROLOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PEREF_SEMICOL_MISSING">ERR_PEREF_SEMICOL_MISSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_FINISHED">ERR_PI_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#evaluate">evaluate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_EPILOG">ERR_CHARREF_IN_EPILOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_COMMENT_NOT_FINISHED">ERR_COMMENT_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_FINISHED">ERR_PI_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_STARTED">ERR_PI_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#event_attrs">event_attrs</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CHARREF_IN_PROLOG">ERR_CHARREF_IN_PROLOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_INVALID">ERR_CONDSEC_INVALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PI_NOT_STARTED">ERR_PI_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PUBID_REQUIRED">ERR_PUBID_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTExtension-class.html#execute">execute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTExtension-class.html">XSLTExtension</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_COMMENT_NOT_FINISHED">ERR_COMMENT_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_INVALID_KEYWORD">ERR_CONDSEC_INVALID_KEYWORD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_PUBID_REQUIRED">ERR_PUBID_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_RESERVED_XML_NAME">ERR_RESERVED_XML_NAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#expand_tokens">expand_tokens()</a><br />
 <span class="index-where">(in&nbsp;<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.ErrorTypes-class.html#ERR_CONDSEC_INVALID">ERR_CONDSEC_INVALID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_NOT_FINISHED">ERR_CONDSEC_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_RESERVED_XML_NAME">ERR_RESERVED_XML_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_SEPARATOR_REQUIRED">ERR_SEPARATOR_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect-module.html#ExpressionError">ExpressionError</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="cssselect.xpath.ExpressionError-class.html">ExpressionError</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_INVALID_KEYWORD">ERR_CONDSEC_INVALID_KEYWORD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_CONDSEC_NOT_STARTED">ERR_CONDSEC_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_SEPARATOR_REQUIRED">ERR_SEPARATOR_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_SPACE_REQUIRED">ERR_SPACE_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#extend">extend()</a><br />
 <span class="index-where">(in&nbsp;<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.ErrorTypes-class.html#ERR_CONDSEC_NOT_FINISHED">ERR_CONDSEC_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCTYPE_NOT_FINISHED">ERR_DOCTYPE_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_SPACE_REQUIRED">ERR_SPACE_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_STANDALONE_VALUE">ERR_STANDALONE_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#extension">extension</a><br />
 <span class="index-where">(in&nbsp;<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.etree.ErrorTypes-class.html#ERR_CONDSEC_NOT_STARTED">ERR_CONDSEC_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_EMPTY">ERR_DOCUMENT_EMPTY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_STANDALONE_VALUE">ERR_STANDALONE_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_STRING_NOT_CLOSED">ERR_STRING_NOT_CLOSED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#Extension">Extension()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCTYPE_NOT_FINISHED">ERR_DOCTYPE_NOT_FINISHED</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_STRING_NOT_CLOSED">ERR_STRING_NOT_CLOSED</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect-module.html#external_cssselect">external_cssselect</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_EMPTY">ERR_DOCUMENT_EMPTY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_END">ERR_DOCUMENT_END</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_STRING_NOT_STARTED">ERR_STRING_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_END">ERR_DOCUMENT_END</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_START">ERR_DOCUMENT_START</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_TAG_NAME_MISMATCH">ERR_TAG_NAME_MISMATCH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_DOCUMENT_START">ERR_DOCUMENT_START</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_FINISHED">ERR_ELEMCONTENT_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_TAG_NOT_FINISHED">ERR_TAG_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_FINISHED">ERR_ELEMCONTENT_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_STARTED">ERR_ELEMCONTENT_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNDECLARED_ENTITY">ERR_UNDECLARED_ENTITY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#extract_xsd">extract_xsd</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ELEMCONTENT_NOT_STARTED">ERR_ELEMCONTENT_NOT_STARTED</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_ENCODING">ERR_UNKNOWN_ENCODING</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENCODING_NAME">ERR_ENCODING_NAME</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_VERSION">ERR_UNKNOWN_VERSION</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</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 Sun Apr 28 21:00:10 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5a3513b06698ffa9a60c9f45645a3905113b8a1b..512adc50924ff161a1cdf66b6569af4071063bc8 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8b6280711ae04165509df00872e420fed28f3ffd..231d988fae086700f52c7af8302e1e4a613a8372 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa7b5ad87b2b24a374d241ff0b12cd154482a3a4..59027bf7f34843b2e4a2465b18762ed078eaccf5 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dff76f2d8c953de668e9a221787cafafc1fb4f76..bb5bcf8d8b2b1e1b854e04e805ca4c7ef9e6c3fb 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a3e46960d8ba163084ea3925def98b62b04441e3..718631afbd310083f11c0660c8661d3d29792825 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6916ac9b762f1b91f18948b9ec2bff35f49e6ee6..972d2311c59f29b69d0ede98649558cc18e20ba3 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2b9302770e01e69cff6d146f88ab54964170cb36..7dba9defd0ac146a5883a312004cc6940015ea3c 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e59cdcb4734de9c5d73f853c2b68b53812c9e975..a142c5c134ce6063302b04475d5f92387ca8a35b 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fe60c32b9b4e696b73683ee20bb92cfbebf4d503..297047e69327b421a4bade90a661cfed58da09e5 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6729d72e6bd99e824e63ba2b4161eda77eeb2db6..7935a489c2940458a9c9f5104c4845a857605474 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eb9cc0451885feb4db2c322a8de582d54981ad8d..ed08a48dd11ec6e8080673dfeb1e07471d4c9dde 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d11ebc20206334ec9373bddf1bc7acf4aebfae6b..e93476186615d17021e7c03f8b1246f2dbecc2c6 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 639129dff19388f06bcc815584a8146aac238904..0c9e5749e53d90bb887637e387180d08e14143b1 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f0935287b33b3e28d2971ead821145ac234d872e..5a9281952d1dcc1c4b2176745c0817ba30a5d903 100644 (file)
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_CHOICE_CHILD">SCHEMAP_UNKNOWN_CHOICE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect-module.html#SelectorError">SelectorError</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="cssselect.parser.SelectorError-class.html">SelectorError</a></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_3">SCHEMAP_CT_PROPS_CORRECT_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD">SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect-module.html#SelectorSyntaxError">SelectorSyntaxError</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="cssselect.parser.SelectorSyntaxError-class.html">SelectorSyntaxError</a></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_4">SCHEMAP_CT_PROPS_CORRECT_4</a><br />
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 97ac0b266afb3ac2c1a2758fb18d7cf2d5acf891..32670cf6865ae45c5333d6d3499dbb1556e957af 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TABLE">TABLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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_negative">test_setslice_negative()</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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</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&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_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_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<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_getprevious">test_getprevious()</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&nbsp;<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_allneg">test_setslice_partial_allneg()</a><br />
+<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&nbsp;<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&nbsp;<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_getroottree">test_getroottree()</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&nbsp;<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_insert_neg">test_setslice_insert_neg()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice()</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&nbsp;<a href="lxml.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_negative">test_setslice_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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">test_setslice_step()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare">tag_compare()</a><br />
 <span class="index-where">(in&nbsp;<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_partial">test_getslice_partial()</a><br />
-<span class="index-where">(in&nbsp;<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_negative">test_setslice_step_negative()</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&nbsp;<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_allneg">test_setslice_partial_allneg()</a><br />
+<span class="index-where">(in&nbsp;<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_xpathevaluator-module.html#tag_or_value">tag_or_value()</a><br />
 <span class="index-where">(in&nbsp;<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_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg">test_getslice_partial_neg()</a><br />
-<span class="index-where">(in&nbsp;<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_getparent">test_getparent()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html">tag_token</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length">test_setslice_partial_wrong_length()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#tags">tags</a><br />
 <span class="index-where">(in&nbsp;<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_getslice_text">test_getslice_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_html_base">test_html_base()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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">test_setslice_step()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</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&nbsp;<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_html_base_tag">test_html_base_tag()</a><br />
+<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&nbsp;<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_negative">test_setslice_step_negative()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_url_docinfo">test_HTML_base_url_docinfo()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2()</a><br />
+<span class="index-where">(in&nbsp;<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#TBODY">TBODY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_overrun">test_setslice_step_overrun()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty">test_html_element_name_empty()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_partial_neg">test_getslice_partial_neg()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<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_quote">test_html_element_name_quote()</a><br />
-<span class="index-where">(in&nbsp;<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_start">test_sourceline_iterparse_start()</a><br />
-<span class="index-where">(in&nbsp;<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_getslice_step">test_getslice_step()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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">test_shallowcopy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<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_space">test_html_element_name_space()</a><br />
-<span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<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_getslice_text">test_getslice_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<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_file_error">test_html_file_error()</a><br />
-<span class="index-where">(in&nbsp;<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_html_base">test_html_base()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<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_iterparse">test_html_iterparse()</a><br />
-<span class="index-where">(in&nbsp;<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_html_base_tag">test_html_base_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_iterparse_file">test_html_iterparse_file()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end()</a><br />
+<span class="index-where">(in&nbsp;<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#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<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_start">test_html_iterparse_start()</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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start()</a><br />
+<span class="index-where">(in&nbsp;<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#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<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_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_element_name_empty">test_html_element_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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_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_element_name_quote">test_html_element_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<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_sourceline_XML">test_sourceline_XML()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_html_full">test_html_parser_target_doctype_html_full()</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&nbsp;<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_standalone">test_standalone()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_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_file_error">test_html_file_error()</a><br />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup()</a><br />
+<span class="index-where">(in&nbsp;<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_addattr">test_addattr()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
+<span class="index-where">(in&nbsp;<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_addattr_element">test_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<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_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_iterparse_file">test_html_iterparse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_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_iterparse_start">test_html_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<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_attributes_ns">test_strip_attributes_ns()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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_elements_ns">test_strip_elements_ns()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<span class="index-where">(in&nbsp;<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 />
+<span class="index-where">(in&nbsp;<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_comment">test_addnext_root_comment()</a><br />
 <span class="index-where">(in&nbsp;<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_404">test_http_client_404()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_doc_style">test_strip_tags_doc_style()</a><br />
+<span class="index-where">(in&nbsp;<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_pi">test_addnext_root_pi()</a><br />
 <span class="index-where">(in&nbsp;<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_gzip">test_http_client_gzip()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_subelement_name_colon">test_html_subelement_name_colon()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html">test_http_io</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_subelement_name_empty">test_html_subelement_name_empty()</a><br />
+<span class="index-where">(in&nbsp;<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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_subelement_name_quote">test_html_subelement_name_quote()</a><br />
+<span class="index-where">(in&nbsp;<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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html">test_htmlparser</a><br />
+<span class="index-where">(in&nbsp;<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_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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_anonymous_namespace">test_anonymous_namespace()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_404">test_http_client_404()</a><br />
+<span class="index-where">(in&nbsp;<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_empty">test_sub_data_element_nsmap_empty()</a><br />
+<span class="index-where">(in&nbsp;<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_append_error">test_append_error()</a><br />
 <span class="index-where">(in&nbsp;<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_http_io.HttpIOTestCase-class.html#test_http_client_gzip">test_http_client_gzip()</a><br />
+<span class="index-where">(in&nbsp;<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_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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-module.html">test_http_io</a><br />
+<span class="index-where">(in&nbsp;<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_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html">test_incremental_xmlfile</a><br />
+<span class="index-where">(in&nbsp;<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_default">test_sub_element_nsmap_default()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_index">test_index()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_get">test_attrib_get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_ns_clear">test_attrib_ns_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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_empty">test_subelement_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<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_pop">test_attrib_pop()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html">test_io</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<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_pop_default">test_attrib_pop_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
 <span class="index-where">(in&nbsp;<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_dict">test_attrib_dict()</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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html">test_isoschematron</a><br />
+<span class="index-where">(in&nbsp;<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_nsmap">test_subelement_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<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_get">test_attrib_get()</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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_unknown">test_attrib_pop_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_with_attributes">test_subelement_with_attributes()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
 <span class="index-where">(in&nbsp;<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_default">test_attrib_pop_default()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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_attribute">test_attribute()</a><br />
+<span class="index-where">(in&nbsp;<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_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
 <span class="index-where">(in&nbsp;<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_empty_default">test_attrib_pop_empty_default()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup()</a><br />
+<span class="index-where">(in&nbsp;<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">test_iteration()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_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_attribute_contains">test_attribute_contains()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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_crash">test_iteration_crash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_unknown">test_attrib_pop_unknown()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_set_clear">test_attrib_set_clear()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute">test_attribute()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_elementtree._ETreeTestCaseBase-class.html#test_attribute_contains">test_attribute_contains()</a><br />
+<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&nbsp;<a href="lxml.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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_items_ns">test_attribute_items_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items()</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&nbsp;<a href="lxml.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_iterchildren">test_iterchildren()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge()</a><br />
+<span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_ns">test_attribute_items_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
 <span class="index-where">(in&nbsp;<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-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_iterator">test_attribute_iterator()</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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_keys">test_attribute_keys()</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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_keys2">test_attribute_keys2()</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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_ns">test_attribute_keys_ns()</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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_manipulation">test_attribute_manipulation()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_set">test_attribute_set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_attrib_ns">test_iterparse_attrib_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
+<span class="index-where">(in&nbsp;<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_broken">test_iterparse_broken()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#test_suite">test_suite()</a><br />
 <span class="index-where">(in&nbsp;<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_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_attrib">test_attribute_update_attrib()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_clear">test_iterparse_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_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_dict">test_attribute_update_dict()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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_update_dict">test_attribute_update_dict()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns()</a><br />
 <span class="index-where">(in&nbsp;<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_update_sequence">test_attribute_update_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_iterparse_encoding_error">test_iterparse_encoding_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_tag_write">test_tag_write()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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_tail1">test_tail1()</a><br />
+<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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_elementtree_root">test_tail_elementtree_root()</a><br />
+<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&nbsp;<a href="lxml.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_append">test_tail_append()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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_str_subclass">test_tail_str_subclass()</a><br />
+<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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">test_iterparse_tag()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_exclusive">test_c14n_element_tostring_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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_element_tostring_with_comments">test_c14n_element_tostring_with_comments()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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_exclusive">test_c14n_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_other">test_text_other()</a><br />
 <span class="index-where">(in&nbsp;<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_exclusive">test_c14n_exclusive()</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&nbsp;<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 />
+<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&nbsp;<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_str_subclass">test_text_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<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_file">test_c14n_file()</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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
 <span class="index-where">(in&nbsp;<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_gzip">test_c14n_gzip()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
 <span class="index-where">(in&nbsp;<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_gzip">test_c14n_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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
 <span class="index-where">(in&nbsp;<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_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_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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_itersiblings_tag">test_itersiblings_tag()</a><br />
+<span class="index-where">(in&nbsp;<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.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
 <span class="index-where">(in&nbsp;<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_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_tostring_with_comments">test_c14n_tostring_with_comments()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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_itersiblings_tag_multiple">test_itersiblings_tag_multiple()</a><br />
+<span class="index-where">(in&nbsp;<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.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
 <span class="index-where">(in&nbsp;<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_with_comments">test_c14n_tostring_with_comments()</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&nbsp;<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&nbsp;<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_itertext">test_itertext()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_thread_xslt">test_thread_xslt()</a><br />
 <span class="index-where">(in&nbsp;<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_with_comments">test_c14n_with_comments()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_itertext_child">test_itertext_child()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_thread_xslt_attr_replace">test_thread_xslt_attr_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
+<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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_cdata">test_cdata()</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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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_parser">test_cdata_parser()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_element">test_tostring_element()</a><br />
 <span class="index-where">(in&nbsp;<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_type">test_cdata_type()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_element_tail">test_tostring_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
 <span class="index-where">(in&nbsp;<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_xpath">test_cdata_xpath()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
 <span class="index-where">(in&nbsp;<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_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">test_child()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_iterwalk_tag">test_iterwalk_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
 <span class="index-where">(in&nbsp;<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_addattr">test_child_addattr()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_iterwalk_tag_all">test_iterwalk_tag_all()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode()</a><br />
 <span class="index-where">(in&nbsp;<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">test_child_getattr()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_none">test_tostring_none()</a><br />
 <span class="index-where">(in&nbsp;<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_getattr_empty_ns">test_child_getattr_empty_ns()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_pretty">test_tostring_pretty()</a><br />
 <span class="index-where">(in&nbsp;<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">test_child_index()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_standalone">test_tostring_standalone()</a><br />
 <span class="index-where">(in&nbsp;<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_index_neg">test_child_index_neg()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_standalone_in_out">test_tostring_standalone_in_out()</a><br />
 <span class="index-where">(in&nbsp;<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_iter">test_child_iter()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_unicode">test_tostring_unicode()</a><br />
 <span class="index-where">(in&nbsp;<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_len">test_child_len()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_unicode_element">test_tostring_unicode_element()</a><br />
 <span class="index-where">(in&nbsp;<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_nonexistant">test_child_nonexistant()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_unicode_element_tail">test_tostring_unicode_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<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_ns_nons">test_child_ns_nons()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_unicode_none">test_tostring_unicode_none()</a><br />
 <span class="index-where">(in&nbsp;<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_child_set_ro">test_child_set_ro()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_unicode_pretty">test_tostring_unicode_pretty()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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 />
+<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&nbsp;<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_with_tail">test_tostring_with_tail()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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_getprevious">test_lookup_getprevious()</a><br />
 <span class="index-where">(in&nbsp;<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">test_tounicode()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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_getslice">test_lookup_getslice()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_filename_remove_previous">test_class_parse_filename_remove_previous()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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_fileobject">test_class_parse_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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_fileobject">test_class_parse_fileobject()</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&nbsp;<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 />
+<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&nbsp;<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_pretty">test_tounicode_pretty()</a><br />
 <span class="index-where">(in&nbsp;<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_unamed_fileobject">test_class_parse_unamed_fileobject()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html">test_classlookup</a><br />
+<span class="index-where">(in&nbsp;<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_keep_ref_assertion">test_lookup_keep_ref_assertion()</a><br />
 <span class="index-where">(in&nbsp;<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">test_tree_io()</a><br />
 <span class="index-where">(in&nbsp;<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_classlookup-module.html">test_classlookup</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len">test_lookup_len()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear()</a><br />
+<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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_sub">test_clear_sub()</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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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_tail">test_clear_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_comment">test_comment()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail">test_lookup_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_comment_base">test_comment_base()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text">test_lookup_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_float()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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_main_xslt_in_thread">test_main_xslt_in_thread()</a><br />
+<span class="index-where">(in&nbsp;<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_int_cmp">test_type_int_cmp()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_none_cmp">test_type_none_cmp()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_NoneType">test_type_NoneType()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<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_add">test_type_str_add()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_complex">test_type_str_as_complex()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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_int">test_type_str_as_int()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_module_HTML_unicode">test_module_HTML_unicode()</a><br />
+<span class="index-where">(in&nbsp;<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_cmp">test_type_str_cmp()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</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&nbsp;<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_intliteral">test_type_str_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</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&nbsp;<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_mod">test_type_str_mod()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<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&nbsp;<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_module_parse_html_filelike">test_module_parse_html_filelike()</a><br />
+<span class="index-where">(in&nbsp;<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_sequence">test_type_str_sequence()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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_parse_html_norecover">test_module_parse_html_norecover()</a><br />
+<span class="index-where">(in&nbsp;<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_unregistered">test_type_unregistered()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</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&nbsp;<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_ustr">test_type_ustr()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</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&nbsp;<a href="lxml.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_ustr_add">test_type_ustr_add()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_multiple_elementrees">test_multiple_elementrees()</a><br />
+<span class="index-where">(in&nbsp;<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_floatliteral">test_type_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</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&nbsp;<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_intliteral">test_type_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<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_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_namespace_cleanup">test_namespace_cleanup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
 <span class="index-where">(in&nbsp;<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_pytype">test_data_element_data_element_arg_pytype()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup">test_namespace_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
 <span class="index-where">(in&nbsp;<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_pytype_none">test_data_element_data_element_arg_pytype_none()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_namespace_nested_nsmap">test_namespace_nested_nsmap()</a><br />
+<span class="index-where">(in&nbsp;<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_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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_namespace_nsmap">test_namespace_nsmap()</a><br />
+<span class="index-where">(in&nbsp;<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_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
 <span class="index-where">(in&nbsp;<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_element_arg">test_data_element_element_arg()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_unicode_byte_zero">test_unicode_byte_zero()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_namespaces_after_serialize">test_namespaces_after_serialize()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_comment">test_unicode_comment()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag">test_unicode_nstag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid">test_unicode_nstag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio">test_unicode_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_namespaces_elementtree">test_namespaces_elementtree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname">test_unicode_qname()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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_nested_default_namespace">test_nested_default_namespace()</a><br />
+<span class="index-where">(in&nbsp;<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_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_tag_invalid">test_unicode_tag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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_access">test_ns_access()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_access2">test_ns_access2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_broken">test_unicode_xml_broken()</a><br />
 <span class="index-where">(in&nbsp;<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_pytype_none">test_data_element_pytype_none()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment()</a><br />
 <span class="index-where">(in&nbsp;<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_pytypes">test_data_element_pytypes()</a><br />
 <span class="index-where">(in&nbsp;<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">test_ns_decl_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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_default">test_ns_decl_tostring_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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_element">test_ns_decl_tostring_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <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&nbsp;<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_move">test_ns_move()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_setting">test_ns_setting()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_write_Element">test_write_Element()</a><br />
 <span class="index-where">(in&nbsp;<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_floatliteral">test_data_element_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_write_Element_repeatedly">test_write_Element_repeatedly()</a><br />
 <span class="index-where">(in&nbsp;<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_intliteral">test_data_element_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_write_fail">test_write_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
 <span class="index-where">(in&nbsp;<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">test_object_path()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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">test_object_path_addattr()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<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">test_object_path_addattr_create()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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_element">test_object_path_addattr_create_element()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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_create_list">test_object_path_addattr_create_list()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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_addattr_element">test_object_path_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 <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&nbsp;<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_absolute">test_object_path_default_absolute()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 <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&nbsp;<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_default_relative">test_object_path_default_relative()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <tr>
 <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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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_dot_root_list">test_object_path_dot_root_list()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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_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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <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&nbsp;<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_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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_lookup">test_object_path_index_fail_lookup()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<a href="lxml.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_list">test_object_path_set_create_list()</a><br />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <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&nbsp;<a href="lxml.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_element">test_object_path_set_create_element()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <tr>
 <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&nbsp;<a href="lxml.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_create_list">test_object_path_set_create_list()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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&nbsp;<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_object_path_set_element">test_object_path_set_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes">test_xmlschema_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax()</a><br />
+<span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html">test_objectify</a><br />
+<span class="index-where">(in&nbsp;<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_file">test_xmlschema_file()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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&nbsp;<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_import_file">test_xmlschema_import_file()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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&nbsp;<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_invalid_schema1">test_xmlschema_invalid_schema1()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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 />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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">test_xmlschema_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_fail">test_xmlschema_iterparse_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_fixed_attributes">test_xmlschema_parse_fixed_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
 <span class="index-where">(in&nbsp;<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_parse_file_dtd">test_parse_file_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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">test_xmlschema_resolvers()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 <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&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_root">test_xmlschema_resolvers_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<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 />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_error()</a><br />
 <span class="index-where">(in&nbsp;<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_output_override">test_doctype_output_override()</a><br />
 <span class="index-where">(in&nbsp;<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_fileobject_unicode">test_parse_fileobject_unicode()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_doc">test_xpath_compile_doc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<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&nbsp;<a href="lxml.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_remove_comments">test_parse_remove_comments()</a><br />
+<span class="index-where">(in&nbsp;<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_element">test_xpath_compile_element()</a><br />
 <span class="index-where">(in&nbsp;<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_assertValid">test_dtd_assertValid()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
-<span class="index-where">(in&nbsp;<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_stringio">test_parse_stringio()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</a><br />
 <span class="index-where">(in&nbsp;<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_broken">test_dtd_broken()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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_stringio_base_url">test_parse_stringio_base_url()</a><br />
+<span class="index-where">(in&nbsp;<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_vars">test_xpath_compile_vars()</a><br />
 <span class="index-where">(in&nbsp;<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_file">test_dtd_file()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
+<span class="index-where">(in&nbsp;<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_context_node">test_xpath_context_node()</a><br />
 <span class="index-where">(in&nbsp;<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">test_dtd_internal()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_parse_with_encoding">test_parse_with_encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_document_root">test_xpath_document_root()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_error">test_xpath_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding()</a><br />
+<span class="index-where">(in&nbsp;<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_eval_context_clear">test_xpath_eval_context_clear()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_eval_context_propagation">test_xpath_eval_context_propagation()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_evaluator">test_xpath_evaluator()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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_element">test_xpath_evaluator_element()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_data">test_parser_target_data()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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_cdata">test_parser_target_cdata()</a><br />
+<span class="index-where">(in&nbsp;<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_tree">test_xpath_evaluator_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_tree_absolute">test_xpath_evaluator_tree_absolute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <tr>
 <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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <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&nbsp;<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&nbsp;<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">test_parser_target_error_in_start()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <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&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception()</a><br />
+<span class="index-where">(in&nbsp;<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_wrong_args">test_xpath_extensions_wrong_args()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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 />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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_recover">test_parser_target_recover()</a><br />
+<span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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_comment">test_xpath_list_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_nothing">test_xpath_list_nothing()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+</tr>
+<tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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_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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base">test_pi_base()</a><br />
+<span class="index-where">(in&nbsp;<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_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
+<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&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get()</a><br />
+<span class="index-where">(in&nbsp;<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_ns">test_xpath_ns()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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_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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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_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&nbsp;<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&nbsp;<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&nbsp;<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_string">test_xpath_string()</a><br />
+<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables">test_xpath_variables()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_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&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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_variables">test_xpath_variables()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns()</a><br />
+<span class="index-where">(in&nbsp;<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_xpathevaluator</a><br />
+<span class="index-where">(in&nbsp;<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_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_processinginstruction">test_processinginstruction()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_xsiannotate_ignore_old">test_xsiannotate_ignore_old()</a><br />
+<span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</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&nbsp;<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_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</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&nbsp;<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_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_gc">test_proxy_reuse_after_gc()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html">test_xslt</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_xsitype_deannotate">test_xsitype_deannotate()</a><br />
+<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&nbsp;<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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">test_xslt()</a><br />
+<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_broken">test_xslt_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html">test_pyclasslookup</a><br />
+<span class="index-where">(in&nbsp;<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_default_parameters">test_xslt_default_parameters()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_elementtree">test_xslt_document_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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_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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_parse()</a><br />
+<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<a href="lxml.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_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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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_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&nbsp;<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&nbsp;<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&nbsp;<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_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_html_output">test_xslt_html_output()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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_input_none">test_xslt_input_none()</a><br />
+<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&nbsp;<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_invalid_stylesheet">test_xslt_invalid_stylesheet()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_partial_doc">test_xslt_input_partial_doc()</a><br />
+<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&nbsp;<a href="lxml.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_message">test_xslt_message()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_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&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_message">test_xslt_message()</a><br />
+<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&nbsp;<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_move_result">test_xslt_move_result()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_terminate">test_xslt_message_terminate()</a><br />
+<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&nbsp;<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_multiple_parameters">test_xslt_multiple_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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 />
+<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&nbsp;<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_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&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_multiple_parameters">test_xslt_multiple_parameters()</a><br />
+<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&nbsp;<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_parameter_invalid">test_xslt_parameter_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_relaxng-module.html">test_relaxng</a><br />
+<span class="index-where">(in&nbsp;<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_parameter_missing">test_xslt_parameter_missing()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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 />
+<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&nbsp;<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid()</a><br />
+<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.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_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio">test_relaxng_stringio()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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_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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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_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&nbsp;<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&nbsp;<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&nbsp;<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_replace">test_xslt_pi_set_replace()</a><br />
+<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&nbsp;<a href="lxml.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_resolver_url_building">test_xslt_resolver_url_building()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</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&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.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_resolver_url_building">test_xslt_resolver_url_building()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</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&nbsp;<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.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.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</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&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
 <span class="index-where">(in&nbsp;<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_empty">test_resolve_empty()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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_error">test_resolve_error()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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_file_dtd">test_resolve_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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_filelike_dtd">test_resolve_filelike_dtd()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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_filename_dtd">test_resolve_filename_dtd()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests-module.html">tests</a><br />
+<span class="index-where">(in&nbsp;<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_ns_attributes">test_etree_sax_ns_attributes()</a><br />
 <span class="index-where">(in&nbsp;<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_relative">test_resolve_filename_dtd_relative()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</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&nbsp;<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">test_etree_sax_pi()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#text">text</a><br />
+<span class="index-where">(in&nbsp;<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_pi_root">test_etree_sax_pi_root()</a><br />
+<span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml-module.html">lxml</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&nbsp;<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_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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree.QName-class.html">QName</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&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</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&nbsp;<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&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</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&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</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&nbsp;<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_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
-<span class="index-where">(in&nbsp;<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.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
+<span class="index-where">(in&nbsp;<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_schema_types">test_schema_types()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</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&nbsp;<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_math">test_exslt_math()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</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&nbsp;<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_match">test_exslt_regexp_match()</a><br />
 <span class="index-where">(in&nbsp;<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-module.html">test_schematron</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</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&nbsp;<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_match1">test_exslt_regexp_match1()</a><br />
 <span class="index-where">(in&nbsp;<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">test_schematron()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</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_match2">test_exslt_regexp_match2()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TH">TH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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>
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#THEAD">THEAD</a><br />
+<span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</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&nbsp;<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_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</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&nbsp;<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.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
 <span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</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&nbsp;<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_extend">test_extend()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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_apply_templates">test_extension_element_apply_templates()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_target_node">test_extension_element_apply_templates_target_node()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_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">test_extension_element()</a><br />
 <span class="index-where">(in&nbsp;<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_empty_pattern">test_schematron_empty_pattern()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_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_apply_templates">test_extension_element_apply_templates()</a><br />
 <span class="index-where">(in&nbsp;<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_error_log">test_schematron_error_log()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_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_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
 <span class="index-where">(in&nbsp;<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_element">test_schematron_from_element()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_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_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_file">test_schematron_from_file()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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_from_tree">test_schematron_from_tree()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_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_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<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_args">test_schematron_invalid_args()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<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_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_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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">test_schematron_invalid_schema()</a><br />
+<span class="index-where">(in&nbsp;<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-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<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_with_subextension_element">test_extension_element_process_children_with_subextension_element()</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&nbsp;<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&nbsp;<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_empty">test_schematron_invalid_schema_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</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&nbsp;<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_raise">test_extension_element_raise()</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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</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&nbsp;<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.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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.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&nbsp;<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&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</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&nbsp;<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_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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&nbsp;<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&nbsp;<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_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_trailing_text">test_failure_trailing_text()</a><br />
-<span class="index-where">(in&nbsp;<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_xslt">test_schematron_store_xslt()</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&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_bytes">test_feed_parser_bytes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
+<span class="index-where">(in&nbsp;<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_result_report">test_schematron_result_report()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
+<span class="index-where">(in&nbsp;<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 />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_error_close_empty">test_feed_parser_error_close_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_failure_preceding_text">test_failure_preceding_text()</a><br />
+<span class="index-where">(in&nbsp;<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_xslt">test_schematron_store_xslt()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<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_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
-<span class="index-where">(in&nbsp;<a href="lxml.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_failure_trailing_Element">test_failure_trailing_Element()</a><br />
+<span class="index-where">(in&nbsp;<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 />
+<span class="index-where">(in&nbsp;<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-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<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_position">test_feed_parser_error_position()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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_failure_trailing_text">test_failure_trailing_text()</a><br />
+<span class="index-where">(in&nbsp;<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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a><br />
 <span class="index-where">(in&nbsp;<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_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</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&nbsp;<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_unicode">test_feed_parser_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
 <span class="index-where">(in&nbsp;<a 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.InsensitiveSequenceMatcher-class.html#threshold">threshold</a><br />
 <span class="index-where">(in&nbsp;<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_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</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&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<span class="index-where">(in&nbsp;<a 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.token-class.html">token</a><br />
 <span class="index-where">(in&nbsp;<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 />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a 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&nbsp;<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_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.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_feed_parser_recover">test_feed_parser_recover()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</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&nbsp;<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_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_feed_parser_unicode">test_feed_parser_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</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&nbsp;<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_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a 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&nbsp;<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_syntax_error">test_findall_syntax_error()</a><br />
-<span class="index-where">(in&nbsp;<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_replace">test_setitem_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
 <span class="index-where">(in&nbsp;<a 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&nbsp;<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 />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
+<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tostringlist">tostringlist()</a><br />
 <span class="index-where">(in&nbsp;<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_fromstringlist">test_fromstringlist()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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_indexerror">test_setitem_indexerror()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_fromstringlist_characters">test_fromstringlist_characters()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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_tail">test_setitem_tail()</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&nbsp;<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_replace">test_setitem_replace()</a><br />
 <span class="index-where">(in&nbsp;<a 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&nbsp;<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_single">test_fromstringlist_single()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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 />
-<span class="index-where">(in&nbsp;<a href="lxml.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_ns">test_findall_ns()</a><br />
+<span class="index-where">(in&nbsp;<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">test_setitem_string()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</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&nbsp;<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_getiterator">test_getiterator()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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_findall_syntax_error">test_findall_syntax_error()</a><br />
+<span class="index-where">(in&nbsp;<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_special">test_setitem_string_special()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_DEC">TREE_INVALID_DEC</a><br />
 <span class="index-where">(in&nbsp;<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_fromstring">test_fromstring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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_setitem_tail">test_setitem_tail()</a><br />
 <span class="index-where">(in&nbsp;<a 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_HEX">TREE_INVALID_HEX</a><br />
 <span class="index-where">(in&nbsp;<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">test_getiterator_filter()</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&nbsp;<a href="lxml.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 />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<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&nbsp;<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_fromstringlist_characters">test_fromstringlist_characters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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_setslice_all">test_setslice_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
-<span class="index-where">(in&nbsp;<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 />
+<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&nbsp;<a href="lxml.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&nbsp;<a 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&nbsp;<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_comment">test_getiterator_filter_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a><br />
 <span class="index-where">(in&nbsp;<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_element">test_getiterator_filter_element()</a><br />
-<span class="index-where">(in&nbsp;<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_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_getiterator_empty">test_getiterator_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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 />
 <span class="index-where">(in&nbsp;<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_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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_getiterator_filter">test_getiterator_filter()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TT">TT</a><br />
 <span class="index-where">(in&nbsp;<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_local_name">test_getiterator_filter_local_name()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
-<span class="index-where">(in&nbsp;<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_getiterator_filter_all">test_getiterator_filter_all()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.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 />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type">type</a><br />
 <span class="index-where">(in&nbsp;<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">test_getiterator_filter_multiple()</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&nbsp;<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 />
+<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&nbsp;<a 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&nbsp;<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_multiple_tuple">test_getiterator_filter_multiple_tuple()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete">test_setslice_complete()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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_namespace">test_getiterator_filter_namespace()</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&nbsp;<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&nbsp;<a href="lxml.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&nbsp;<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_name">type_name</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 </tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
-</tr>
-<tr>
-<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&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</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 Sun Apr 28 21:00:10 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 356c342b111c884b5d98e62785e70cadca70144d..9bf45f427765f8be6594732155be666599f8de76 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ad9af82e9f4cab96071f595c8c0cc5e981a1f28a..0d35dcd09a0e6e9fb885b56e0fa74fdd50609b49 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ee717b9474220692d2cfe99f2606a32248e2609..53f13a3e8e0664c2a6ce9a4128543701adb9f19e 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7dc02b4dfd67605cfc4c250d839b16fdd9ff4733..406268bb10766b6497eba0f7b12c8e68484955da 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#XHTML_NAMESPACE">XHTML_NAMESPACE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#XML_SCHEMA_INSTANCE_TYPE_ATTR">XML_SCHEMA_INSTANCE_TYPE_ATTR</a><br />
-<span class="index-where">(in&nbsp;<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#XPATH_NUMBER_ERROR">XPATH_NUMBER_ERROR</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#xhtml_parser">xhtml_parser</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#XML_SCHEMA_NIL_ATTR">XML_SCHEMA_NIL_ATTR</a><br />
 <span class="index-where">(in&nbsp;<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#XPATH_START_LITERAL_ERROR">XPATH_START_LITERAL_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#xhtml_parser">xhtml_parser</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#xhtml_parser">xhtml_parser</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#XML_SCHEMA_NS">XML_SCHEMA_NS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XPATH_UNCLOSED_ERROR">XPATH_UNCLOSED_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.XHTMLParser-class.html">XHTMLParser</a></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#xhtml_parser">xhtml_parser</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#XML_SCHEMA_NS">XML_SCHEMA_NS</a><br />
 <span class="index-where">(in&nbsp;<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#XPATH_UNDEF_PREFIX_ERROR">XPATH_UNDEF_PREFIX_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser.XHTMLParser-class.html">XHTMLParser</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.XHTMLParser-class.html">XHTMLParser</a></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#xml_str">xml_str</a><br />
 <span class="index-where">(in&nbsp;<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.ErrorTypes-class.html#XPATH_UNDEF_VARIABLE_ERROR">XPATH_UNDEF_VARIABLE_ERROR</a><br />
 <span class="index-where">(in&nbsp;<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#XINCLUDE">XINCLUDE</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser.XHTMLParser-class.html">XHTMLParser</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#xml_str">xml_str</a><br />
 <span class="index-where">(in&nbsp;<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#XPATH_UNFINISHED_LITERAL_ERROR">XPATH_UNFINISHED_LITERAL_ERROR</a><br />
 <span class="index-where">(in&nbsp;<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#XINCLUDE">XINCLUDE</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#XINCLUDE">XINCLUDE</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#xml_str">xml_str</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XPATH_UNKNOWN_FUNC_ERROR">XPATH_UNKNOWN_FUNC_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html">XInclude</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#XINCLUDE">XINCLUDE</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#xml_version">xml_version</a><br />
 <span class="index-where">(in&nbsp;<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#XPATH_VARIABLE_REF_ERROR">XPATH_VARIABLE_REF_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#xinclude">xinclude()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html">XInclude</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#XMLDTDID">XMLDTDID()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XINCLUDE_BUILD_FAILED">XINCLUDE_BUILD_FAILED</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#xinclude">xinclude()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.xmlfile-class.html">xmlfile</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathElementEvaluator-class.html">XPathElementEvaluator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XINCLUDE_DEPRECATED_NS">XINCLUDE_DEPRECATED_NS</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XINCLUDE_BUILD_FAILED">XINCLUDE_BUILD_FAILED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#XMLID">XMLID()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XINCLUDE_ENTITY_DEF_MISMATCH">XINCLUDE_ENTITY_DEF_MISMATCH</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XINCLUDE_DEPRECATED_NS">XINCLUDE_DEPRECATED_NS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLParser-class.html">XMLParser</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XINCLUDE_ENTITY_DEF_MISMATCH">XINCLUDE_ENTITY_DEF_MISMATCH</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.XMLParser-class.html">XMLParser</a></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#XPathEvaluator">XPathEvaluator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
+<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#XINCLUDE_FALLBACK">XINCLUDE_FALLBACK</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser">XMLParser()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="cssselect.xpath.XPathExpr-class.html">XPathExpr</a></td>
+</tr>
+<tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#XINCLUDE_FALLBACK_NOT_IN_INCLUDE">XINCLUDE_FALLBACK_NOT_IN_INCLUDE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html">XMLSchema</a><br />
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTSaveError-class.html">XSLTSaveError</a><br />
 <span class="index-where">(in&nbsp;<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-module.html#XML_SCHEMA_INSTANCE_TYPE_ATTR">XML_SCHEMA_INSTANCE_TYPE_ATTR</a><br />
+<span class="index-where">(in&nbsp;<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#XPATH_NUMBER_ERROR">XPATH_NUMBER_ERROR</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</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 Sun Apr 28 21:00:10 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cea9b9b6db4455788d55f409678042f3cca25dba..7d9c962ac8c90f5ee2b8da6f05037d4695128da9 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 13bd945043cb809aeb44d07dcb13e5f6ba6b3a3c..648d8ac1c3345c51732b5e373ffdb83ad960b655 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 11a580431913aa2cc341234b4254bc102218b18b..23196ecac58ea33077894f84361b5304f4e775e6 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__abs__">__abs__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.PythonElementClassLookup-class.html#__new__">__new__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.PythonElementClassLookup-class.html">PythonElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_negative_cache">_abc_negative_cache</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__abstractmethods__">__abstractmethods__</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_negative_cache_version">_abc_negative_cache_version</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__add__">__add__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__abstractmethods__">__abstractmethods__</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_registry">_abc_registry</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__add__">__add__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__add__">__add__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.Resolver-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.Resolver-class.html">Resolver</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__del">_action__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__and__">__and__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__add__">__add__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__get">_action__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__and__">__and__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SiblingsIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.SiblingsIterator-class.html" onclick="show_private();">SiblingsIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__set">_action__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_add_class">_add_class()</a><br />
 <span class="index-where">(in&nbsp;<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.DTD-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#_all_xpath">_all_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLParser-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLParser-class.html">XMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#_append_log_message">_append_log_message()</a><br />
 <span class="index-where">(in&nbsp;<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.Schematron-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_append_text">_append_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#_archive_re">_archive_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathDocumentEvaluator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html">_Attrib</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathElementEvaluator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_classes">_avoid_classes</a><br />
 <span class="index-where">(in&nbsp;<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.XPathDocumentEvaluator-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_elements">_avoid_elements</a><br />
 <span class="index-where">(in&nbsp;<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.XPathElementEvaluator-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XPathDocumentEvaluator-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTAccessControl-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_hosts">_avoid_hosts</a><br />
 <span class="index-where">(in&nbsp;<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#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XPathElementEvaluator-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTExtension-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTExtension-class.html">XSLTExtension</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_word_break_classes">_avoid_word_break_classes</a><br />
 <span class="index-where">(in&nbsp;<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._MethodFunc-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html._MethodFunc-class.html">_MethodFunc</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_word_break_elements">_avoid_word_break_elements</a><br />
 <span class="index-where">(in&nbsp;<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.clean.Cleaner-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html._MethodFunc-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html._MethodFunc-class.html">_MethodFunc</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html">_BaseErrorLog</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_body_re">_body_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Document-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Document-class.html" onclick="show_private();">_Document</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_break_prefer_re">_break_prefer_re</a><br />
 <span class="index-where">(in&nbsp;<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.ElementMaker-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._DomainErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._DomainErrorLog-class.html" onclick="show_private();">_DomainErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_break_text">_break_text()</a><br />
 <span class="index-where">(in&nbsp;<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.ObjectPath-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<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_threading.ThreadPipelineTestCase-class.html#_build_pipeline">_build_pipeline()</a><br />
 <span class="index-where">(in&nbsp;<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.dummy_http_server.HTTPRequestCollector-class.html#__call__">__call__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__call__">__call__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</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&nbsp;<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&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</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&nbsp;<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&nbsp;<a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</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&nbsp;<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&nbsp;<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.NumberElement-class.html#__complex__">__complex__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</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&nbsp;<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&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</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&nbsp;<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&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</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&nbsp;<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&nbsp;<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._Attrib-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</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&nbsp;<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&nbsp;<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._Element-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</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&nbsp;<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&nbsp;<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._IDDict-class.html#__contains__">__contains__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<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#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</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&nbsp;<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&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</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&nbsp;<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&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__copy__">__copy__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</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&nbsp;<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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</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&nbsp;<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&nbsp;<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.XSLT-class.html#__deepcopy__">__deepcopy__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</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&nbsp;<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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</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&nbsp;<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&nbsp;<a href="lxml.etree-module.html">lxml.etree</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&nbsp;<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&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</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&nbsp;<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&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</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&nbsp;<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&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</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&nbsp;<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&nbsp;<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.ObjectifiedElement-class.html#__delattr__">__delattr__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</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&nbsp;<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&nbsp;<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#__delitem__">__delitem__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</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&nbsp;<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&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</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&nbsp;<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&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</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&nbsp;<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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</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&nbsp;<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&nbsp;<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#__div__">__div__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</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&nbsp;<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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<a href="lxml.html.ElementSoup-module.html">lxml.html.ElementSoup</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&nbsp;<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&nbsp;<a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</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&nbsp;<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&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</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&nbsp;<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&nbsp;<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#__eq__">__eq__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</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&nbsp;<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&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</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&nbsp;<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&nbsp;<a href="lxml.etree.QName-class.html">QName</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&nbsp;<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&nbsp;<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#__eq__">__eq__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</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&nbsp;<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&nbsp;<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.QName-class.html#__ge__">__ge__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</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&nbsp;<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&nbsp;<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#__ge__">__ge__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.QName-class.html">QName</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&nbsp;<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&nbsp;<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#__ge__">__ge__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</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&nbsp;<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&nbsp;<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#__ge__">__ge__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</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&nbsp;<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&nbsp;<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.NumberElement-class.html#__ge__">__ge__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</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&nbsp;<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&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</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&nbsp;<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&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.builder.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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</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&nbsp;<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&nbsp;<a href="lxml.etree-module.html">lxml.etree</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&nbsp;<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&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</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&nbsp;<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&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</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&nbsp;<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&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</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&nbsp;<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&nbsp;<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._Element-class.html#__getitem__">__getitem__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</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&nbsp;<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&nbsp;<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#__getitem__">__getitem__()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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#__or__">__or__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</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&nbsp;<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&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.builder-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.cssselect-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</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&nbsp;<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.ObjectifiedElement-class.html#__getitem__">__getitem__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</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&nbsp;<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&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</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&nbsp;<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.BoolElement-class.html#__gt__">__gt__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</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&nbsp;<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.NoneElement-class.html#__gt__">__gt__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</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&nbsp;<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#__gt__">__gt__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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#_fixup_ins_del_tags">_fixup_ins_del_tags()</a><br />
+<span class="index-where">(in&nbsp;<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.NoneElement-class.html#__hash__">__hash__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</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&nbsp;<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#__hash__">__hash__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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 />
+<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&nbsp;<a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.LabelElement-class.html">LabelElement</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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<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&nbsp;<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#_get_caller_relative_path">_get_caller_relative_path()</a><br />
+<span class="index-where">(in&nbsp;<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.doctestcompare._RestoreChecker-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</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&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</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&nbsp;<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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</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&nbsp;<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&nbsp;<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.ErrorLevels-class.html#_getName">_getName()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</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&nbsp;<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&nbsp;<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.ErrorTypes-class.html#_getName">_getName()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</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&nbsp;<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&nbsp;<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.RelaxNGErrorTypes-class.html#_getName">_getName()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.sax-module.html">lxml.sax</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&nbsp;<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&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.sax-module.html#_getNsTag">_getNsTag()</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</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&nbsp;<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&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</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&nbsp;<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&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</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&nbsp;<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&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</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&nbsp;<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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</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&nbsp;<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&nbsp;<a href="lxml.etree-module.html">lxml.etree</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&nbsp;<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&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html">_IDDict</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</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&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</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&nbsp;<a href="lxml.etree.HTMLParser-class.html">HTMLParser</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&nbsp;<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&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_include">_include()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</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&nbsp;<a href="lxml.etree.LxmlError-class.html">LxmlError</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&nbsp;<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&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</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&nbsp;<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.PIBase-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.PIBase-class.html">PIBase</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&nbsp;<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&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</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&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</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&nbsp;<a href="lxml.etree.ParseError-class.html">ParseError</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&nbsp;<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&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</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&nbsp;<a href="lxml.objectify.FloatElement-class.html">FloatElement</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&nbsp;<a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</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&nbsp;<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&nbsp;<a href="lxml.objectify.FloatElement-class.html">FloatElement</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&nbsp;<a href="lxml.objectify.IntElement-class.html">IntElement</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&nbsp;<a href="lxml.etree.QName-class.html">QName</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&nbsp;<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&nbsp;<a href="lxml.objectify.IntElement-class.html">IntElement</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&nbsp;<a href="lxml.objectify.LongElement-class.html">LongElement</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&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</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&nbsp;<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&nbsp;<a href="lxml.objectify.LongElement-class.html">LongElement</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&nbsp;<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.Schematron-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</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&nbsp;<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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</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&nbsp;<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.TreeBuilder-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</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&nbsp;<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&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</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&nbsp;<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.XInclude-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</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&nbsp;<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&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</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&nbsp;<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.XMLParser-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLParser-class.html">XMLParser</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&nbsp;<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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</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&nbsp;<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.XMLSchema-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</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&nbsp;<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&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</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&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</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&nbsp;<a href="lxml.etree.XPath-class.html">XPath</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&nbsp;<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&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</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.XPathDocumentEvaluator-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</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&nbsp;<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>
+<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&nbsp;<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.XPathElementEvaluator-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</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&nbsp;<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&nbsp;<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#_kill_elements">_kill_elements()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</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&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</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&nbsp;<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&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</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&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</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&nbsp;<a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#__parseBool">__parseBool()</a><br />
 <span class="index-where">(in&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#_label__get">_label__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<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#__pos__">__pos__()</a><br />
 <span class="index-where">(in&nbsp;<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__get">_label__get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#_label__set">_label__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._DomainErrorLog-class.html" onclick="show_private();">_DomainErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__pow__">__pow__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</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&nbsp;<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._ErrorLog-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</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&nbsp;<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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</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&nbsp;<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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</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&nbsp;<a href="lxml.etree._RotatingErrorLog-class.html" onclick="show_private();">_RotatingErrorLog</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&nbsp;<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&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</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&nbsp;<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._TargetParserResult-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._TargetParserResult-class.html" onclick="show_private();">_TargetParserResult</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&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_link_text">_link_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</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&nbsp;<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&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html">_ListErrorLog</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</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&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</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&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html">_LogEntry</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</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&nbsp;<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&nbsp;<a href="lxml.etree-module.html">lxml.etree</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&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</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&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</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&nbsp;<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&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</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&nbsp;<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.CheckboxValues-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</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&nbsp;<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&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</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&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</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&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</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&nbsp;<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&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</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&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</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&nbsp;<a href="lxml.html.HTMLParser-class.html">HTMLParser</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&nbsp;<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&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</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&nbsp;<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.HtmlElementClassLookup-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</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&nbsp;<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&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</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&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</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&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</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&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_method__set">_method__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</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&nbsp;<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&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</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.XHTMLParser-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.XHTMLParser-class.html">XHTMLParser</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&nbsp;<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>
+<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&nbsp;<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._MethodFunc-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html._MethodFunc-class.html">_MethodFunc</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&nbsp;<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&nbsp;<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__get">_multiple__get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</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&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</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&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_multiple__set">_multiple__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</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&nbsp;<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&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</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&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</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&nbsp;<a href="lxml.html.html5parser.HTMLParser-class.html">HTMLParser</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&nbsp;<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&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</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&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</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&nbsp;<a href="lxml.html.html5parser.XHTMLParser-class.html">XHTMLParser</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&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__get">_name__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</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&nbsp;<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 />
+<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__set">_name__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</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&nbsp;<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&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</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&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</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&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</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&nbsp;<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&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</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&nbsp;<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.ObjectifyElementClassLookup-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifyElementClassLookup-class.html">ObjectifyElementClassLookup</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&nbsp;<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&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</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&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</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&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</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&nbsp;<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&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</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&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</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&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</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&nbsp;<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&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</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&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</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&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</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&nbsp;<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&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</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&nbsp;<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.LargeFileLike-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLike-class.html">LargeFileLike</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&nbsp;<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&nbsp;<a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</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&nbsp;<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.LargeFileLikeUnicode-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">LargeFileLikeUnicode</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&nbsp;<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&nbsp;<a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</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&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</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&nbsp;<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&nbsp;<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&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<a href="lxml.etree.XPathEvalError-class.html">XPathEvalError</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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.XPathFunctionError-class.html">XPathFunctionError</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&nbsp;<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.SimpleFileLikeXmlFileTestCase-class.html#_parse_file">_parse_file()</a><br />
+<span class="index-where">(in&nbsp;<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_threading.ThreadPipelineTestCase.Worker-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.XPathResultError-class.html">XPathResultError</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&nbsp;<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#_parse_file">_parse_file()</a><br />
+<span class="index-where">(in&nbsp;<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_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__">__init__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.XPathSyntaxError-class.html">XPathSyntaxError</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&nbsp;<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_http_io.HttpIOTestCase-class.html#_parse_from_http">_parse_from_http()</a><br />
+<span class="index-where">(in&nbsp;<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.NumberElement-class.html#__int__">__int__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.XSLTApplyError-class.html">XSLTApplyError</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&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html">_ProcessingInstruction</a><br />
+<span class="index-where">(in&nbsp;<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#__int__">__int__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.XSLTError-class.html">XSLTError</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html">_ProcessingInstruction</a><br />
-<span class="index-where">(in&nbsp;<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&nbsp;<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.objectify.NumberElement-class.html#__invert__">__invert__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.XSLTExtensionError-class.html">XSLTExtensionError</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&nbsp;<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&nbsp;<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.ElementDepthFirstIterator-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.etree.XSLTParseError-class.html">XSLTParseError</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&nbsp;<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&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</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&nbsp;<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&nbsp;<a href="lxml.etree.XSLTSaveError-class.html">XSLTSaveError</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&nbsp;<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&nbsp;<a href="lxml.html-module.html">lxml.html</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&nbsp;<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&nbsp;<a href="lxml.etree._ElementStringResult-class.html" onclick="show_private();">_ElementStringResult</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&nbsp;<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&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</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&nbsp;<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&nbsp;<a href="lxml.etree._TargetParserResult-class.html" onclick="show_private();">_TargetParserResult</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&nbsp;<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&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</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&nbsp;<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&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</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&nbsp;<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&nbsp;<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._ElementMatchIterator-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<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&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</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&nbsp;<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.isoschematron-module.html#_resources_dir">_resources_dir</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rand__">__rand__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_resources_dir">_resources_dir</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html">_RestoreChecker</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<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#__rdiv__">__rdiv__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html">_RestoreChecker</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#_rootstring">_rootstring()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__reduce__">__reduce__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#_rootstring">_rootstring()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring">_rootstring()</a><br />
+<span class="index-where">(in&nbsp;<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.iterparse-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring">_rootstring()</a><br />
-<span class="index-where">(in&nbsp;<a 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._RotatingErrorLog-class.html">_RotatingErrorLog</a><br />
+<span class="index-where">(in&nbsp;<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#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._RotatingErrorLog-class.html">_RotatingErrorLog</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#_run_thread">_run_thread()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTAccessControl-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#_run_thread">_run_thread()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_serialize">_saxify_serialize()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_serialize">_saxify_serialize()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_unsaxify">_saxify_unsaxify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_unsaxify">_saxify_unsaxify()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._SaxParserTarget-class.html">_SaxParserTarget</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._SaxParserTarget-class.html">_SaxParserTarget</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_schematron_root">_schematron_root</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__iter__">__iter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_schematron_root">_schematron_root</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_select">_select()</a><br />
+<span class="index-where">(in&nbsp;<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#__le__">__le__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_select">_select()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#_serialize">_serialize</a><br />
+<span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__le__">__le__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#_serialize">_serialize</a><br />
-<span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_setClassLookup">_setClassLookup()</a><br />
+<span class="index-where">(in&nbsp;<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.BoolElement-class.html#__le__">__le__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_setClassLookup">_setClassLookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#_setroot">_setroot()</a><br />
+<span class="index-where">(in&nbsp;<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.objectify.NoneElement-class.html#__le__">__le__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#_setroot">_setroot()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#_setText">_setText()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__le__">__le__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#_setText">_setText()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#_setValueParser">_setValueParser()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__le__">__le__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#_setValueParser">_setValueParser()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="xml.etree.ElementTree._SimpleElementPath-class.html">_SimpleElementPath</a></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
-<td width="33%" class="link-index"><a href="xml.etree.ElementTree._SimpleElementPath-class.html">_SimpleElementPath</a></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_str">_str()</a><br />
+<span class="index-where">(in&nbsp;<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#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_str">_str()</a><br />
-<span class="index-where">(in&nbsp;<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.html5parser-module.html#_strings">_strings</a><br />
+<span class="index-where">(in&nbsp;<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#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#_strings">_strings</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_stylesheet_param_dict">_stylesheet_param_dict()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_stylesheet_param_dict">_stylesheet_param_dict()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_substitute_comments">_substitute_comments()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_substitute_comments">_substitute_comments()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_substitute_whitespace">_substitute_whitespace()</a><br />
+<span class="index-where">(in&nbsp;<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.ObjectifiedElement-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_substitute_whitespace">_substitute_whitespace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_tag">_tag</a><br />
+<span class="index-where">(in&nbsp;<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.NumberElement-class.html#__long__">__long__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<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.formfill-module.html#_tag">_tag</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_tag_link_attrs">_tag_link_attrs</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__long__">__long__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<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.Cleaner-class.html#_tag_link_attrs">_tag_link_attrs</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_takes_multiple">_takes_multiple()</a><br />
+<span class="index-where">(in&nbsp;<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-module.html#__lower_bool">__lower_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_takes_multiple">_takes_multiple()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._TargetParserResult-class.html">_TargetParserResult</a><br />
+<span class="index-where">(in&nbsp;<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#__lshift__">__lshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._TargetParserResult-class.html">_TargetParserResult</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail">_test_del_tail()</a><br />
+<span class="index-where">(in&nbsp;<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.QName-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail">_test_del_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean">_test_element_boolean()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean">_test_element_boolean()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match3">_test_exslt_regexp_match3()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match3">_test_exslt_regexp_match3()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match4">_test_exslt_regexp_match4()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match4">_test_exslt_regexp_match4()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__reversed__">__reversed__()</a><br />
 <span class="index-where">(in&nbsp;<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_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren">_test_getchildren()</a><br />
+<span class="index-where">(in&nbsp;<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.objectify.StringElement-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rlshift__">__rlshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren">_test_getchildren()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__mod__">__mod__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmod__">__rmod__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</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&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__mod__">__mod__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmod__">__rmod__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding()</a><br />
+<span class="index-where">(in&nbsp;<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.objectify.NumberElement-class.html#__mul__">__mul__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmul__">__rmul__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#_test_xpath_compile_unicode">_test_xpath_compile_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__mul__">__mul__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmul__">__rmul__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#_test_xpath_compile_unicode">_test_xpath_compile_unicode()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_type__get">_type__get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ror__">__ror__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_type__get">_type__get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_type__set">_type__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rpow__">__rpow__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_type__set">_type__set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_validation_errors">_validation_errors</a><br />
+<span class="index-where">(in&nbsp;<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#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rrshift__">__rrshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_validation_errors">_validation_errors</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html">_Validator</a><br />
+<span class="index-where">(in&nbsp;<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#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rshift__">__rshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html">_Validator</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__del">_value__del()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rsub__">__rsub__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__del">_value__del()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__del">_value__del()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rtruediv__">__rtruediv__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__del">_value__del()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__del">_value__del()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__neg__">__neg__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rxor__">__rxor__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__del">_value__del()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__del">_value__del()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.AncestorsIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.AncestorsIterator-class.html" onclick="show_private();">AncestorsIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__setattr__">__setattr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__del">_value__del()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__del">_value__del()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.AttributeBasedElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.AttributeBasedElementClassLookup-class.html">AttributeBasedElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__setitem__">__setitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__del">_value__del()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__get">_value__get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.CDATA-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.CDATA-class.html">CDATA</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__setitem__">__setitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__get">_value__get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__get">_value__get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.CommentBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.CommentBase-class.html">CommentBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__setitem__">__setitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__get">_value__get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__get">_value__get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.CustomElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.CustomElementClassLookup-class.html">CustomElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__setitem__">__setitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__get">_value__get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__get">_value__get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__get">_value__get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__get">_value__get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__get">_value__get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__set">_value__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__set">_value__set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__set">_value__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ETXPath-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ETXPath-class.html">ETXPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__set">_value__set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__set">_value__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementBase-class.html">ElementBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__set">_value__set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__set">_value__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementChildIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementChildIterator-class.html" onclick="show_private();">ElementChildIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__set">_value__set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__set">_value__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementClassLookup-class.html">ElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__set">_value__set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_wrap_et_loader">_wrap_et_loader()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__str__">__str__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_wrap_et_loader">_wrap_et_loader()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement()</a><br />
+<span class="index-where">(in&nbsp;<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.ElementDepthFirstIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDepthFirstIterator-class.html" onclick="show_private();">ElementDepthFirstIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__sub__">__sub__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement()</a><br />
+<span class="index-where">(in&nbsp;<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.ElementNamespaceClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#__test__">__test__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile()</a><br />
+<span class="index-where">(in&nbsp;<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.ElementTextIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">ElementTextIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#__test__">__test__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.EntityBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.EntityBase-class.html">EntityBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#__test__">__test__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_xml_schema_root">_xml_schema_root</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.FallbackElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.FallbackElementClassLookup-class.html">FallbackElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__truediv__">__truediv__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_xml_schema_root">_xml_schema_root</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html">_XmlFileTestCaseBase</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.HTMLParser-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.HTMLParser-class.html">HTMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__unicode__">__unicode__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html">_XmlFileTestCaseBase</a><br />
-<span class="index-where">(in&nbsp;<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._XPathEvaluatorBase-class.html">_XPathEvaluatorBase</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.PIBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.PIBase-class.html">PIBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#__unpickleElementTree">__unpickleElementTree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html">_XPathEvaluatorBase</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._XSLTProcessingInstruction-class.html">_XSLTProcessingInstruction</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ParserBasedElementClassLookup-class.html">ParserBasedElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__xor__">__xor__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XSLTProcessingInstruction-class.html">_XSLTProcessingInstruction</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html">_XSLTResultTree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="abc.ABCMeta-class.html#_abc_invalidation_counter">_abc_invalidation_counter</a><br />
 <span class="index-where">(in&nbsp;<a href="abc.ABCMeta-class.html">ABCMeta</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html">_XSLTResultTree</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.PythonElementClassLookup-class.html#__new__">__new__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.PythonElementClassLookup-class.html">PythonElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_negative_cache">_abc_negative_cache</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</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 Sun Apr 28 21:00:10 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 916a8777336f9fd6d6b95ddc85b2409c1c99e896..3c78407fe0437d9eabfad4c9449897afbca1cfa9 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8eccb8ec6d6470dfa2a18caa40d6606d16bcc500..21002dd6eb05abc460ed968e7a10dbf1dc187845 100644 (file)
@@ -235,7 +235,7 @@ with statically linked libraries.</td>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5ed16df15b589d933f6da35a0d109a9ac6cdc8d0..77e720760aada3008df6747a7df52d0392985de4 100644 (file)
@@ -123,7 +123,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 170b2b6417751407af50e050ed90940ac06799d2..fc7e25d255ac84eca32725c5e11f21cb87d0b18d 100644 (file)
@@ -277,7 +277,7 @@ form of custom URL resolvers.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc08e8f113997cc8104ebc9163a63595403a7596..c6c6918cbc68e341df558c24bf55b82a84eb0eab 100644 (file)
@@ -517,7 +517,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dd26be78c5667c7b0bbf4ed168907de5778e6bf2..bede964e5f3ab4203b4221ee5a5f9397bc26ed13 100644 (file)
@@ -229,7 +229,7 @@ exceptions.BaseException --+           |
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 83040ebcf2319549af50f19b57d519d1912926bf..01f1b0d6a14c3c76d73072343c724a05c2b1dcc7 100644 (file)
@@ -85,7 +85,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name">basestring</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -93,7 +93,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name">unicode</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -202,7 +202,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dffac0c130c61192798f3aac5bac041d6e3d4dd1..980dc3fe4e278211f7fafb94a184f65d2347c36b 100644 (file)
@@ -432,7 +432,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5cdc6694417878434d4667a47e7629786ba8b357..1c73c297eb8482ba5d8a5d951306b3c3a77e8180 100644 (file)
@@ -355,7 +355,7 @@ and/or a specific target ``namespace`` to the ElementMaker class::
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2181852240b9b59bf8bfa061628771a4fde729b9..5a42f3933c9309a924c8f5cb975d68dd103a748f 100644 (file)
@@ -83,6 +83,31 @@ See the <a href="lxml.cssselect.CSSSelector-class.html" class="link">CSSSelector
     </table>
   </td>
 </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="cssselect.parser.SelectorSyntaxError-class.html" class="summary-name">SelectorSyntaxError</a><br />
+      Parsing a selector that does not match the grammar.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="cssselect.xpath.ExpressionError-class.html" class="summary-name">ExpressionError</a><br />
+      Unknown or unsupported selector (eg. pseudo-class).
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="cssselect.parser.SelectorError-class.html" class="summary-name">SelectorError</a><br />
+      Common parent for :class:`SelectorSyntaxError` and
+:class:`ExpressionError`.
+    </td>
+  </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -164,35 +189,14 @@ See the <a href="lxml.cssselect.CSSSelector-class.html" class="link">CSSSelector
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="external_cssselect"></a><span class="summary-name">external_cssselect</span> = <code title="__import__('cssselect')">__import__('cssselect')</code>
-    </td>
-  </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-        <a name="SelectorSyntaxError"></a><span class="summary-name">SelectorSyntaxError</span> = <code title="external_cssselect.SelectorSyntaxError">external_cssselect.SelectorSyntaxError</code>
-    </td>
-  </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-        <a name="ExpressionError"></a><span class="summary-name">ExpressionError</span> = <code title="external_cssselect.ExpressionError">external_cssselect.ExpressionError</code>
-    </td>
-  </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-        <a name="SelectorError"></a><span class="summary-name">SelectorError</span> = <code title="external_cssselect.SelectorError">external_cssselect.SelectorError</code>
+        <a name="ns"></a><span class="summary-name">ns</span> = <code title="FunctionNamespace('http://codespeak.net/lxml/css/')">FunctionNamespace('http://codespeak.net/lxml/css/')</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="ns"></a><span class="summary-name">ns</span> = <code title="etree.FunctionNamespace('http://codespeak.net/lxml/css/')">etree.FunctionNamespace('http://codespeak.net/lxml/css/')</code>
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'lxml'"><code class="variable-quote">'</code><code class="variable-string">lxml</code><code class="variable-quote">'</code></code>
     </td>
   </tr>
 </table>
@@ -227,7 +231,7 @@ See the <a href="lxml.cssselect.CSSSelector-class.html" class="link">CSSSelector
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c7f777fe6a22e823ca2edab855838931c49748eb..064bd174ad488a10431b4055f741829616437b51 100644 (file)
@@ -80,14 +80,14 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 <a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment">#from __future__ import absolute_import</tt> </tt>
 <a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment">#from cssselect import ...</tt> </tt>
 <a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line">    <tt id="link-2" class="py-name" targets="Variable lxml.cssselect.external_cssselect=lxml.cssselect-module.html#external_cssselect"><a title="lxml.cssselect.external_cssselect" class="py-name" href="#" onclick="return doclink('link-2', 'external_cssselect', 'link-2');">external_cssselect</a></tt> <tt class="py-op">=</tt> <tt class="py-name">__import__</tt><tt class="py-op">(</tt><tt class="py-string">'cssselect'</tt><tt class="py-op">)</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line">    <tt class="py-name">external_cssselect</tt> <tt class="py-op">=</tt> <tt class="py-name">__import__</tt><tt class="py-op">(</tt><tt class="py-string">'cssselect'</tt><tt class="py-op">)</tt> </tt>
 <a name="L17"></a><tt class="py-lineno"> 17</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="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt><tt class="py-string">'cssselect seems not to be installed. '</tt> </tt>
 <a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">                      <tt class="py-string">'See http://packages.python.org/cssselect/'</tt><tt class="py-op">)</tt> </tt>
 <a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable lxml.cssselect.SelectorSyntaxError=lxml.cssselect-module.html#SelectorSyntaxError"><a title="lxml.cssselect.SelectorSyntaxError" class="py-name" href="#" onclick="return doclink('link-3', 'SelectorSyntaxError', 'link-3');">SelectorSyntaxError</a></tt> <tt class="py-op">=</tt> <tt id="link-4" class="py-name"><a title="lxml.cssselect.external_cssselect" class="py-name" href="#" onclick="return doclink('link-4', 'external_cssselect', 'link-2');">external_cssselect</a></tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="lxml.cssselect.SelectorSyntaxError" class="py-name" href="#" onclick="return doclink('link-5', 'SelectorSyntaxError', 'link-3');">SelectorSyntaxError</a></tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable lxml.cssselect.ExpressionError=lxml.cssselect-module.html#ExpressionError"><a title="lxml.cssselect.ExpressionError" class="py-name" href="#" onclick="return doclink('link-6', 'ExpressionError', 'link-6');">ExpressionError</a></tt> <tt class="py-op">=</tt> <tt id="link-7" class="py-name"><a title="lxml.cssselect.external_cssselect" class="py-name" href="#" onclick="return doclink('link-7', 'external_cssselect', 'link-2');">external_cssselect</a></tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="lxml.cssselect.ExpressionError" class="py-name" href="#" onclick="return doclink('link-8', 'ExpressionError', 'link-6');">ExpressionError</a></tt> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable lxml.cssselect.SelectorError=lxml.cssselect-module.html#SelectorError"><a title="lxml.cssselect.SelectorError" class="py-name" href="#" onclick="return doclink('link-9', 'SelectorError', 'link-9');">SelectorError</a></tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name"><a title="lxml.cssselect.external_cssselect" class="py-name" href="#" onclick="return doclink('link-10', 'external_cssselect', 'link-2');">external_cssselect</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name"><a title="lxml.cssselect.SelectorError" class="py-name" href="#" onclick="return doclink('link-11', 'SelectorError', 'link-9');">SelectorError</a></tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Class cssselect.parser.SelectorSyntaxError=cssselect.parser.SelectorSyntaxError-class.html"><a title="cssselect.parser.SelectorSyntaxError" class="py-name" href="#" onclick="return doclink('link-2', 'SelectorSyntaxError', 'link-2');">SelectorSyntaxError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">external_cssselect</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="cssselect.parser.SelectorSyntaxError" class="py-name" href="#" onclick="return doclink('link-3', 'SelectorSyntaxError', 'link-2');">SelectorSyntaxError</a></tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Class cssselect.xpath.ExpressionError=cssselect.xpath.ExpressionError-class.html"><a title="cssselect.xpath.ExpressionError" class="py-name" href="#" onclick="return doclink('link-4', 'ExpressionError', 'link-4');">ExpressionError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">external_cssselect</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="cssselect.xpath.ExpressionError" class="py-name" href="#" onclick="return doclink('link-5', 'ExpressionError', 'link-4');">ExpressionError</a></tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt id="link-6" class="py-name" targets="Class cssselect.parser.SelectorError=cssselect.parser.SelectorError-class.html"><a title="cssselect.parser.SelectorError" class="py-name" href="#" onclick="return doclink('link-6', 'SelectorError', 'link-6');">SelectorError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">external_cssselect</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name"><a title="cssselect.parser.SelectorError" class="py-name" href="#" onclick="return doclink('link-7', 'SelectorError', 'link-6');">SelectorError</a></tt> </tt>
 <a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
 <a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"> </tt>
 <a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-name">__all__</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">'SelectorSyntaxError'</tt><tt class="py-op">,</tt> <tt class="py-string">'ExpressionError'</tt><tt class="py-op">,</tt> <tt class="py-string">'SelectorError'</tt><tt class="py-op">,</tt> </tt>
@@ -102,27 +102,27 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 </div><div id="LxmlTranslator.xpath_contains_function-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="LxmlTranslator.xpath_contains_function-expanded"><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">        <tt class="py-comment"># Defined there, removed in later drafts:</tt> </tt>
 <a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-comment"># http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#content-selectors</tt> </tt>
 <a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">function</tt><tt class="py-op">.</tt><tt class="py-name">argument_types</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'STRING'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'IDENT'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt id="link-12" class="py-name"><a title="lxml.cssselect.ExpressionError" class="py-name" href="#" onclick="return doclink('link-12', 'ExpressionError', 'link-6');">ExpressionError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt id="link-8" class="py-name"><a title="cssselect.xpath.ExpressionError" class="py-name" href="#" onclick="return doclink('link-8', 'ExpressionError', 'link-4');">ExpressionError</a></tt><tt class="py-op">(</tt> </tt>
 <a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">                <tt class="py-string">"Expected a single string or ident for :contains(), got %r"</tt> </tt>
 <a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">                <tt class="py-op">%</tt> <tt class="py-name">function</tt><tt class="py-op">.</tt><tt class="py-name">arguments</tt><tt class="py-op">)</tt> </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt id="link-13" 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
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt id="link-9" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-13', 'value', 'link-13');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">function</tt><tt class="py-op">.</tt><tt class="py-name">arguments</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-14" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-9', 'value', 'link-9');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">function</tt><tt class="py-op">.</tt><tt class="py-name">arguments</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-10" 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-14', 'value', 'link-13');">value</a></tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-15" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-10', 'value', 'link-9');">value</a></tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-11" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
-lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-15', 'xpath', 'link-15');">xpath</a></tt><tt class="py-op">.</tt><tt class="py-name">add_condition</tt><tt class="py-op">(</tt> </tt>
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-11', 'xpath', 'link-11');">xpath</a></tt><tt class="py-op">.</tt><tt class="py-name">add_condition</tt><tt class="py-op">(</tt> </tt>
 <a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">            <tt class="py-string">'contains(__lxml_internal_css:lower-case(string(.)), %s)'</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xpath_literal</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="lxml.html.CheckboxGroup.value
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">xpath_literal</tt><tt class="py-op">(</tt><tt id="link-12" 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-16', 'value', 'link-13');">value</a></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-op">)</tt> </tt>
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-12', 'value', 'link-9');">value</a></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-op">)</tt> </tt>
 </div></div><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>
 <a name="LxmlHTMLTranslator"></a><div id="LxmlHTMLTranslator-def"><a name="L47"></a><tt class="py-lineno"> 47</tt> <a class="py-toggle" href="#" id="LxmlHTMLTranslator-toggle" onclick="return toggle('LxmlHTMLTranslator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.cssselect.LxmlHTMLTranslator-class.html">LxmlHTMLTranslator</a><tt class="py-op">(</tt><tt class="py-base-class">LxmlTranslator</tt><tt class="py-op">,</tt> <tt class="py-base-class">external_cssselect</tt><tt class="py-op">.</tt><tt class="py-base-class">HTMLTranslator</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -134,13 +134,13 @@ lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclin
 <a name="_make_lower_case"></a><div id="_make_lower_case-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="_make_lower_case-toggle" onclick="return toggle('_make_lower_case');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.cssselect-module.html#_make_lower_case">_make_lower_case</a><tt class="py-op">(</tt><tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="_make_lower_case-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_make_lower_case-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">s</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="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line"> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt id="link-17" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-17', 'ns', 'link-17');">ns</a></tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="lxml.etree
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt id="link-13" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-13', 'ns', 'link-13');">ns</a></tt> <tt class="py-op">=</tt> <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-18', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Function lxml.etree.FunctionNamespace()=lxml.etree-module.html#FunctionNamespace"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-19', 'FunctionNamespace', 'link-19');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://codespeak.net/lxml/css/'</tt><tt class="py-op">)</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt id="link-20" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-20', 'ns', 'link-17');">ns</a></tt><tt class="py-op">.</tt><tt id="link-21" 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-21', 'prefix', 'link-21');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'__lxml_internal_css'</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt id="link-22" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-22', 'ns', 'link-17');">ns</a></tt><tt class="py-op">[</tt><tt class="py-string">'lower-case'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name" targets="Function lxml.cssselect._make_lower_case()=lxml.cssselect-module.html#_make_lower_case"><a title="lxml.cssselect._make_lower_case" class="py-name" href="#" onclick="return doclink('link-23', '_make_lower_case', 'link-23');">_make_lower_case</a></tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-14', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Function lxml.etree.FunctionNamespace()=lxml.etree-module.html#FunctionNamespace"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-15', 'FunctionNamespace', 'link-15');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://codespeak.net/lxml/css/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt id="link-16" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-16', 'ns', 'link-13');">ns</a></tt><tt class="py-op">.</tt><tt id="link-17" 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-17', 'prefix', 'link-17');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'__lxml_internal_css'</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt id="link-18" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-18', 'ns', 'link-13');">ns</a></tt><tt class="py-op">[</tt><tt class="py-string">'lower-case'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-19" class="py-name" targets="Function lxml.cssselect._make_lower_case()=lxml.cssselect-module.html#_make_lower_case"><a title="lxml.cssselect._make_lower_case" class="py-name" href="#" onclick="return doclink('link-19', '_make_lower_case', 'link-19');">_make_lower_case</a></tt> </tt>
 <a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
 <a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"> </tt>
 <a name="CSSSelector"></a><div id="CSSSelector-def"><a name="L61"></a><tt class="py-lineno"> 61</tt> <a class="py-toggle" href="#" id="CSSSelector-toggle" onclick="return toggle('CSSSelector');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XPath</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -172,17 +172,17 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 <a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 <a name="CSSSelector.__init__"></a><div id="CSSSelector.__init__-def"><a name="L88"></a><tt class="py-lineno"> 88</tt> <a class="py-toggle" href="#" id="CSSSelector.__init__-toggle" onclick="return toggle('CSSSelector.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.cssselect.CSSSelector-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">css</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">translator</tt><tt class="py-op">=</tt><tt class="py-string">'xml'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="CSSSelector.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="CSSSelector.__init__-expanded"><a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">translator</tt> <tt class="py-op">==</tt> <tt class="py-string">'xml'</tt><tt class="py-op">:</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">            <tt class="py-name">translator</tt> <tt class="py-op">=</tt> <tt id="link-24" class="py-name" targets="Class lxml.cssselect.LxmlTranslator=lxml.cssselect.LxmlTranslator-class.html"><a title="lxml.cssselect.LxmlTranslator" class="py-name" href="#" onclick="return doclink('link-24', 'LxmlTranslator', 'link-24');">LxmlTranslator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">            <tt class="py-name">translator</tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name" targets="Class lxml.cssselect.LxmlTranslator=lxml.cssselect.LxmlTranslator-class.html"><a title="lxml.cssselect.LxmlTranslator" class="py-name" href="#" onclick="return doclink('link-20', 'LxmlTranslator', 'link-20');">LxmlTranslator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">translator</tt> <tt class="py-op">==</tt> <tt class="py-string">'html'</tt><tt class="py-op">:</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">            <tt class="py-name">translator</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name" targets="Class lxml.cssselect.LxmlHTMLTranslator=lxml.cssselect.LxmlHTMLTranslator-class.html"><a title="lxml.cssselect.LxmlHTMLTranslator" class="py-name" href="#" onclick="return doclink('link-25', 'LxmlHTMLTranslator', 'link-25');">LxmlHTMLTranslator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">            <tt class="py-name">translator</tt> <tt class="py-op">=</tt> <tt id="link-21" class="py-name" targets="Class lxml.cssselect.LxmlHTMLTranslator=lxml.cssselect.LxmlHTMLTranslator-class.html"><a title="lxml.cssselect.LxmlHTMLTranslator" class="py-name" href="#" onclick="return doclink('link-21', 'LxmlHTMLTranslator', 'link-21');">LxmlHTMLTranslator</a></tt><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 class="py-keyword">elif</tt> <tt class="py-name">translator</tt> <tt class="py-op">==</tt> <tt class="py-string">'xhtml'</tt><tt class="py-op">:</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">translator</tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name"><a title="lxml.cssselect.LxmlHTMLTranslator" class="py-name" href="#" onclick="return doclink('link-26', 'LxmlHTMLTranslator', 'link-25');">LxmlHTMLTranslator</a></tt><tt class="py-op">(</tt><tt class="py-name">xhtml</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt id="link-27" 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-27', 'path', 'link-27');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-name">translator</tt><tt class="py-op">.</tt><tt class="py-name">css_to_xpath</tt><tt class="py-op">(</tt><tt class="py-name">css</tt><tt class="py-op">)</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt id="link-28" class="py-name"><a title="lxml.etree
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">            <tt class="py-name">translator</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name"><a title="lxml.cssselect.LxmlHTMLTranslator" class="py-name" href="#" onclick="return doclink('link-22', 'LxmlHTMLTranslator', 'link-21');">LxmlHTMLTranslator</a></tt><tt class="py-op">(</tt><tt class="py-name">xhtml</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt id="link-23" 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-23', 'path', 'link-23');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-name">translator</tt><tt class="py-op">.</tt><tt class="py-name">css_to_xpath</tt><tt class="py-op">(</tt><tt class="py-name">css</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt id="link-24" class="py-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-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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-24', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-25" 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-25', 'XPath', 'link-25');">XPath</a></tt><tt class="py-op">.</tt><tt id="link-26" 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__
@@ -247,7 +247,7 @@ 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>
+lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-26', '__init__', 'link-26');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt id="link-27" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-27', 'path', 'link-23');">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>
 <a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">css</tt> <tt class="py-op">=</tt> <tt class="py-name">css</tt> </tt>
 </div><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"> </tt>
 <a name="CSSSelector.__repr__"></a><div id="CSSSelector.__repr__-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="CSSSelector.__repr__-toggle" onclick="return toggle('CSSSelector.__repr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.cssselect.CSSSelector-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>
@@ -293,7 +293,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 37ce4bc67e8a523a8afc6b461e421b17c0148e0e..bb6df51e042a36df6aea5eeaa4880385471a1a9b 100644 (file)
@@ -124,7 +124,7 @@ mapping as <tt class="rst-docutils literal">namespaces</tt> keyword argument:</p
           <td><span class="summary-sig"><a href="lxml.cssselect.CSSSelector-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">css</span>,
         <span class="summary-sig-arg">namespaces</span>=<span class="summary-sig-default">None</span>,
-        <span class="summary-sig-arg">translator</span>=<span class="summary-sig-default">'xml'</span>)</span><br />
+        <span class="summary-sig-arg">translator</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</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.cssselect-pysrc.html#CSSSelector.__init__">source&nbsp;code</a></span>
@@ -235,7 +235,7 @@ mapping as <tt class="rst-docutils literal">namespaces</tt> keyword argument:</p
   <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
         <span class="sig-arg">css</span>,
         <span class="sig-arg">namespaces</span>=<span class="sig-default">None</span>,
-        <span class="sig-arg">translator</span>=<span class="sig-default">'xml'</span>)</span>
+        <span class="sig-arg">translator</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code></span>)</span>
     <br /><em class="fname">(Constructor)</em>
   </h3>
   </td><td align="right" valign="top"
@@ -308,7 +308,7 @@ mapping as <tt class="rst-docutils literal">namespaces</tt> keyword argument:</p
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 078450785c0138d11d2655dc28f0a49fb704465d..9db9b280f6e5b745602f070064efa8c20dcd780e 100644 (file)
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class LxmlHTMLTranslator</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.cssselect-pysrc.html#LxmlHTMLTranslator">source&nbsp;code</a></span></p>
 <pre class="base-tree">
-     ??-50 --+    
-             |    
-<a href="lxml.cssselect.LxmlTranslator-class.html" onclick="show_private();">LxmlTranslator</a> --+
-                 |
-         ??-51 --+
-                 |
-                <strong class="uidshort">LxmlHTMLTranslator</strong>
+                       object --+        
+                                |        
+cssselect.xpath.GenericTranslator --+    
+                                    |    
+                       <a href="lxml.cssselect.LxmlTranslator-class.html" onclick="show_private();">LxmlTranslator</a> --+
+                                        |
+                       object --+       |
+                                |       |
+cssselect.xpath.GenericTranslator --+   |
+                                    |   |
+       cssselect.xpath.HTMLTranslator --+
+                                        |
+                                       <strong class="uidshort">LxmlHTMLTranslator</strong>
 </pre>
 
 <hr />
 lxml extensions + HTML support.
 
+<!-- ==================== 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>cssselect.xpath.GenericTranslator</code></b>:
+      <code><a href="cssselect.xpath.XPathExpr-class.html">xpathexpr_cls</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
 <!-- ==================== INSTANCE METHODS ==================== -->
 <a name="section-InstanceMethods"></a>
 <table class="summary" border="1" cellpadding="3"
@@ -97,6 +128,154 @@ lxml extensions + HTML support.
     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.cssselect.LxmlTranslator-class.html" onclick="show_private();">LxmlTranslator</a></code></b>:
       <code><a href="lxml.cssselect.LxmlTranslator-class.html#xpath_contains_function">xpath_contains_function</a></code>
       </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>cssselect.xpath.HTMLTranslator</code></b>:
+      <code>__init__</code>,
+      <code>xpath_checked_pseudo</code>,
+      <code>xpath_disabled_pseudo</code>,
+      <code>xpath_enabled_pseudo</code>,
+      <code>xpath_lang_function</code>,
+      <code>xpath_link_pseudo</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>cssselect.xpath.GenericTranslator</code></b>:
+      <code>css_to_xpath</code>,
+      <code>pseudo_never_matches</code>,
+      <code>selector_to_xpath</code>,
+      <code>xpath</code>,
+      <code>xpath_active_pseudo</code>,
+      <code>xpath_attrib</code>,
+      <code>xpath_attrib_dashmatch</code>,
+      <code>xpath_attrib_different</code>,
+      <code>xpath_attrib_equals</code>,
+      <code>xpath_attrib_exists</code>,
+      <code>xpath_attrib_includes</code>,
+      <code>xpath_attrib_prefixmatch</code>,
+      <code>xpath_attrib_substringmatch</code>,
+      <code>xpath_attrib_suffixmatch</code>,
+      <code>xpath_child_combinator</code>,
+      <code>xpath_class</code>,
+      <code>xpath_combinedselector</code>,
+      <code>xpath_descendant_combinator</code>,
+      <code>xpath_direct_adjacent_combinator</code>,
+      <code>xpath_element</code>,
+      <code>xpath_empty_pseudo</code>,
+      <code>xpath_first_child_pseudo</code>,
+      <code>xpath_first_of_type_pseudo</code>,
+      <code>xpath_focus_pseudo</code>,
+      <code>xpath_function</code>,
+      <code>xpath_hash</code>,
+      <code>xpath_hover_pseudo</code>,
+      <code>xpath_indirect_adjacent_combinator</code>,
+      <code>xpath_last_child_pseudo</code>,
+      <code>xpath_last_of_type_pseudo</code>,
+      <code>xpath_negation</code>,
+      <code>xpath_nth_child_function</code>,
+      <code>xpath_nth_last_child_function</code>,
+      <code>xpath_nth_last_of_type_function</code>,
+      <code>xpath_nth_of_type_function</code>,
+      <code>xpath_only_child_pseudo</code>,
+      <code>xpath_only_of_type_pseudo</code>,
+      <code>xpath_pseudo</code>,
+      <code>xpath_root_pseudo</code>,
+      <code>xpath_target_pseudo</code>,
+      <code>xpath_visited_pseudo</code>
+      </p>
+    <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>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         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>cssselect.xpath.GenericTranslator</code></b>:
+      <code>xpath_literal</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>cssselect.xpath.HTMLTranslator</code></b>:
+      <code>lang_attribute</code>
+      </p>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>cssselect.xpath.GenericTranslator</code></b>:
+      <code>attribute_operator_mapping</code>,
+      <code>combinator_mapping</code>,
+      <code>id_attribute</code>,
+      <code>lower_case_attribute_names</code>,
+      <code>lower_case_attribute_values</code>,
+      <code>lower_case_element_names</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>
@@ -131,7 +310,7 @@ lxml extensions + HTML support.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 11b1d6ee9281f44fb9c0d7469a2de9607a991798..a019bd4727b40412babf0053e4fd6f9e05273e1b 100644 (file)
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class LxmlTranslator</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.cssselect-pysrc.html#LxmlTranslator">source&nbsp;code</a></span></p>
 <pre class="base-tree">
-??-50 --+
-        |
-       <strong class="uidshort">LxmlTranslator</strong>
+                       object --+    
+                                |    
+cssselect.xpath.GenericTranslator --+
+                                    |
+                                   <strong class="uidshort">LxmlTranslator</strong>
 </pre>
 
+<dl><dt>Known Subclasses:</dt>
+<dd>
+      <ul class="subclass-list">
+<li class="private"><a href="lxml.cssselect.LxmlHTMLTranslator-class.html" onclick="show_private();">LxmlHTMLTranslator</a></li>  </ul>
+</dd></dl>
+
 <hr />
 A custom CSS selector to XPath translator with lxml-specific extensions.
 
+<!-- ==================== 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>cssselect.xpath.GenericTranslator</code></b>:
+      <code><a href="cssselect.xpath.XPathExpr-class.html">xpathexpr_cls</a></code>
+      </p>
+    </td>
+  </tr>
+</table>
 <!-- ==================== INSTANCE METHODS ==================== -->
 <a name="section-InstanceMethods"></a>
 <table class="summary" border="1" cellpadding="3"
@@ -94,7 +127,7 @@ A custom CSS selector to XPath translator with lxml-specific extensions.
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td><span class="summary-sig"><a name="xpath_contains_function"></a><span class="summary-sig-name">xpath_contains_function</span>(<span class="summary-sig-arg">self</span>,
+          <td><span class="summary-sig"><a href="lxml.cssselect.LxmlTranslator-class.html#xpath_contains_function" class="summary-sig-name">xpath_contains_function</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">xpath</span>,
         <span class="summary-sig-arg">function</span>)</span></td>
           <td align="right" valign="top">
@@ -106,7 +139,198 @@ A custom CSS selector to XPath translator with lxml-specific extensions.
       
     </td>
   </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>cssselect.xpath.GenericTranslator</code></b>:
+      <code>css_to_xpath</code>,
+      <code>pseudo_never_matches</code>,
+      <code>selector_to_xpath</code>,
+      <code>xpath</code>,
+      <code>xpath_active_pseudo</code>,
+      <code>xpath_attrib</code>,
+      <code>xpath_attrib_dashmatch</code>,
+      <code>xpath_attrib_different</code>,
+      <code>xpath_attrib_equals</code>,
+      <code>xpath_attrib_exists</code>,
+      <code>xpath_attrib_includes</code>,
+      <code>xpath_attrib_prefixmatch</code>,
+      <code>xpath_attrib_substringmatch</code>,
+      <code>xpath_attrib_suffixmatch</code>,
+      <code>xpath_checked_pseudo</code>,
+      <code>xpath_child_combinator</code>,
+      <code>xpath_class</code>,
+      <code>xpath_combinedselector</code>,
+      <code>xpath_descendant_combinator</code>,
+      <code>xpath_direct_adjacent_combinator</code>,
+      <code>xpath_disabled_pseudo</code>,
+      <code>xpath_element</code>,
+      <code>xpath_empty_pseudo</code>,
+      <code>xpath_enabled_pseudo</code>,
+      <code>xpath_first_child_pseudo</code>,
+      <code>xpath_first_of_type_pseudo</code>,
+      <code>xpath_focus_pseudo</code>,
+      <code>xpath_function</code>,
+      <code>xpath_hash</code>,
+      <code>xpath_hover_pseudo</code>,
+      <code>xpath_indirect_adjacent_combinator</code>,
+      <code>xpath_lang_function</code>,
+      <code>xpath_last_child_pseudo</code>,
+      <code>xpath_last_of_type_pseudo</code>,
+      <code>xpath_link_pseudo</code>,
+      <code>xpath_negation</code>,
+      <code>xpath_nth_child_function</code>,
+      <code>xpath_nth_last_child_function</code>,
+      <code>xpath_nth_last_of_type_function</code>,
+      <code>xpath_nth_of_type_function</code>,
+      <code>xpath_only_child_pseudo</code>,
+      <code>xpath_only_of_type_pseudo</code>,
+      <code>xpath_pseudo</code>,
+      <code>xpath_root_pseudo</code>,
+      <code>xpath_target_pseudo</code>,
+      <code>xpath_visited_pseudo</code>
+      </p>
+    <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>__init__</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>
+<!-- ==================== STATIC METHODS ==================== -->
+<a name="section-StaticMethods"></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">Static Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-StaticMethods"
+         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>cssselect.xpath.GenericTranslator</code></b>:
+      <code>xpath_literal</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>cssselect.xpath.GenericTranslator</code></b>:
+      <code>attribute_operator_mapping</code>,
+      <code>combinator_mapping</code>,
+      <code>id_attribute</code>,
+      <code>lang_attribute</code>,
+      <code>lower_case_attribute_names</code>,
+      <code>lower_case_attribute_values</code>,
+      <code>lower_case_element_names</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="xpath_contains_function"></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">xpath_contains_function</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">xpath</span>,
+        <span class="sig-arg">function</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lxml.cssselect-pysrc.html#LxmlTranslator.xpath_contains_function">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  
+  <dl class="fields">
+    <dt>Overrides:
+        cssselect.xpath.GenericTranslator.xpath_contains_function
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
 <!-- ==================== NAVIGATION BAR ==================== -->
 <table class="navbar" border="0" width="100%" cellpadding="0"
        bgcolor="#a0c0ff" cellspacing="0">
@@ -138,7 +362,7 @@ A custom CSS selector to XPath translator with lxml-specific extensions.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d322847534e08daf7a552f12040fd3b1e924bf0c..7b6f2a67262fe0734d4fcadec78dd566c1febf42 100644 (file)
@@ -493,7 +493,7 @@ etree.HTMLParser(recover= False, remove_blank_text= True)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b8fd241212dfb10d1db2a46fed8383b94022f3ef..07a4b64fd6164bc823a6e6a0463a0c3f9bde8eea 100644 (file)
@@ -1092,7 +1092,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d8bdd8adf03953b7816453bc8a533196f59e79ff..8939ff0716b8b3d1cb095859968f44adcaea6cd4 100644 (file)
@@ -229,7 +229,7 @@ doctest.OutputChecker --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e3baeff21b130b4a2ef45d259ba7d6b3e0e1d6ca..0a282ac59865a9b2e9521a49e7d9c609b98eb149 100644 (file)
@@ -610,7 +610,7 @@ to compare <code class="link">want</code> and <code class="link">got</code>.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 10a5192e427fc82c360c22cc04dbf56ae44a0792..5ed7518deaa4fe30b773f9710d2dd7113745a689 100644 (file)
@@ -349,7 +349,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80bce583e603d40b295db4f1840d11f4f7ca9111..c209e1b3bcb51fc15f9efdc20a6680698d64fadb 100644 (file)
@@ -1652,28 +1652,28 @@ standard Python logging package.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXML_COMPILED_VERSION"></a><span class="summary-name">LIBXML_COMPILED_VERSION</span> = <code title="(2, 8, 0)"><code class="variable-group">(</code>2<code class="variable-op">, </code>8<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
+        <a name="LIBXML_COMPILED_VERSION"></a><span class="summary-name">LIBXML_COMPILED_VERSION</span> = <code title="(2, 9, 0)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXML_VERSION"></a><span class="summary-name">LIBXML_VERSION</span> = <code title="(2, 8, 0)"><code class="variable-group">(</code>2<code class="variable-op">, </code>8<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
+        <a name="LIBXML_VERSION"></a><span class="summary-name">LIBXML_VERSION</span> = <code title="(2, 9, 0)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXSLT_COMPILED_VERSION"></a><span class="summary-name">LIBXSLT_COMPILED_VERSION</span> = <code title="(1, 1, 26)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>26<code class="variable-group">)</code></code>
+        <a name="LIBXSLT_COMPILED_VERSION"></a><span class="summary-name">LIBXSLT_COMPILED_VERSION</span> = <code title="(1, 1, 27)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>27<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXSLT_VERSION"></a><span class="summary-name">LIBXSLT_VERSION</span> = <code title="(1, 1, 26)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>26<code class="variable-group">)</code></code>
+        <a name="LIBXSLT_VERSION"></a><span class="summary-name">LIBXSLT_VERSION</span> = <code title="(1, 1, 27)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>27<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
@@ -1696,13 +1696,13 @@ standard Python logging package.</td>
       <span class="summary-type">&nbsp;</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': &lt;capsule object &quot;void (struct LxmlElement *, struct Lx\
-mlElement *)&quot; at 0x2e411e0&gt;,
+mlElement *)&quot; at 0x1ab9ae0&gt;,
  'attributeValue': &lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; \
-at 0x2e3ce70&gt;,
+at 0x1ab97b0&gt;,
  'attributeValueFromNsName': &lt;capsule object &quot;PyObject *(xmlNode *, co\
-nst xmlChar *, const xmlChar *)&quot; at 0x2e3cea0&gt;,
+nst xmlChar *, const xmlChar *)&quot; at 0x1ab97e0&gt;,
  'callLookupFallback': &lt;capsule object &quot;PyObject *(struct LxmlFallback\
-ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x2e3cb40&gt;\
+ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x1ab9480&gt;\
 ..."><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>&lt;capsule object &quot;void (struct L<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
@@ -1725,7 +1725,7 @@ ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x2e3cb40&gt;\
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object at 0x2b10691c5890&gt;">&lt;lxml.etree._MemDebug object at 0x2b10691c5890&gt;</code>
+        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object at 0x2aaaaabd28b0&gt;">&lt;lxml.etree._MemDebug object at 0x2aaaaabd28b0&gt;</code>
     </td>
   </tr>
 </table>
@@ -2377,13 +2377,13 @@ function will only set the global error log of the current thread.</p>
     <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>&lt;capsule object &quot;void (struct LxmlElement *, struct Lx<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-mlElement *)&quot; at 0x2e411e0&gt;<code class="variable-op">,</code>
+mlElement *)&quot; at 0x1ab9ae0&gt;<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>&lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-at 0x2e3ce70&gt;<code class="variable-op">,</code>
+at 0x1ab97b0&gt;<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>&lt;capsule object &quot;PyObject *(xmlNode *, co<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-nst xmlChar *, const xmlChar *)&quot; at 0x2e3cea0&gt;<code class="variable-op">,</code>
+nst xmlChar *, const xmlChar *)&quot; at 0x1ab97e0&gt;<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>&lt;capsule object &quot;PyObject *(struct LxmlFallback<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x2e3cb40&gt;<code class="variable-op"></code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x1ab9480&gt;<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>
@@ -2448,7 +2448,7 @@ ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x2e3cb40&gt;<c
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 76fc445193e5ed1fa55924805efe220368108030..ea68fe0473969e00b2652c8897adeab7b2524763 100644 (file)
@@ -233,7 +233,7 @@ Iterates over the ancestors of an element (from parent to parent).
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3b8b5d5362c20ec8975d8c9dabcfb382b2ac7bae..8e3bbfb62ef0249509a44bc4749ad9c0db49fa9c 100644 (file)
@@ -293,7 +293,7 @@ missing.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 914d9e5c579df72947e48e84f0302027696f45ba..d0fe1089eda91a2f528a3206795c2308e8c54d1e 100644 (file)
@@ -211,7 +211,7 @@ Error during C14N serialisation.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 862bce773f89df54efa9ab2b5a82bbaee70151f2..f12ca59d0bb7d0b5de59584231eeff4d6e4ac274 100644 (file)
@@ -232,7 +232,7 @@ can be used to set Element text.  The usual way to use it is:</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f94f5bb02983e236e7774ea9822d60fa76885c0e..21561fa2e8c88ac5ec14396b50bddd10d4ab4f12 100644 (file)
@@ -348,7 +348,7 @@ called after object creation.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d2741cd5f7bda3cf065db3dbb85aac1020d16bb9..3ae46a2e5daeacec0fb1b70daa63e53839d0ff35 100644 (file)
@@ -272,7 +272,7 @@ lookup(self, type, doc, namespace, name)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c6b8516952bed1ed32daff7455efeb96873601ca..41a6704d3cd4cb56b867f40ebc1052260542af2a 100644 (file)
@@ -411,7 +411,7 @@ catalog.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a17fdb82059cd500f6d42fb8cb7829672d109405..432bdbbf70df530b70c265faa5d34d5472cc4dbe 100644 (file)
@@ -217,7 +217,7 @@ Base class for DTD errors.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ba056e9d103894589fe63228dddbb6739e27e08d..ef6057f8924a888e40e0a435284590ab8e02b7c0 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing a DTD.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2eb999d1925d4f6c3b46daab6f7d12cf790ffa2d..8798777b5d78056cb5c26ae0adaca1bf0271bb64 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a DTD.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 31ce76be523d5cd6f57c53f1af6deb772fe1b247..7496d23ee5a5f36aec99b2e1c4bf66910735daae 100644 (file)
@@ -310,7 +310,7 @@ normal truth test on this value will always tell if the
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 19c33f90d81435e15fd73d8aac8e73ed8d2d72ed..f36c85f3c89815c61d5f7b7125bd1e5780fd2111 100644 (file)
@@ -213,7 +213,7 @@ method fails.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b6b19f3cfa5bb74d15021f2e9db3aa6945e7d45e..94849f545c4fa168fee5824766e93a671ffd0189 100644 (file)
@@ -325,7 +325,7 @@ and thus ignores comments and processing instructions.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e7bf5d803707001ce9cf1c427a6f3a47e2410ac7..0807463ab579ce83e5fcaa166bacab8b3ae06260 100644 (file)
@@ -293,7 +293,7 @@ you pass <tt class="rst-docutils literal">smart_strings=False</tt>.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4c695eac7e25e75c2b3344f61ca9930f64c9529d..38b90daf51989eb67f997f330b3cd6c9958a07c3 100644 (file)
@@ -361,7 +361,7 @@ hierarchies that implement a common namespace.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4008562d94ca2784d48cf3ffa4149b16a89eef3e..25f5b9db6ea6fb4375900bd33b75c417232236b7 100644 (file)
@@ -233,7 +233,7 @@ Iterates over the children of an element.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f377cacb68746408c70e3e27ec9ef588568e7b41..9f59e6e59a78c59a8c6d38cff601280a7daff1f5 100644 (file)
@@ -232,7 +232,7 @@ Superclass of Element class lookups.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cbe37ff77982e4bfbd76fec8e2db3a60a8a8edef..2c51ea322fa4a12b7c0b4356472831e7031ac52b 100644 (file)
@@ -306,7 +306,7 @@ accept the respective Element classes.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7fa5bab047b06e3bf995f19da7b09240e65ad78..fcd6739a1f43e049b09191c1774b0a511a4b6e81 100644 (file)
@@ -287,7 +287,7 @@ tree it traverses is modified during iteration.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 54204aaace5eb825da913bf71567c96dfa48a81e..9218638a51ae3939668f1da1e817a8d7155b2711 100644 (file)
@@ -319,7 +319,7 @@ Pass None for the empty namespace.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8ac9892fcf18bfffd5741520ad7f89e7c8e76764..8c44b987ef655b877c7cbf34efe7d11b5eaf9a70 100644 (file)
@@ -279,7 +279,7 @@ tail text.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6a6698a1296588dbcb06aa2afed6c669b0087575..62ce6931ad41b47b6594f0880d22da03dac73686 100644 (file)
@@ -349,7 +349,7 @@ called after object creation.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d8b8f44b6fd36efc1a6bb7b8d3e7e23810186ec3..da0201fbccc636dde5043cb4d33ee4944283e142 100644 (file)
@@ -209,7 +209,7 @@ exceptions.BaseException --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index afe27892260cb3c68cd059d029772bab2fe665e0..01f716facc004a037944280a6b70ff4734e61994 100644 (file)
@@ -471,7 +471,7 @@ Libxml2 error domains
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fb053300631a1c2bcf3930fde109f3971965d589..25868b7ff376c035e1d6bac4035b3c9ba0c8ae8e 100644 (file)
@@ -243,7 +243,7 @@ Libxml2 error levels
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 884c5209102109c0da8d795762a6708f285fb8a4..46cfcfc8b3802cc5990ce5cf0098da4f3f088e13 100644 (file)
@@ -5399,7 +5399,7 @@ Libxml2 error types
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 573778e92b92442242aeede9dc18da621eccfb34..f1f13033201fedbdde3397c4244cc622282a8399 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f496745f30f54c3b89d74881efa9f40ca1daa877..b76821294222aaa0070c2ef60f09e2f670f21e9a 100644 (file)
@@ -336,7 +336,7 @@ reasons.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 06d4c05ace40401e14e1b526752a9359dfc82416..7284c06e5354ef95eb5c61cd6088124893b62d5c 100644 (file)
@@ -273,7 +273,7 @@ this one.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a7f6ec38853091b544c44df30eb242cedcf86aae..510e4981bca3077ca6052355496cc56e5984b3b1 100644 (file)
@@ -217,7 +217,7 @@ Base class of lxml registry errors.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9dd7fd329f89fd35f00ab9500ecfd486276d409b..ba2993484f77be5f752a05829ee5aa165fba458c 100644 (file)
@@ -235,7 +235,7 @@ Base class for all syntax errors.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d96a7a34762df941dafa049aaf4789bf84711f70..89e2833297fe21d8e05a2441b02aea0b6fe23bb1 100644 (file)
@@ -213,7 +213,7 @@ Error registering a namespace extension.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 971d3a2d8c44176e9a744209f040d4051ca0e785..5f1c6ef5135b6251ab4338ba71b5626d22854519 100644 (file)
@@ -350,7 +350,7 @@ called after object creation.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 80a846da488d9cc9627eebc84ba68e377245e9c0..b1a3eb76d66a0abbd1c421a9f7147a4c538fa6b0 100644 (file)
@@ -295,7 +295,7 @@ exceptions.BaseException --+           |
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6ebc7c5693cd3162f98f899ee2ffc02e2638c65c..0429794f0d0a82ff4f27a8c9a91755e55e4f07c7 100644 (file)
@@ -236,7 +236,7 @@ Element class lookup based on the XML parser.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 022e56893ddfe9aaa34562b7f4933a740ef1a64a..d46401d1e7295bf382b8054a496bbe7eb6dc4ad5 100644 (file)
@@ -211,7 +211,7 @@ Internal lxml parser error.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cff78598502161c78ec8204e7e9eaf2ba3b447fa..a68dba4322601021ff8c1d7960b36896048b5268 100644 (file)
@@ -433,7 +433,7 @@ format.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6b6f585b5c97e4ae4243aa18aa00037fc642b83b..3f6e6ca0b8f8a6687cbd65ca894452712801e5c1 100644 (file)
@@ -289,7 +289,7 @@ iteration methods).</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9eee3093dd3899ee4850d53a713df6d6ff9c24c0..962b6080f14ffc08515768225777dc13f0b41873 100644 (file)
@@ -486,7 +486,7 @@ their text content.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c25e309e80bd8502f541609bcecfaf03e7648038..241c698e6e4786ff91cfcc88d859c872be9961cb 100644 (file)
@@ -325,7 +325,7 @@ filename through the <tt class="rst-docutils literal">file</tt> keyword argument
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d503a64c965e70df4cf4baafbfc031500473a206..db4fe5ccb5a04318241ee3f71e46498a1dfccc90 100644 (file)
@@ -217,7 +217,7 @@ Base class for RelaxNG errors.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c027465831dc24eb9738927ca32d518910c83451..977cddbca49a91f679911566722cab9ce3f459e7 100644 (file)
@@ -548,7 +548,7 @@ Libxml2 RelaxNG error types
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 818b2dbb7ee73e64ee88b38ce7394648df059bc1..47d96c0d6755e33558a09546202636d39cbba449 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as RelaxNG.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ca59fca4ae93f81ddbc99cef530376d77c6bac7..b15fadadb6917bba9c79e00cbd13de0ce0b3e260 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a RelaxNG schema.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 66ec287e36a641cc2e976ac8ec882fdefdbc361d..427f54157e113b490eb6bbb65160c5627b3d208a 100644 (file)
@@ -454,7 +454,7 @@ argument.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 021969becd77d4fa60df10ef344d26a9b3d2e89a..b0fdb2349664c110e3e28553713a3dfb1fd0e693 100644 (file)
@@ -366,7 +366,7 @@ errors in lxml.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 140020fe07fa66c9289cf3a52afd002a494a93a3..55b1f2601fe111ea5250101b3fa501a654708fcf 100644 (file)
@@ -217,7 +217,7 @@ Base class of all Schematron errors.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4e2a11bf090531a3d0f30cfeed61166453496915..0888962b6cfed6656d43c13c647c9a65ddca8bba 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as Schematron schema.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6b66ebc057e23ad71256d9ad1f9daa263476fe43..481fa370ae7038f16c05013603c808689c64b24a 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a Schematron schema.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ba2a09f0f110bf346691343a664b06975850facd..d2bd325387f82a5abba05a52c6740109b63d55ee 100644 (file)
@@ -211,7 +211,7 @@ A libxml2 error that occurred during serialisation.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a0171636adf8fb673793ca10093207b72a4209c7..3233b66f7a1fa2fa428b3dc425a51b42c8f967eb 100644 (file)
@@ -234,7 +234,7 @@ Iterates over the siblings of an element.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 64444084869e098af0ad2edf83ba1f36fc6a6655..82be2eb2bab290be814c1c6248dc41596baf908a 100644 (file)
@@ -382,7 +382,7 @@ element.</td>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fdb469252cea9d0b37f40375c4ae61fecf2c2940..407c4f5122320171f90a6a23d64312b42db4c807 100644 (file)
@@ -291,7 +291,7 @@ processing.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 26a76509b74b1dbaf302f1e94a91967dd845d878..a8f8eacb0dad8de79afc15102dbbd89be277d3ab 100644 (file)
@@ -211,7 +211,7 @@ Error during XInclude processing.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f0e4b3d19e44cf5b024ce094337466f0e66da411..c3ad9cbd5385c8c8b74ce8047158f2ae7311dc59 100644 (file)
@@ -376,7 +376,7 @@ apply to the default parser.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 26e6235d10f1fb60b28dd3fc978e1d3f8c5c6dc9..56bfcfe3fae77ea26b4f00a2f2f636e575523b2e 100644 (file)
@@ -327,7 +327,7 @@ schema insert default/fixed attributes into validated documents.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d7f5c4d6ecc0492826c69ab8658541680884815..2a39efec2ea642d9f873e403c249596fec5a24fd 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XML Schema errors
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b9aee4f2f01fc093a859539a02df989710549555..18e201fdc53a6449352c17a115bb181c79e4e8eb 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as XML Schema.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a9e1629272af659ae581b92f4cce16d9160fb53d..59669a3f15bf90d7716596eb7bd7f0af4e1ede18 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with an XML Schema.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3f077e195db4de3ade4a2f74dbe7f6625d6dbce4..ec0133e1746ba6283e8600f93c6e3028fb5e4ef5 100644 (file)
@@ -233,7 +233,7 @@ Syntax error while parsing an XML document.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 836cb606b3c35b6cd80fc020f7401a9f92000048..0ea95fd0c9866b46b78c5d2e73adb92232fca44f 100644 (file)
@@ -73,7 +73,7 @@
 <dl><dt>Known Subclasses:</dt>
 <dd>
       <ul class="subclass-list">
-<li><a href="lxml.etree.ETXPath-class.html">ETXPath</a></li>  </ul>
+<li><a href="lxml.etree.ETXPath-class.html">ETXPath</a></li><li>, <a href="lxml.cssselect.CSSSelector-class.html">cssselect.CSSSelector</a></li>  </ul>
 </dd></dl>
 
 <hr />
@@ -361,7 +361,7 @@ returned for string results unless you pass
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5bfc9b12c2742b54066c2aa7492e6d6c53f5bb24..ebf1cb12801191483720da14e6b6bb548fa69a14 100644 (file)
@@ -340,7 +340,7 @@ are currently not supported for variables.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7307934dd21f79ae6967f3be453325a8f2d428d4..169ce51aea558514c64cc00c333899c21b925dfd 100644 (file)
@@ -375,7 +375,7 @@ against the ElementTree as returned by getroottree().</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2eefd8543df170e8d541b31000b4b58405422ecb..dd96c49cd1f2dad157dbfe2fa39205592c4bf1b6 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XPath errors.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0b588ce3934b60d87629beda3606b355a3efba77..596fbea1a65ec82b2c519a45785b8eb1fe844bb3 100644 (file)
@@ -219,7 +219,7 @@ Error during XPath evaluation.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 912db8e4cc45e3ff965389c92bdeb20f3f819ce9..bd22ede4b4515b7c231f2a50092de8bb98c4171d 100644 (file)
@@ -215,7 +215,7 @@ Internal error looking up an XPath extension function.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b45fe39da89a425a6d5160e3c310988b39b9568..0e0a97f46df5fc48b3b73c784560f9ee103c2d86 100644 (file)
@@ -215,7 +215,7 @@ Error handling an XPath result.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 739b972a842159eb2454d954e9b9b78235d6c3eb..2f7b10a2684f49a5e07455ca2a19b78b6482d69a 100644 (file)
@@ -241,7 +241,7 @@ exceptions.BaseException --+               |
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 067847f40203db152ec176e55f68e6390b421a17..5451c307f2dcb00376937986b9c7da8468795dc6 100644 (file)
@@ -575,7 +575,7 @@ result = transform(doc, some_strval = XSLT.strparam(
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 55f42e5a1af3fb2157557de0dcb4d7dad9265ee8..7af7cdb211d8b3e05751dde8990fcacc1edd1f37 100644 (file)
@@ -428,7 +428,7 @@ XSLTAccessControl(create_dir=False, read_file=True, read_network=True,<span clas
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c58ab36befebbc679855b400c12d594c12289c63..62936356e8223512776375c454bd6bc3e7bea16e 100644 (file)
@@ -213,7 +213,7 @@ Error running an XSL transformation.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d4de245f460763df947e4af628be2a4e321c0183..01bd98e2d8c8fcc48cc137743b4af6587e79f5b7 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XSLT errors.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8bd0fa8ab74b62f0a639d739555b5aecced60a97..45e83d4436057a996593a8d27ae4cbaeb6fa4950 100644 (file)
@@ -115,7 +115,9 @@ Base class of an XSLT extension element.
           <td><span class="summary-sig"><a href="lxml.etree.XSLTExtension-class.html#apply_templates" class="summary-sig-name">apply_templates</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">context</span>,
         <span class="summary-sig-arg">node</span>,
-        <span class="summary-sig-arg">output_parent</span>=<span class="summary-sig-default">None</span>)</span><br />
+        <span class="summary-sig-arg">output_parent</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">elements_only</span>=<span class="summary-sig-default">False</span>,
+        <span class="summary-sig-arg">remove_blank_text</span>=<span class="summary-sig-default">False</span>)</span><br />
       Call this method to retrieve the result of applying templates
 to an element.</td>
           <td align="right" valign="top">
@@ -156,7 +158,9 @@ to an element.</td>
         <tr>
           <td><span class="summary-sig"><a href="lxml.etree.XSLTExtension-class.html#process_children" class="summary-sig-name">process_children</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">context</span>,
-        <span class="summary-sig-arg">output_parent</span>=<span class="summary-sig-default">None</span>)</span><br />
+        <span class="summary-sig-arg">output_parent</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">elements_only</span>=<span class="summary-sig-default">False</span>,
+        <span class="summary-sig-arg">remove_blank_text</span>=<span class="summary-sig-default">False</span>)</span><br />
       Call this method to process the XSLT content of the extension
 element itself.</td>
           <td align="right" valign="top">
@@ -265,7 +269,9 @@ element itself.</td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">apply_templates</span>(<span class="sig-arg">self</span>,
         <span class="sig-arg">context</span>,
         <span class="sig-arg">node</span>,
-        <span class="sig-arg">output_parent</span>=<span class="sig-default">None</span>)</span>
+        <span class="sig-arg">output_parent</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">elements_only</span>=<span class="sig-default">False</span>,
+        <span class="sig-arg">remove_blank_text</span>=<span class="sig-default">False</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     >&nbsp;
@@ -275,12 +281,18 @@ element itself.</td>
   <p>Call this method to retrieve the result of applying templates
 to an element.</p>
 <p>The return value is a list of elements or text strings that
-were generated by the XSLT processor.</p>
+were generated by the XSLT processor.  If you pass
+<tt class="rst-docutils literal">elements_only=True</tt>, strings will be discarded from the result
+list.  The option <tt class="rst-docutils literal">remove_blank_text=True</tt> will only discard
+strings that consist entirely of whitespace (e.g. formatting).
+These options do not apply to Elements, only to bare string results.</p>
 <p>If you pass an Element as <code class="link">output_parent</code> parameter, the result
 will instead be appended to the element (including attributes
 etc.) and the return value will be <code class="link">None</code>.  This is a safe way
 to generate content into the output document directly, without
-having to take care of special values like text or attributes.</p>
+having to take care of special values like text or attributes.
+Note that the string discarding options will be ignored in this
+case.</p>
   <dl class="fields">
   </dl>
 </td></tr></table>
@@ -325,7 +337,9 @@ was added to the output tree yet).</p>
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">process_children</span>(<span class="sig-arg">self</span>,
         <span class="sig-arg">context</span>,
-        <span class="sig-arg">output_parent</span>=<span class="sig-default">None</span>)</span>
+        <span class="sig-arg">output_parent</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">elements_only</span>=<span class="sig-default">False</span>,
+        <span class="sig-arg">remove_blank_text</span>=<span class="sig-default">False</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     >&nbsp;
@@ -335,12 +349,18 @@ was added to the output tree yet).</p>
   <p>Call this method to process the XSLT content of the extension
 element itself.</p>
 <p>The return value is a list of elements or text strings that
-were generated by the XSLT processor.</p>
+were generated by the XSLT processor.  If you pass
+<tt class="rst-docutils literal">elements_only=True</tt>, strings will be discarded from the result
+list.  The option <tt class="rst-docutils literal">remove_blank_text=True</tt> will only discard
+strings that consist entirely of whitespace (e.g. formatting).
+These options do not apply to Elements, only to bare string results.</p>
 <p>If you pass an Element as <code class="link">output_parent</code> parameter, the result
 will instead be appended to the element (including attributes
 etc.) and the return value will be <code class="link">None</code>.  This is a safe way
 to generate content into the output document directly, without
-having to take care of special values like text or attributes.</p>
+having to take care of special values like text or attributes.
+Note that the string discarding options will be ignored in this
+case.</p>
   <dl class="fields">
   </dl>
 </td></tr></table>
@@ -377,7 +397,7 @@ having to take care of special values like text or attributes.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4bdc05b34fa10143363a2b522f47ceb496d19296..3cc62caf18ecc93f8722915422e3aad22d5e58ff 100644 (file)
@@ -213,7 +213,7 @@ Error registering an XSLT extension.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2bde065e4b787010224c7c105cc573aca419d2c5..607e8fc2c267548f923e12b988f7ff8735fda318 100644 (file)
@@ -213,7 +213,7 @@ Error parsing a stylesheet document.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5acab5d681e7d7c3385390b715329a1fd07b16f8..a51ae915a7185e7d95a5fad3db34ef775ec1e40c 100644 (file)
@@ -213,7 +213,7 @@ Error serialising an XSLT result.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6fc2ae33768b7e952743173c097a6bf3b3c7602e..f7533ee6fd2f7d739c952b6a12599578f7e472dc 100644 (file)
@@ -704,7 +704,7 @@ A dict-like proxy for the <tt class="rst-rst-rst-docutils literal rst-rst-docuti
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b73f58db1bf9af70842a88e37e2f722850336ed4..47eeba4381544c21c35fec82994a1f79059b4fea 100644 (file)
@@ -346,7 +346,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0db593437f05d5d60e287e2f4444595d6a0f01c9..b5b5d5e76d33aca4fbcd8923821ee8c3f12d59fb 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 98630b1e9aab28ab7951045f735c77a6e996ad85..b58789cf4b2f603478307ad27b5357cf28ac6c4f 100644 (file)
@@ -227,7 +227,7 @@ document is cleaned up.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 55e5b5e54d366c46736318724b5286c8c06eba28..7ca69f288effdeadbbcb44a8476bc547f281d062 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 52d37a0de516c567000ae43a944fe5892e3465bb..27044e3a9e859ae35cce4f32b483033a7afe4fc5 100644 (file)
@@ -1599,7 +1599,7 @@ parents.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5a453343501ebbd2f6eadd5e52f9801e253c769e..004fa1884fc11e8ce12dae44e06e57602c2f8f3b 100644 (file)
@@ -276,7 +276,7 @@ Dead but public. :)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 816d624913e4d5f8c7d28e7ede4fbcf78156a612..f720ebe74f62d4a02cd954f3c15314c23d168fb7 100644 (file)
@@ -278,7 +278,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a105d87547045663bbdcf78decdc721c97ea2b1c..65431358769337fb0c4fb717e9d803f5b8ad32a9 100644 (file)
@@ -267,7 +267,7 @@ basestring --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0e1a50864bffd587421c18babaadc44d4b00da75..297edd02ea3790c2ef99d7f6046cf22c1078fbb8 100644 (file)
@@ -231,7 +231,7 @@ Dead but public. :)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 44ddb8926851aee409d93cfeb21eb6dea90de00f..cd6f1c5da2256f75d256ae860eb61634a6f8a407 100644 (file)
@@ -998,7 +998,7 @@ class directly.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1d8f94752c283e7c49add4b6d2ad3fef8e20d96b..10bccf0ddbb497c28b2c276606958327b61046d3 100644 (file)
@@ -333,7 +333,7 @@ basestring --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7f6e831e6701004b550df9404111196fa91f7396..24297b73835b62e605745e9f886059d63a0cfe1b 100644 (file)
@@ -355,7 +355,7 @@ the value None, if there was no text.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1f04490c241af1fa00d0400f6848b45327a59c9f..bf09dca06a6c6a48c9c3c38a0d2752284d5233c0 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0573d42c55145bf52f040ee6ad99c31235757d1d..ea4d23867ea20aeada0edccd63bd6ea904c22db0 100644 (file)
@@ -377,7 +377,7 @@ different from what the <tt class="rst-docutils literal">error_log</tt> property
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0b7d432ddc86e10692a5946f7b748f7992771805..e0750f030198dec0e7b33b57cd7f9084552d6661 100644 (file)
@@ -482,7 +482,7 @@ that were created or modified 'by hand' are not supported.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d6a9c6bf04ceb13f2d0510010289ff726a3bfb59..668b7558525f185ab77220fe7be8d1c569dc4769 100644 (file)
@@ -570,7 +570,7 @@ entries.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 54c95e041a4fe0256f4f7fb017fa5129238ce84f..b0fd17cf331c969e776df150bfc14b205b4edf87 100644 (file)
@@ -347,7 +347,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8757fd421c6ab000ba231872516fd0b7798bf27f..a87a20224708320b776efb5a2a1955c2ed005204 100644 (file)
@@ -407,7 +407,7 @@ It is not guaranteed to work for all possible text content.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 53b724277c251b2cbced6c9f4fa3ae1344ed380e..810cd7c4c3bf4f2185dc3f3cfc7907816bc30380 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f40ddc0607dddb412ff95d2b719890bfe56b3d8a..e0c02a4ff481696f3a69907731f08368e2c1b33c 100644 (file)
@@ -229,7 +229,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 13554cad5dc6056460572432642495fcdf6ee113..95dcd9e0e8a29d4939e757fa72fb88157ebd44d3 100644 (file)
@@ -262,7 +262,7 @@ exceptions.BaseException --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 03063d8e1fc7d4d26c282663f35ed10f67b8d79d..4885c5106f59ae3149678f4195cf9ec4b6004cdb 100644 (file)
@@ -346,7 +346,7 @@ Base class for XML validators.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 632d423c3556a3f1cf7d53a002708cfadfbad950..1558c2db79b47e04fad09207afe1d6fe351d05e8 100644 (file)
@@ -322,7 +322,7 @@ are currently not supported for variables.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4a47be8dd0fa5d0e93f4d2b69ff526837733ddec..0ed9367dbc66beb687512fac8a3c0d26425f72b0 100644 (file)
@@ -389,7 +389,7 @@ the processing instruction.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 02c25850e749c1e2c4e82f32e08759749719d976..4eb68c2cbfe4ed330bf227be81902c7a1294dccf 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 522e9c50b777ccad4418db93cfef001f98e22b88..1a64963407bfe56482a58d0298701804f4164887 100644 (file)
@@ -466,7 +466,7 @@ attribute default values are requested.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5e821d68b256687bd0a803b09432219eccece909..62960cfb791c5c8d338cd07a309350f4c7ac2ebb 100644 (file)
@@ -323,7 +323,7 @@ was parsing XML data with <tt class="rst-docutils literal">iterparse()</tt>.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b4a00da5da27335dc5bd1a869765d07b19a4c1f..ffda279e85e38ba57e0b9c6a98873f592f2b34b0 100644 (file)
@@ -319,7 +319,7 @@ with xmlfile(&quot;somefile.xml&quot;, encoding='utf-8') as xf:
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 615eec6fcaf54c1fbd2447b65d97b7234df682bc..5cd6520699b5be16515a0c397692f1461a97dd22 100644 (file)
@@ -118,7 +118,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">bytes</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr class="private">
@@ -126,7 +126,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">unicode</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr class="private">
@@ -1325,7 +1325,7 @@ _MethodFunc('make_links_absolute', copy= True)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 43c3f19e90f126264f2672000829060316f58dd2..e5d4f06776e95fa20aa8c791b4aee821e8015228 100644 (file)
@@ -524,9 +524,8 @@ lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return
 <a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line"><tt class="py-docstring">        speedup.</tt> </tt>
 <a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
 <a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line">        <tt class="py-comment"># Do the import here to make the dependency optional.</tt> </tt>
-<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-141" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-141', 'lxml', 'link-2');">lxml</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name" targets="Module lxml.cssselect=lxml.cssselect-module.html,Method lxml.html.HtmlMixin.cssselect()=lxml.html.HtmlMixin-class.html#cssselect,Variable lxml.tests.test_css.cssselect=lxml.tests.test_css-module.html#cssselect"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-142', 'cssselect', 'link-142');">cssselect</a></tt> <tt class="py-keyword">import</tt> <tt id="link-143" class="py-name" targets="Class lxml.cssselect.CSSSelector=lxml.cssselect.CSSSelector-class.html"><a title="lxml.cssselect.CSSSelector" class="py-name" href="#" onclick="return doclink('link-143', 'CSSSelector', 'link-143');">CSSSelector</a></tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-141" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-141', 'lxml', 'link-2');">lxml</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name" targets="Module lxml.cssselect=lxml.cssselect-module.html,Method lxml.html.HtmlMixin.cssselect()=lxml.html.HtmlMixin-class.html#cssselect"><a title="lxml.cssselect
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-142', 'cssselect', 'link-142');">cssselect</a></tt> <tt class="py-keyword">import</tt> <tt id="link-143" class="py-name" targets="Class lxml.cssselect.CSSSelector=lxml.cssselect.CSSSelector-class.html"><a title="lxml.cssselect.CSSSelector" class="py-name" href="#" onclick="return doclink('link-143', 'CSSSelector', 'link-143');">CSSSelector</a></tt> </tt>
 <a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-144" class="py-name"><a title="lxml.cssselect.CSSSelector" class="py-name" href="#" onclick="return doclink('link-144', 'CSSSelector', 'link-143');">CSSSelector</a></tt><tt class="py-op">(</tt><tt class="py-name">expr</tt><tt class="py-op">,</tt> <tt class="py-name">translator</tt><tt class="py-op">=</tt><tt class="py-name">translator</tt><tt class="py-op">)</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line"> </tt>
 <a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line">    <tt class="py-comment">########################################</tt> </tt>
@@ -3599,7 +3598,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5365430bdb436844ada6eb5956fe580342e43580..6635ae7cf8b8911f96fce3684ef1c9ac20398fda 100644 (file)
@@ -413,7 +413,7 @@ uncheck individual checkboxes according to their value.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa7222cecff02345457a3e8a1259a9313c9a95fa..100d8f88ff44415483af08192945f3ba47871693 100644 (file)
@@ -346,7 +346,7 @@ checkboxes with the same name.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cf3e1b7e3b743826bba1b35ba182de7de39123b7..b18a3127a79b4149e7848fa82f486609e4144300 100644 (file)
@@ -263,7 +263,7 @@ keyword.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa175631cf7d047a6c45d49f73388a9d2276ea72..425681202f5de8b82ebe9ec90084532ef5a835fb 100644 (file)
@@ -117,7 +117,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 043cf19d0bc903b6fe257a0df7d918a4bf8b5706..4fd9cf83df489b24dcdf08b69e093ca14e6bf96f 100644 (file)
@@ -364,21 +364,21 @@ _abcoll.Container --+
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="&lt;_weakrefset.WeakSet object at 0x35796d0&gt;">&lt;_weakrefset.WeakSet object at 0x35796d0&gt;</code>
+        <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="&lt;_weakrefset.WeakSet object at 0x2249450&gt;">&lt;_weakrefset.WeakSet object at 0x2249450&gt;</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_negative_cache_version"></a><span class="summary-name">_abc_negative_cache_version</span> = <code title="18">18</code>
+        <a name="_abc_negative_cache_version"></a><span class="summary-name">_abc_negative_cache_version</span> = <code title="22">22</code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x3579550&gt;">&lt;_weakrefset.WeakSet object at 0x3579550&gt;</code>
+        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x22492d0&gt;">&lt;_weakrefset.WeakSet object at 0x22492d0&gt;</code>
     </td>
   </tr>
   <tr>
@@ -680,7 +680,7 @@ _abcoll.Container --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a43a5a2f7db9254fe3246c7a73fc7a6c4e42853b..973d829c76791c52c19c5d2cff4b87438fc4d32b 100644 (file)
@@ -550,7 +550,7 @@ string, and defaults to <tt class="rst-rst-docutils literal rst-docutils literal
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8c2dd213266ccc6779c9dc482c17c3e79044659c..113a77f4b3ce6543a0763ed2b35c3af4d81ca7ce 100644 (file)
@@ -254,7 +254,7 @@ objects.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 20a684772191ee3b1b88efb9f34331f4c3820908..2c8a29207d6e9a06af4fa5e403f1a12c617359fc 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0ba77cd3ec3b1c8b328da8aec128da656159f66a..54ded2b71c19d1bece4eefeda41e0fa598323857 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c71494bf24a98259c16c7769fb7d7e7cf5d34037..7f3bd8263e68d2a4d492f200828c3a80f3ad07a8 100644 (file)
@@ -364,7 +364,7 @@ Element classes.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 783ab4004ee4b305a475b41fb07f5e173fd7a19d..fb095e79362b3e089bca9e8fbb3a4b6bb83aff1b 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5215507c99fdcf8cb1624d0c122e37bb42652554..b5c9630111405def6721934a34deef78fe19403c 100644 (file)
@@ -767,7 +767,7 @@ element to get the document's head.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 612f18d0a9522cfd2bf9ab935d7c9fe17a558540..e8ad5c3f7428cebe9f7f5bf94aa471ce627b144e 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 88518913d3ec4febb681a3d6ff017b7c3b3633a2..e7cd46557cfa7f84011242ce71d37c8ff651a6f0 100644 (file)
@@ -593,7 +593,7 @@ attribute.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4e5df6d1ccb248ce8b8b38b3acdb0611ffa388d8..a2700fd92fb01504370d2ccb1896060351dd4a90 100644 (file)
@@ -431,7 +431,7 @@ nput' or local-name(.) = 'textarea')]
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d9fb9d844dd922358352eacfec0747c16e0c3461..9dc19ca86c01534b60dc074822f8e3a23d7d55c2 100644 (file)
@@ -329,7 +329,7 @@ Mix-in for all input elements (input, select, and textarea)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6e5f1cb63793eb911e9f7b25618228f0fcfc44ee..cd723a0295dacd02d69d8bbe4ca78e332f745081 100644 (file)
@@ -364,7 +364,7 @@ can't be found.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a0f33117001bdd5f8b55d5b51e67bc0f9538b197..83de1ff361d75ad115c38b7b76d9afa13997ea05 100644 (file)
@@ -389,7 +389,7 @@ to unselect the option.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fccfd6fe84aea50e5a4be91f259b6075e1858d30..5dbe6ba307cf7eadc2e9dc63700ee93586c9b340 100644 (file)
@@ -412,7 +412,7 @@ unchecks any other value).
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6c3325af02c2e15b49d4aaaecdde307b48de39dd..6e1b0fb84ccf21f641d0c948d7ccb41233291312 100644 (file)
@@ -507,7 +507,7 @@ attribute of all the <tt class="rst-docutils literal">&lt;option&gt;</tt> elemen
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5734b6df0337f7dc405f993093afabe3ea9d18a5..dda6398b637c9ef8190e5b6c0ab8d6c78cdd10f6 100644 (file)
@@ -373,7 +373,7 @@ get/set the value with <tt class="rst-rst-rst-rst-rst-docutils literal rst-rst-r
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 263abcfee6df92a81a809c6d83903cb4f1c7836d..94dfdccaeea58a7bbb02810d4f589262813b9401 100644 (file)
@@ -266,7 +266,7 @@ parser like this:</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e1f21a416c7aaf4192913d7be60d5d9bd2bda21f..834d0d5c9fb5abec7d1df1a0aa6f3479fea94efa 100644 (file)
@@ -253,7 +253,7 @@ of the resulting document.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 731598dfe22e24e977766f2ad70e89f9092ea481..402d03983a03566114399f5b3ce524a200ab545b 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fd692aedff874ff8d12c0490df6881d2f59e10c3..52fefd5eaa2c24e1b2f3a3864affd104bb32435f 100644 (file)
@@ -431,7 +431,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 844c6999af3161c52a1ccbcf6a54ec3863896fda..1f070399e3783b7b6094ea730795c83ef14cb5b3 100644 (file)
@@ -88,7 +88,7 @@ details.</p>
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">unicode</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr class="private">
@@ -96,7 +96,7 @@ details.</p>
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">bytes</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -727,7 +727,7 @@ a<code class="re-op">-</code>z0<code class="re-op">-</code>9%&amp;\?;=~<code cla
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 00b06c02c9e8f88c9a8a6fe28f24fc6d89c580f3..40c9ef275e33d11fab20283c3450735732116a8e 100644 (file)
@@ -1247,7 +1247,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1f4fd76f189964c8ce5d48263ea94380aadbd974..450f6c2d039ebd4372090d19ce153abff0bfaaa4 100644 (file)
@@ -759,7 +759,7 @@ more sneaky attempts.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b95651974c010a4b795cf3c92c6a364c76843714..035b315aa72d6025773baa33a8fb5c0fc9f1c47a 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3c67d7dd6df4d6d4152e11d813cbc57ccc214b09..901b6a7f601f7f02281e4abf3e5a92afe00165db 100644 (file)
@@ -229,7 +229,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5228f4467643448551bbead6346812ce0fa9ab04..325f3d88580024225bbca03348939869172ec1d1 100644 (file)
@@ -84,7 +84,7 @@
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">basestring</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr class="private">
@@ -193,7 +193,7 @@ blocks amidst large spans of changes
       <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">&lt;function default_markup at 0x3892758&gt;</span>)</span><br />
+        <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default">&lt;function default_markup at 0x24aeaa0&gt;</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&nbsp;code</a></span>
@@ -948,7 +948,7 @@ given &lt;p&gt;Hi &lt;i&gt;there!&lt;/i&gt;&lt;/p&gt;, if you remove the &lt;i&g
   <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">&lt;function default_markup at 0x3892758&gt;</span>)</span>
+        <span class="sig-arg">markup</span>=<span class="sig-default">&lt;function default_markup at 0x24aeaa0&gt;</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source&nbsp;code</a></span>&nbsp;
@@ -1324,7 +1324,7 @@ includes the elements tail.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7a7eaa1ef2921a5e6271db21301ffd036e122511..6267dc3d464987934ba41fe9d8908de58e142f1d 100644 (file)
@@ -1739,7 +1739,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5e81982e7a15b3b3cd7686a3ec9812d23e2b639a..07e5becc6c8b64fc4e163d8a12d57fb0a5118b5a 100644 (file)
@@ -94,7 +94,7 @@
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ad4746ecb43209a77d8ac02b75adce5a8fc29590..48d590b61a89c50548573fda396daa736957ffe7 100644 (file)
@@ -94,7 +94,7 @@
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eaf546e2edf544f05f6124dc0a0fb6b60fba8619..aa4239753820abee993e944b46e4e8af5d640a7f 100644 (file)
@@ -235,7 +235,7 @@ triple with n==0.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b7e5dc4241422f9e21d7ed5f21aaf87f4804330..90655d5d2aa8a15080fa9a5319118cebc19dd9c3 100644 (file)
@@ -182,7 +182,7 @@ Raised when the document no longer contains any pending deletes
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5cc269c476bb221bbea7b4ed713157a3082bd215..2b9e717fc44852c8173900f1a0f1799cd4f75f3b 100644 (file)
@@ -342,7 +342,7 @@ show the href when it changes.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e9272331b67a3c58aca41a3bd045d04070067a1f..472c4a699f80a0369ae22e05e5ff0bce8b93ab52 100644 (file)
@@ -427,7 +427,7 @@ is only represented in a document by a tag.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 005e73ec7764490e5c6796437317ccb7e137ed0f..d01619aa17dc48b17656d5f66cab01353fa1981b 100644 (file)
@@ -412,7 +412,7 @@ space.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3155b91586e6686dce47135d4df5349974ac5134..497658f2397c71d06287c4d63e88027c01618afd 100644 (file)
@@ -84,7 +84,7 @@
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">basestring</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -546,7 +546,7 @@ escendant-or-self::x:textarea
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a525a6960dcd59b5cf81f96be28fabba9702468b..a01de96c890d686de9d68bbd5c0bf188c8fed3e7 100644 (file)
@@ -783,7 +783,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ca6d77b8ea092d82a9d63306dfd7973d33fa4f22..71c359de89931556f901347034a7ed405ddf0281 100644 (file)
@@ -303,7 +303,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 14c9615ae5f0011fc2cade56fd8d9c54eb193bcb..fb5ffbd5b656271dd72ce71c272f9008fcfee399 100644 (file)
@@ -185,7 +185,7 @@ Raised when no form can be found
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 97f01e7a361ab5dd2bbe031695fa85bc2b5d992d..b9f8cbcf1578b44c1fa7e7bdf7b90d2f35f1f50d 100644 (file)
@@ -418,7 +418,7 @@ is a fragment or a document.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 35752530bf073e71667959d150811efe8364bad7..ca5f563cff3242b2f46b8b4eb32ab3fa3904c3d6 100644 (file)
@@ -568,7 +568,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5889914294a013c9de5de73e68865948e1c1ff9c..11dadd8f85aace4a9b2ab5876d9c1eee110a2a72 100644 (file)
@@ -139,7 +139,7 @@ An html5lib HTML parser with lxml as tree.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 927c77d464bb95c16a39f2752f69242842b6b910..69e4e920fe8dca956211f5503b94bba131851fb6 100644 (file)
@@ -139,7 +139,7 @@ An html5lib XHTML Parser with lxml as tree.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 50da950af01d24a1a3367b44254113fb0df51bd8..de267699b7298cafddc28c39b48cea562ead2269 100644 (file)
@@ -449,7 +449,7 @@ keyword.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 71370691902e282482f17e58883991a074da2db2..cd5131ba0d47d1e586da6def632f56bb7cb45971 100644 (file)
@@ -304,7 +304,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 124a940f01e2b10a01465d526c5c83d0efb98be0..c6ee810c7dffe606fbb6388102f34af3b2685f49 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a819a850fc6fede6d6810b15f33bacea895a60f5..377c5e18d3a1e07e1e39c521d285094bc9f098bd 100644 (file)
@@ -116,7 +116,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 92a8405901459e1aea966a89448e86a940981b0f..ad2e9a7eb34cf429d6ac3050cd3eb1580ad945fe 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 94697d2bfdf86fc0301d7c8d6e47b22951251d3a..51958a2854c83d16eecfa69ac884837f8ce063eb 100644 (file)
@@ -100,7 +100,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 45691b648acd99a2fd6c2edec0dc73654a68468a..15f20d7f1573cfef0c0e3f6d6767b5ea24e7c115 100644 (file)
@@ -86,7 +86,7 @@ of the pure-xslt 'skeleton' implementation.
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">bytes</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr class="private">
@@ -94,7 +94,7 @@ of the pure-xslt 'skeleton' implementation.
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">unicode</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr class="private">
@@ -102,7 +102,7 @@ of the pure-xslt 'skeleton' implementation.
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name" onclick="show_private();">basestring</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -533,7 +533,7 @@ chematron.rng')))
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 958222b5253d4cebb6b91d561509f3f7578e10e8..0fbc4e28c0de8af6e74dfeec2eea2b536e6c7d96 100644 (file)
@@ -595,7 +595,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 85d388462697805b337eadd0a51bc5abb0feeb5a..81619417152bc98616d45ada38b02e3a74ae5b57 100644 (file)
@@ -685,7 +685,7 @@ been turned off).
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 92ad1ee6521e651b022a2e66792d1f7e809ebd7b..56193d28302f3beaaaf360948bf2ed356fd84ed6 100644 (file)
@@ -629,7 +629,7 @@ attributes.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object at 0x30a8d70&gt;">&lt;lxml.objectify.ElementMaker object at 0x30a8d70&gt;</code>
+        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object at 0x1cd0350&gt;">&lt;lxml.objectify.ElementMaker object at 0x1cd0350&gt;</code>
     </td>
   </tr>
 <tr>
@@ -1136,7 +1136,7 @@ elements.  Pass 'string', for example, to make string values the default.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a2dab8406933cc969a6a4a92b12677280035ac8a..3edc6fce2e8d203b0f63a9ffd07616530ceca89e 100644 (file)
@@ -801,7 +801,7 @@ this if they recursively call _init() in the superclasses.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ad3a8086b5603558231894bbe8488886409704aa..4472304ac20ddda90e6d4de7b90cd4b9f839dd4d 100644 (file)
@@ -364,7 +364,7 @@ some text
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ca5d6d804b699633545613dc943664b72e3288e4..f2ba7a4533e048d454367ec6e9fc87a346eeeb2d 100644 (file)
@@ -390,7 +390,7 @@ this if they recursively call _init() in the superclasses.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ba967630284f2f48702e2b79391a50227305b8b0..c6d651166a147728b07b3661c0c92a1e87789c0a 100644 (file)
@@ -396,7 +396,7 @@ this if they recursively call _init() in the superclasses.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dd0d7e9391fd58321cd1a14097b653223781e0b2..c819b7f29cf15918a0a8d377de6788ddff205139 100644 (file)
@@ -390,7 +390,7 @@ this if they recursively call _init() in the superclasses.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 14fe79c79b8c6c3740cdd882d6bc173beee9332c..807949320409c9d8942b2e4120235d3e092ac0a4 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b10ac1dc787ea5a6dfe277c32c0f54c994fc73e3..c7035c1fe12294a02eb2e7086c07813d1da35e73 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5297c925bc811adfb7718a97e4ba0d95487e69e4..8d73c3cc5ac43dece04c0233124defa998a61682 100644 (file)
@@ -452,7 +452,7 @@ as second argument) or raises AttributeError.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f6266fa748dbc1de903bffffb5d22cbce7df2eb1..93acd504c562b3347816300702ed6a9ab4f57981 100644 (file)
@@ -408,7 +408,7 @@ doing.</td>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3b758f38ed6d3657005125b1605c6803e5836ebf..1c717533e4a895d41b63878f9c92038cc1f9630a 100644 (file)
@@ -859,7 +859,7 @@ returned in document order.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 802df2793ec2d9a4b7deeb1291442be90d42933d..d91fee3f3ef9690231615701ec8289bf5c3e4928 100644 (file)
@@ -276,7 +276,7 @@ empty data elements (defauls to StringElement).</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 52e8e0b47958cc042c2ba0d6874208589363552a..6d25249b650ba6fab0c11300e652ad852aa34734 100644 (file)
@@ -443,7 +443,7 @@ ignored.  Raises ValueError if the dependencies cannot be fulfilled.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d1de4e6c00d700f9144cb3bf6226c1b449f0da9..40a890dfa09849a28ecdd8c98554391809fea0f8 100644 (file)
@@ -731,7 +731,7 @@ Instead, use the .text attribute to get a 'real' string.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4c3555485bc83caca880d91736df394d61c11429..0987d204e1dfaa6222578ee803d1c581ff3e20dd 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b74efc9d02cef2338f5c4cc8d931bd21719ca60e..0adcd1b46408f133a4c4f67eb77e4e1b2945fbde 100644 (file)
@@ -106,7 +106,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index de26b2ba4d01991a8c73ad916b0281f576d2ce01..1978991b69470b96f16bca6ff699c33c66adc1f1 100644 (file)
@@ -219,7 +219,7 @@ them against a SAX ContentHandler.</td>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 12f88e0556df2e8f238f8be33fdaaa24034218f7..fb04e4132ac7abb803049368ca9ce93c11ed3340 100644 (file)
@@ -488,7 +488,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0b91e532c698e5e267488f7d98059ec950c4518..0cdb37bfe6a8bfbfe85d6b6f10b75ba46084ce6d 100644 (file)
@@ -871,7 +871,7 @@ Locator provides useful information.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a4353cbb35db94323bdcef4d072d0cdba15879b5..239010460b64179fcdafd36ca063b063d3e13a8e 100644 (file)
@@ -281,7 +281,7 @@ Produces SAX events for an element and children.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f39c52aaed8fa2272e72f93dad8925484282adc3..34ec184da4734131a7f838511f832c2c794d8dc6 100644 (file)
@@ -211,7 +211,7 @@ General SAX error.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fc28cb32dbc79bcfbdee460aff960f105e0c6e5d..2c519c760e8c0eca7c6e85ac11a72ec5d21fac5b 100644 (file)
@@ -169,7 +169,7 @@ namespace registry mechanism</em>    </li>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fe08f0a96656abed73a6dc5e98eada8308a8949b..4c222ac0041bcbe618c7959b3dca260a7e49bb7d 100644 (file)
@@ -102,7 +102,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 663ed4280708abf181674c0f4354314698f39a70..c37d9548846fcf04c494690f8e2d206d6227fb47 100644 (file)
@@ -490,7 +490,7 @@ occurrences of pattern in string by the replacement repl.</td>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e8b1782bdfb514684807f74ae175bc7f9c427178..183d33e352b323077444ca26e721d7f6a283cb41 100644 (file)
@@ -88,46 +88,46 @@ lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclin
 <a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable lxml.tests.common_imports.IS_PYTHON3=lxml.tests.common_imports-module.html#IS_PYTHON3"><a title="lxml.tests.common_imports.IS_PYTHON3" class="py-name" href="#" onclick="return doclink('link-7', 'IS_PYTHON3', 'link-7');">IS_PYTHON3</a></tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">3</tt> </tt>
 <a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"> </tt>
 <a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">elementtree</tt> <tt class="py-keyword">import</tt> <tt id="link-8" 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-8', 'ElementTree', 'link-8');">ElementTree</a></tt> <tt class="py-comment"># standard ET</tt> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</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="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-9" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-9', 'xml', 'link-9');">xml</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="lxml.etree
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-8" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-8', 'xml', 'link-8');">xml</a></tt><tt class="py-op">.</tt><tt id="link-9" class="py-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-10', 'etree', 'link-2');">etree</a></tt> <tt class="py-keyword">import</tt> <tt id="link-11" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-9', 'etree', 'link-2');">etree</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" 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-10', 'ElementTree', 'link-10');">ElementTree</a></tt> <tt class="py-comment"># Python 2.5+</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</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="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt class="py-name">elementtree</tt> <tt class="py-keyword">import</tt> <tt id="link-11" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-11', 'ElementTree', 'link-8');">ElementTree</a></tt> <tt class="py-comment"># Python 2.5+</tt> </tt>
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-11', 'ElementTree', 'link-10');">ElementTree</a></tt> <tt class="py-comment"># standard ET</tt> </tt>
 <a name="L26"></a><tt class="py-lineno"> 26</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="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt id="link-12" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-12', 'ElementTree', 'link-8');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-12', 'ElementTree', 'link-10');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</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">if</tt> <tt id="link-13" 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-13', 'hasattr', 'link-13');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-14" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-14', 'ElementTree', 'link-8');">ElementTree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'VERSION'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-14', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'VERSION'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">    <tt id="link-15" class="py-name" targets="Variable lxml.tests.common_imports.ET_VERSION=lxml.tests.common_imports-module.html#ET_VERSION"><a title="lxml.tests.common_imports.ET_VERSION" class="py-name" href="#" onclick="return doclink('link-15', 'ET_VERSION', 'link-15');">ET_VERSION</a></tt> <tt class="py-op">=</tt> <tt id="link-16" class="py-name" targets="Function lxml.tests.common_imports.make_version_tuple()=lxml.tests.common_imports-module.html#make_version_tuple"><a title="lxml.tests.common_imports.make_version_tuple" class="py-name" href="#" onclick="return doclink('link-16', 'make_version_tuple', 'link-16');">make_version_tuple</a></tt><tt class="py-op">(</tt><tt id="link-17" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-17', 'ElementTree', 'link-8');">ElementTree</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Variable xml.etree.ElementTree.VERSION=xml.etree.ElementTree-module.html#VERSION"><a title="xml.etree.ElementTree.VERSION" class="py-name" href="#" onclick="return doclink('link-18', 'VERSION', 'link-18');">VERSION</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-17', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name" targets="Variable xml.etree.ElementTree.VERSION=xml.etree.ElementTree-module.html#VERSION"><a title="xml.etree.ElementTree.VERSION" class="py-name" href="#" onclick="return doclink('link-18', 'VERSION', 'link-18');">VERSION</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-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">    <tt id="link-19" class="py-name"><a title="lxml.tests.common_imports.ET_VERSION" class="py-name" href="#" onclick="return doclink('link-19', 'ET_VERSION', 'link-15');">ET_VERSION</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
 <a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"> </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">import</tt> <tt id="link-20" class="py-name" targets="Variable lxml.tests.test_elementtree.cElementTree=lxml.tests.test_elementtree-module.html#cElementTree"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-20', 'cElementTree', 'link-20');">cElementTree</a></tt> <tt class="py-comment"># standard ET</tt> </tt>
-<a name="L36"></a><tt class="py-lineno"> 36</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="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-keyword">from</tt> <tt id="link-21" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-21', 'xml', 'link-9');">xml</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="lxml.etree
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-20" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-20', 'xml', 'link-8');">xml</a></tt><tt class="py-op">.</tt><tt id="link-21" class="py-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-22', 'etree', 'link-2');">etree</a></tt> <tt class="py-keyword">import</tt> <tt id="link-23" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-23', 'cElementTree', 'link-20');">cElementTree</a></tt> <tt class="py-comment"># Python 2.5+</tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-21', 'etree', 'link-2');">etree</a></tt> <tt class="py-keyword">import</tt> <tt id="link-22" class="py-name" targets="Variable lxml.tests.test_elementtree.cElementTree=lxml.tests.test_elementtree-module.html#cElementTree"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-22', 'cElementTree', 'link-22');">cElementTree</a></tt> <tt class="py-comment"># Python 2.5+</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</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="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt id="link-23" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-23', 'cElementTree', 'link-22');">cElementTree</a></tt> <tt class="py-comment"># standard ET</tt> </tt>
 <a name="L39"></a><tt class="py-lineno"> 39</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="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt id="link-24" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-24', 'cElementTree', 'link-20');">cElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt id="link-24" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-24', 'cElementTree', 'link-22');">cElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 <a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-25" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-25', 'hasattr', 'link-13');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-26', 'cElementTree', 'link-20');">cElementTree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'VERSION'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt id="link-27" class="py-name" targets="Variable lxml.tests.common_imports.CET_VERSION=lxml.tests.common_imports-module.html#CET_VERSION"><a title="lxml.tests.common_imports.CET_VERSION" class="py-name" href="#" onclick="return doclink('link-27', 'CET_VERSION', 'link-27');">CET_VERSION</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="lxml.tests.common_imports.make_version_tuple" class="py-name" href="#" onclick="return doclink('link-28', 'make_version_tuple', 'link-16');">make_version_tuple</a></tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-29', 'cElementTree', 'link-20');">cElementTree</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="xml.etree.ElementTree.VERSION" class="py-name" href="#" onclick="return doclink('link-30', 'VERSION', 'link-18');">VERSION</a></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">if</tt> <tt id="link-25" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-25', 'hasattr', 'link-13');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-26', 'cElementTree', 'link-22');">cElementTree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'VERSION'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt id="link-27" class="py-name" targets="Variable lxml.tests.common_imports.CET_VERSION=lxml.tests.common_imports-module.html#CET_VERSION"><a title="lxml.tests.common_imports.CET_VERSION" class="py-name" href="#" onclick="return doclink('link-27', 'CET_VERSION', 'link-27');">CET_VERSION</a></tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="lxml.tests.common_imports.make_version_tuple" class="py-name" href="#" onclick="return doclink('link-28', 'make_version_tuple', 'link-16');">make_version_tuple</a></tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-29', 'cElementTree', 'link-22');">cElementTree</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="xml.etree.ElementTree.VERSION" class="py-name" href="#" onclick="return doclink('link-30', 'VERSION', 'link-18');">VERSION</a></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 id="link-31" class="py-name"><a title="lxml.tests.common_imports.CET_VERSION" class="py-name" href="#" onclick="return doclink('link-31', 'CET_VERSION', 'link-27');">CET_VERSION</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
 <a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"> </tt>
@@ -480,7 +480,7 @@ 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-143', 'parse', 'link-80');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-144" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-144', 'xml', 'link-9');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-143', 'parse', 'link-80');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-144" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-144', 'xml', 'link-8');">xml</a></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 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="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">    <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name" targets="Method lxml.etree._ElementTree.write_c14n()=lxml.etree._ElementTree-class.html#write_c14n"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-145', 'write_c14n', 'link-145');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</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">return</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>
@@ -491,13 +491,13 @@ lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
 lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-146', 'value', 'link-146');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-147" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-147', 'findall', 'link-3');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"(&amp;#([0-9]+);)"</tt><tt class="py-op">,</tt> <tt id="link-148" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-148', 'xml', 'link-9');">xml</a></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 id="link-149" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-149', 'xml', 'link-9');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-150" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-150', 'xml', 'link-9');">xml</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-151', 'replace', 'link-86');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_name</tt><tt class="py-op">,</tt> <tt id="link-152" class="py-name" targets="Function lxml.html.clean.unichr()=lxml.html.clean-module.html#unichr"><a title="lxml.html.clean.unichr" class="py-name" href="#" onclick="return doclink('link-152', 'unichr', 'link-152');">unichr</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-147', 'findall', 'link-3');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"(&amp;#([0-9]+);)"</tt><tt class="py-op">,</tt> <tt id="link-148" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-148', 'xml', 'link-8');">xml</a></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 id="link-149" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-149', 'xml', 'link-8');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-150" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-150', 'xml', 'link-8');">xml</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-151', 'replace', 'link-86');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_name</tt><tt class="py-op">,</tt> <tt id="link-152" class="py-name" targets="Function lxml.html.clean.unichr()=lxml.html.clean-module.html#unichr"><a title="lxml.html.clean.unichr" class="py-name" href="#" onclick="return doclink('link-152', 'unichr', 'link-152');">unichr</a></tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-153" 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-153', 'value', 'link-146');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-154" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-154', 'xml', 'link-9');">xml</a></tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-154" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-154', 'xml', 'link-8');">xml</a></tt> </tt>
 </div><a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
@@ -536,7 +536,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d52411caf9592da368f4e93dbef5397d01c994fb..f445c46ec8ebcd5a7c42f0605da0e9656acb0d2d 100644 (file)
@@ -420,7 +420,7 @@ unittest.case.TestCase --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a1d2aa33b803574b1e61ade0b1f89d0e833c4da0..cfde0aaaf509749aaabcca5f43492fa7ceae5599 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9c5f44f4bc4988bdc298d3fb6a93b9d0ee97e741..edb19c474c6ea6c6cb6f2b6d94f35dfce8c6ef29 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 531dcae588c8d85eec985e5bbac622cfab10e18f..99d3f14fde5929de0ad4f93b70d88205809ee82a 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cee1f7199cac57fdbec516b959662ef09d6ee27a..0e92496142ee9cc1d0793f46536cbb03003dba24 100644 (file)
@@ -263,7 +263,7 @@ Simple HTTP request dumper for tests in Python 2.5+.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 83ba48b5fd624519d0f922cc582ad51b77062478..20e6d845ea3982454e81148b4d5c24ac8b073006 100644 (file)
@@ -194,7 +194,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa34474149bb8496434ccd07f78415c36177118a..81e8d19d739fd3bcbcfc4d9c52024bf45b5b3051 100644 (file)
@@ -246,7 +246,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a503ece0011f0536b923f4d023b9cffe70e8bd0b..95ec27ef4fe09e5455d66eeb6ec0409b82235199 100644 (file)
@@ -203,7 +203,7 @@ A web server that starts a new thread for each request.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 66c46cc444f132d3f36237361863a113807a6ca6..278f84afe7f8379887a3249980fe4988451ebee9 100644 (file)
@@ -330,7 +330,7 @@ message.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c834a87c282c5945c9aaa2d5eedb03582fe46648..083229127385626cf4d24b2fc1d9d8840832d23f 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7f05d24629645e6e334f47c1cfa8abd00cbf3eaa..f5f87034f5f70c7cac1b285f335a0538073a9c08 100644 (file)
@@ -225,7 +225,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b79ec9523d1c214cf2bafd294e7c10ce7caa4fde..733d812a980d80d8bced83a9e2a0ed624c1afbf8 100644 (file)
@@ -400,7 +400,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 903def0806081dacb9bf9bc1ea45d31d67e6a267..9e7e4e73b127181bef0f957e8ec9a81abcd222f5 100644 (file)
@@ -269,7 +269,7 @@ Tests for different Element class lookup mechanisms.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 06a7599c29a5f9698be89e763d2695e47723f53c..2dae0921b066e2a9cc2221d51e6ae2d2f880666b 100644 (file)
@@ -266,430 +266,650 @@ lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-57', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">missing</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
-<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase"></a><div id="ClassLookupTestCase-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase-toggle" onclick="return toggle('ClassLookupTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</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="ClassLookupTestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ClassLookupTestCase-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">    <tt class="py-docstring">"""Test cases for different Element class lookup mechanisms.</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">    <tt id="link-58" class="py-name"><a title="lxml.etree
+</div><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
+<a name="ProxyTestCase.test_element_base"></a><div id="ProxyTestCase.test_element_base-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="ProxyTestCase.test_element_base-toggle" onclick="return toggle('ProxyTestCase.test_element_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProxyTestCase.test_element_base-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProxyTestCase.test_element_base-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-58" class="py-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-58', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-58', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Class lxml.etree.ElementBase=lxml.etree.ElementBase-class.html"><a title="lxml.etree.ElementBase" class="py-name" href="#" onclick="return doclink('link-59', 'ElementBase', 'link-59');">ElementBase</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ElementBase'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-60" 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-60', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</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-21');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-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-62', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.etree.ElementBase" class="py-name" href="#" onclick="return doclink('link-63', 'ElementBase', 'link-59');">ElementBase</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt id="link-64" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-64', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-65" 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-65', 'append', 'link-65');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ElementBase'</tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-66', 'root', 'link-21');">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-67" 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-67', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
+<a name="ProxyTestCase.test_element_base_children"></a><div id="ProxyTestCase.test_element_base_children-def"><a name="L80"></a><tt class="py-lineno"> 80</tt> <a class="py-toggle" href="#" id="ProxyTestCase.test_element_base_children-toggle" onclick="return toggle('ProxyTestCase.test_element_base_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProxyTestCase.test_element_base_children-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProxyTestCase.test_element_base_children-expanded"><a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-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-68', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="lxml.etree.ElementBase" class="py-name" href="#" onclick="return doclink('link-69', 'ElementBase', 'link-59');">ElementBase</a></tt><tt class="py-op">(</tt><tt id="link-70" class="py-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-70', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="lxml.etree.ElementBase" class="py-name" href="#" onclick="return doclink('link-71', 'ElementBase', 'link-59');">ElementBase</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt 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">'ElementBase'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-72" 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-72', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt 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">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt 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">'ElementBase'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-73" 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-73', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line"> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt id="link-74" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-74', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-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-75', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree.ElementBase" class="py-name" href="#" onclick="return doclink('link-76', 'ElementBase', 'link-59');">ElementBase</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt id="link-77" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-77', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-78', 'append', 'link-65');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt 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">'ElementBase'</tt><tt class="py-op">,</tt> <tt id="link-79" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-79', 'root', 'link-21');">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-80" 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-80', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt 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">'ElementBase'</tt><tt class="py-op">,</tt> <tt id="link-81" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-81', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-82" 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-82', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
+<a name="ProxyTestCase.test_comment_base"></a><div id="ProxyTestCase.test_comment_base-def"><a name="L91"></a><tt class="py-lineno"> 91</tt> <a class="py-toggle" href="#" id="ProxyTestCase.test_comment_base-toggle" onclick="return toggle('ProxyTestCase.test_comment_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_comment_base">test_comment_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProxyTestCase.test_comment_base-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProxyTestCase.test_comment_base-expanded"><a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-83" class="py-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-83', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-84" 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-84', 'CommentBase', 'link-84');">CommentBase</a></tt><tt class="py-op">(</tt><tt class="py-string">'some text'</tt><tt class="py-op">)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-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-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-86" 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-86', 'Comment', 'link-86');">Comment</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-87" 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-87', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt 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">'some text'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-88" 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-88', 'text', 'link-88');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt id="link-89" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-89', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-90" class="py-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-90', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-91" 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-91', 'Element', 'link-91');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt id="link-92" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-92', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-93', 'append', 'link-65');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt 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">'some text'</tt><tt class="py-op">,</tt> <tt id="link-94" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-94', 'root', 'link-21');">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-95" 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-95', 'text', 'link-88');">text</a></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="ProxyTestCase.test_pi_base"></a><div id="ProxyTestCase.test_pi_base-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="ProxyTestCase.test_pi_base-toggle" onclick="return toggle('ProxyTestCase.test_pi_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base">test_pi_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ProxyTestCase.test_pi_base-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ProxyTestCase.test_pi_base-expanded"><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-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-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-97" class="py-name" targets="Class lxml.etree.PIBase=lxml.etree.PIBase-class.html"><a title="lxml.etree.PIBase" class="py-name" href="#" onclick="return doclink('link-97', 'PIBase', 'link-97');">PIBase</a></tt><tt class="py-op">(</tt><tt class="py-string">'the target'</tt><tt class="py-op">,</tt> <tt class="py-string">'some text'</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-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-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-99" 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-99', 'tag', 'link-57');">tag</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'some text'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-100" 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-100', 'text', 'link-88');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt id="link-101" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-101', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-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-102', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-103', 'Element', 'link-91');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt id="link-104" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-104', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-105', 'append', 'link-65');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'some text'</tt><tt class="py-op">,</tt> <tt id="link-106" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-106', 'root', 'link-21');">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-107" 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-107', 'text', 'link-88');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase"></a><div id="ClassLookupTestCase-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase-toggle" onclick="return toggle('ClassLookupTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</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="ClassLookupTestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ClassLookupTestCase-expanded"><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">    <tt class="py-docstring">"""Test cases for different Element class lookup mechanisms.</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 id="link-108" class="py-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-108', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-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-9');">etree</a></tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.tearDown"></a><div id="ClassLookupTestCase.tearDown-def"><a name="L79"></a><tt class="py-lineno"> 79</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.tearDown-toggle" onclick="return toggle('ClassLookupTestCase.tearDown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown">tearDown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.tearDown-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.tearDown-expanded"><a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt id="link-60" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-109', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.tearDown"></a><div id="ClassLookupTestCase.tearDown-def"><a name="L113"></a><tt class="py-lineno">113</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.tearDown-toggle" onclick="return toggle('ClassLookupTestCase.tearDown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown">tearDown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.tearDown-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.tearDown-expanded"><a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt id="link-110" class="py-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-60', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-61" 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-61', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></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">super</tt><tt class="py-op">(</tt><tt id="link-62" class="py-name" targets="Class lxml.tests.test_classlookup.ClassLookupTestCase=lxml.tests.test_classlookup.ClassLookupTestCase-class.html"><a title="lxml.tests.test_classlookup.ClassLookupTestCase" class="py-name" href="#" onclick="return doclink('link-62', 'ClassLookupTestCase', 'link-62');">ClassLookupTestCase</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-63" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase.tearDown()=lxml.tests.common_imports.HelperTestCase-class.html#tearDown,Method lxml.tests.test_classlookup.ClassLookupTestCase.tearDown()=lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown,Method lxml.tests.test_htmlparser.HtmlParserTestCase.tearDown()=lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown,Method lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase.tearDown()=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#tearDown,Method lxml.tests.test_io._IOTestCaseBase.tearDown()=lxml.tests.test_io._IOTestCaseBase-class.html#tearDown,Method lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.tearDown()=lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown,Method lxml.tests.test_objectify.ObjectifyTestCase.tearDown()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#tearDown,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.tearDown()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown"><a title="lxml.tests.common_imports.HelperTestCase.tearDown
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-110', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-111" 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-111', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-112" class="py-name" targets="Class lxml.tests.test_classlookup.ClassLookupTestCase=lxml.tests.test_classlookup.ClassLookupTestCase-class.html"><a title="lxml.tests.test_classlookup.ClassLookupTestCase" class="py-name" href="#" onclick="return doclink('link-112', 'ClassLookupTestCase', 'link-112');">ClassLookupTestCase</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-113" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase.tearDown()=lxml.tests.common_imports.HelperTestCase-class.html#tearDown,Method lxml.tests.test_classlookup.ClassLookupTestCase.tearDown()=lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown,Method lxml.tests.test_htmlparser.HtmlParserTestCase.tearDown()=lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown,Method lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase.tearDown()=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#tearDown,Method lxml.tests.test_io._IOTestCaseBase.tearDown()=lxml.tests.test_io._IOTestCaseBase-class.html#tearDown,Method lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.tearDown()=lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown,Method lxml.tests.test_objectify.ObjectifyTestCase.tearDown()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#tearDown,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.tearDown()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown"><a title="lxml.tests.common_imports.HelperTestCase.tearDown
 lxml.tests.test_classlookup.ClassLookupTestCase.tearDown
 lxml.tests.test_htmlparser.HtmlParserTestCase.tearDown
 lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase.tearDown
 lxml.tests.test_io._IOTestCaseBase.tearDown
 lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.tearDown
 lxml.tests.test_objectify.ObjectifyTestCase.tearDown
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.tearDown" class="py-name" href="#" onclick="return doclink('link-63', 'tearDown', 'link-63');">tearDown</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.test_namespace_lookup"></a><div id="ClassLookupTestCase.test_namespace_lookup-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_namespace_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_namespace_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup">test_namespace_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_namespace_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_namespace_lookup-expanded"><a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"namespace class"</tt> </tt>
-</div><a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt id="link-64" class="py-name" targets="Method lxml.etree.CustomElementClassLookup.lookup()=lxml.etree.CustomElementClassLookup-class.html#lookup,Method lxml.etree.PythonElementClassLookup.lookup()=lxml.etree.PythonElementClassLookup-class.html#lookup,Method lxml.html.HtmlElementClassLookup.lookup()=lxml.html.HtmlElementClassLookup-class.html#lookup"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.tearDown" class="py-name" href="#" onclick="return doclink('link-113', 'tearDown', 'link-113');">tearDown</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_namespace_lookup"></a><div id="ClassLookupTestCase.test_namespace_lookup-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_namespace_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_namespace_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup">test_namespace_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_namespace_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_namespace_lookup-expanded"><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</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-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"namespace class"</tt> </tt>
+</div><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt id="link-114" class="py-name" targets="Method lxml.etree.CustomElementClassLookup.lookup()=lxml.etree.CustomElementClassLookup-class.html#lookup,Method lxml.etree.PythonElementClassLookup.lookup()=lxml.etree.PythonElementClassLookup-class.html#lookup,Method lxml.html.HtmlElementClassLookup.lookup()=lxml.html.HtmlElementClassLookup-class.html#lookup"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-64', 'lookup', 'link-64');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-65" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-114', 'lookup', 'link-114');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-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-65', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Class lxml.etree.ElementNamespaceClassLookup=lxml.etree.ElementNamespaceClassLookup-class.html"><a title="lxml.etree.ElementNamespaceClassLookup" class="py-name" href="#" onclick="return doclink('link-66', 'ElementNamespaceClassLookup', 'link-66');">ElementNamespaceClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt id="link-67" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-115', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name" targets="Class lxml.etree.ElementNamespaceClassLookup=lxml.etree.ElementNamespaceClassLookup-class.html"><a title="lxml.etree.ElementNamespaceClassLookup" class="py-name" href="#" onclick="return doclink('link-116', 'ElementNamespaceClassLookup', 'link-116');">ElementNamespaceClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt id="link-117" class="py-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-67', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-68', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-69" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-117', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-118', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-119" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-69', 'lookup', 'link-64');">lookup</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt id="link-70" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-70', 'ns', 'link-70');">ns</a></tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-119', 'lookup', 'link-114');">lookup</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt id="link-120" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-120', 'ns', 'link-120');">ns</a></tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-71', 'lookup', 'link-64');">lookup</a></tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method lxml.etree.ElementNamespaceClassLookup.get_namespace()=lxml.etree.ElementNamespaceClassLookup-class.html#get_namespace"><a title="lxml.etree.ElementNamespaceClassLookup.get_namespace" class="py-name" href="#" onclick="return doclink('link-72', 'get_namespace', 'link-72');">get_namespace</a></tt><tt class="py-op">(</tt><tt class="py-string">"myNS"</tt><tt class="py-op">)</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt id="link-73" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-73', 'ns', 'link-70');">ns</a></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-name">TestElement</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt id="link-74" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-74', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-121', 'lookup', 'link-114');">lookup</a></tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method lxml.etree.ElementNamespaceClassLookup.get_namespace()=lxml.etree.ElementNamespaceClassLookup-class.html#get_namespace"><a title="lxml.etree.ElementNamespaceClassLookup.get_namespace" class="py-name" href="#" onclick="return doclink('link-122', 'get_namespace', 'link-122');">get_namespace</a></tt><tt class="py-op">(</tt><tt class="py-string">"myNS"</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt id="link-123" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-123', 'ns', 'link-120');">ns</a></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-name">TestElement</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt id="link-124" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-124', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-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-75', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-125', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-76', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-126', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-127" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-77', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-78" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-78', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-79', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-80" 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-80', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-81" 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-81', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-82" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-82', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.test_default_class_lookup"></a><div id="ClassLookupTestCase.test_default_class_lookup-def"><a name="L100"></a><tt class="py-lineno">100</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_default_class_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_default_class_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_default_class_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_default_class_lookup-expanded"><a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</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">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"default element"</tt> </tt>
-</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestComment</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CommentBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"default comment"</tt> </tt>
-</div><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestPI</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PIBase</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">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"default pi"</tt> </tt>
-</div><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt id="link-83" 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-83', 'parser', 'link-83');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-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-84', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-85" 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-85', 'XMLParser', 'link-85');">XMLParser</a></tt><tt class="py-op">(</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 id="link-86" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-127', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-128" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-128', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-129" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-129', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" 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-130', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-131" 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-131', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-132', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_default_class_lookup"></a><div id="ClassLookupTestCase.test_default_class_lookup-def"><a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_default_class_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_default_class_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_default_class_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_default_class_lookup-expanded"><a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"default element"</tt> </tt>
+</div><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestComment</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CommentBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"default comment"</tt> </tt>
+</div><a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestPI</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PIBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"default pi"</tt> </tt>
+</div><a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt id="link-133" 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-133', 'parser', 'link-133');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-134" class="py-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-134', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-135" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-135', 'XMLParser', 'link-135');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt id="link-136" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-86', 'lookup', 'link-64');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-87" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-136', 'lookup', 'link-114');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-137" class="py-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-87', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-88" class="py-name" targets="Class lxml.etree.ElementDefaultClassLookup=lxml.etree.ElementDefaultClassLookup-class.html"><a title="lxml.etree.ElementDefaultClassLookup" class="py-name" href="#" onclick="return doclink('link-88', 'ElementDefaultClassLookup', 'link-88');">ElementDefaultClassLookup</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">TestElement</tt><tt class="py-op">,</tt> <tt id="link-89" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-89', 'comment', 'link-89');">comment</a></tt><tt class="py-op">=</tt><tt class="py-name">TestComment</tt><tt class="py-op">,</tt> <tt id="link-90" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-90', 'pi', 'link-90');">pi</a></tt><tt class="py-op">=</tt><tt class="py-name">TestPI</tt><tt class="py-op">)</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt id="link-91" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-91', 'parser', 'link-83');">parser</a></tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-92', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-93" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-137', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name" targets="Class lxml.etree.ElementDefaultClassLookup=lxml.etree.ElementDefaultClassLookup-class.html"><a title="lxml.etree.ElementDefaultClassLookup" class="py-name" href="#" onclick="return doclink('link-138', 'ElementDefaultClassLookup', 'link-138');">ElementDefaultClassLookup</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">TestElement</tt><tt class="py-op">,</tt> <tt id="link-139" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-139', 'comment', 'link-139');">comment</a></tt><tt class="py-op">=</tt><tt class="py-name">TestComment</tt><tt class="py-op">,</tt> <tt id="link-140" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-140', 'pi', 'link-140');">pi</a></tt><tt class="py-op">=</tt><tt class="py-name">TestPI</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt id="link-141" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-141', 'parser', 'link-133');">parser</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-142', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-143" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-93', 'lookup', 'link-64');">lookup</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt id="link-94" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-94', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-95" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-143', 'lookup', 'link-114');">lookup</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">        <tt id="link-144" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-144', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-145" class="py-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-95', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-145', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-96', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-97', '_bytes', 'link-15');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""&lt;?xml version='1.0'?&gt;</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-string">          &lt;?myPI?&gt;</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-string">          &lt;!-- hi --&gt;</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-string">        """</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-98" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-98', 'parser', 'link-83');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"> </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-string">"default element"</tt><tt class="py-op">,</tt> <tt id="link-99" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-99', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt 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">"default pi"</tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-100', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt 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">"default comment"</tt><tt class="py-op">,</tt> <tt id="link-101" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-101', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.test_attribute_based_lookup"></a><div id="ClassLookupTestCase.test_attribute_based_lookup-def"><a name="L125"></a><tt class="py-lineno">125</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_attribute_based_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_attribute_based_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_attribute_based_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_attribute_based_lookup-expanded"><a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</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-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"attribute_based"</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 class="py-name">class_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">"A1"</tt> <tt class="py-op">:</tt> <tt class="py-name">TestElement</tt><tt class="py-op">}</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">        <tt id="link-102" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-146', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-147" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-147', '_bytes', 'link-15');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""&lt;?xml version='1.0'?&gt;</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-string">          &lt;?myPI?&gt;</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-string">          &lt;!-- hi --&gt;</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-string">        """</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-148" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-148', 'parser', 'link-133');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt 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">"default element"</tt><tt class="py-op">,</tt> <tt id="link-149" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-149', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt 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">"default pi"</tt><tt class="py-op">,</tt> <tt id="link-150" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-150', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt 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">"default comment"</tt><tt class="py-op">,</tt> <tt id="link-151" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-151', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_evil_class_lookup"></a><div id="ClassLookupTestCase.test_evil_class_lookup-def"><a name="L159"></a><tt class="py-lineno">159</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_evil_class_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_evil_class_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_evil_class_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_evil_class_lookup-expanded"><a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-152" 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-152', 'name', 'link-152');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'none'</tt><tt class="py-op">:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-153" 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-153', 'name', 'link-152');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'obj'</tt><tt class="py-op">:</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">object</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt id="link-154" class="py-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-154', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="lxml.etree.ElementBase" class="py-name" href="#" onclick="return doclink('link-155', 'ElementBase', 'link-59');">ElementBase</a></tt> </tt>
+</div></div><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt id="link-156" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-156', 'parser', 'link-133');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-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-157', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-158', 'XMLParser', 'link-135');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt id="link-159" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-159', 'parser', 'link-133');">parser</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-160', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">        <tt id="link-161" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-161', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-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-162', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-163', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-164" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-164', '_bytes', 'link-15');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;none/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-165" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-165', 'parser', 'link-133');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt 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">'none'</tt><tt class="py-op">,</tt> <tt id="link-166" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-166', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-167" 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-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">            <tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">            <tt id="link-168" class="py-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-168', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-169', 'XML', 'link-23');">XML</a></tt><tt class="py-op">,</tt> <tt id="link-170" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-170', '_bytes', 'link-15');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;obj /&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-171" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-171', 'parser', 'link-133');">parser</a></tt><tt class="py-op">)</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-172" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-172', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-173" class="py-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-173', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-174', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-175', '_bytes', 'link-15');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-176" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-176', 'parser', 'link-133');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">,</tt> <tt id="link-177" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-177', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-178" 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-178', 'tag', 'link-57');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_attribute_based_lookup"></a><div id="ClassLookupTestCase.test_attribute_based_lookup-def"><a name="L182"></a><tt class="py-lineno">182</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_attribute_based_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_attribute_based_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_attribute_based_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_attribute_based_lookup-expanded"><a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"attribute_based"</tt> </tt>
+</div><a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-name">class_dict</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">"A1"</tt> <tt class="py-op">:</tt> <tt class="py-name">TestElement</tt><tt class="py-op">}</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt id="link-179" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-102', 'lookup', 'link-64');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-103" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-179', 'lookup', 'link-114');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-180" class="py-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-103', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name" targets="Class lxml.etree.AttributeBasedElementClassLookup=lxml.etree.AttributeBasedElementClassLookup-class.html"><a title="lxml.etree.AttributeBasedElementClassLookup" class="py-name" href="#" onclick="return doclink('link-104', 'AttributeBasedElementClassLookup', 'link-104');">AttributeBasedElementClassLookup</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-string">"a1"</tt><tt class="py-op">,</tt> <tt class="py-name">class_dict</tt><tt class="py-op">)</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt id="link-105" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-180', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-181" class="py-name" targets="Class lxml.etree.AttributeBasedElementClassLookup=lxml.etree.AttributeBasedElementClassLookup-class.html"><a title="lxml.etree.AttributeBasedElementClassLookup" class="py-name" href="#" onclick="return doclink('link-181', 'AttributeBasedElementClassLookup', 'link-181');">AttributeBasedElementClassLookup</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">            <tt class="py-string">"a1"</tt><tt class="py-op">,</tt> <tt class="py-name">class_dict</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">        <tt id="link-182" class="py-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-105', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-106', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-107" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-182', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-183', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-184" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-107', 'lookup', 'link-64');">lookup</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">        <tt id="link-108" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-108', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-109" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-184', 'lookup', 'link-114');">lookup</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt id="link-185" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-185', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-186" class="py-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-109', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-186', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-110', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-111" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-187', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-188" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-111', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-112', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-113" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-113', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-114" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-114', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-115', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-116', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-117" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-117', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-118', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.test_custom_lookup"></a><div id="ClassLookupTestCase.test_custom_lookup-def"><a name="L141"></a><tt class="py-lineno">141</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_custom_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_custom_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup">test_custom_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_custom_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_custom_lookup-expanded"><a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"custom"</tt> </tt>
-</div><a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-119" 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.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-188', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-189', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-190', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-191" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-191', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-192" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-192', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-193', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-194" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-194', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-195" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-195', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_custom_lookup"></a><div id="ClassLookupTestCase.test_custom_lookup-def"><a name="L198"></a><tt class="py-lineno">198</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_custom_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_custom_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup">test_custom_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_custom_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_custom_lookup-expanded"><a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</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 class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"custom"</tt> </tt>
+</div><a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</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">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</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">if</tt> <tt id="link-196" 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-119', 'name', 'link-119');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'c1'</tt><tt class="py-op">:</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">TestElement</tt> </tt>
-</div></div><a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt id="link-120" class="py-name"><a title="lxml.etree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-196', 'name', 'link-152');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'c1'</tt><tt class="py-op">:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">TestElement</tt> </tt>
+</div></div><a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt id="link-197" class="py-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-120', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-121', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">        <tt id="link-122" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-122', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-123" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-197', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-198', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt id="link-199" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-199', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-200" class="py-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-123', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-200', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-124', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-125" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-201', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-202" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-125', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-126', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-127" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-127', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-128" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-128', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-129" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-129', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-130', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-131" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-131', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-132', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.test_custom_lookup_ns_fallback"></a><div id="ClassLookupTestCase.test_custom_lookup_ns_fallback-def"><a name="L158"></a><tt class="py-lineno">158</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_custom_lookup_ns_fallback-toggle" onclick="return toggle('ClassLookupTestCase.test_custom_lookup_ns_fallback');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_custom_lookup_ns_fallback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_custom_lookup_ns_fallback-expanded"><a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement1</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"custom"</tt> </tt>
-</div><a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement2</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"nsclasses"</tt> </tt>
-</div><a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-133" class="py-name"><a title="lxml.etree.DTD.name
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-202', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-203', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-204" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-204', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-205" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-205', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-206" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-206', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</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">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-207', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-208" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-208', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-209" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-209', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_custom_lookup_ns_fallback"></a><div id="ClassLookupTestCase.test_custom_lookup_ns_fallback-def"><a name="L215"></a><tt class="py-lineno">215</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_custom_lookup_ns_fallback-toggle" onclick="return toggle('ClassLookupTestCase.test_custom_lookup_ns_fallback');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_custom_lookup_ns_fallback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_custom_lookup_ns_fallback-expanded"><a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement1</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</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">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"custom"</tt> </tt>
+</div><a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement2</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</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">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"nsclasses"</tt> </tt>
+</div><a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-210" 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-133', 'name', 'link-119');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'c1'</tt><tt class="py-op">:</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">TestElement1</tt> </tt>
-</div></div><a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt id="link-134" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-210', 'name', 'link-152');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'c1'</tt><tt class="py-op">:</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">TestElement1</tt> </tt>
+</div></div><a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt id="link-211" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-134', 'lookup', 'link-64');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-135" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-211', 'lookup', 'link-114');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-212" class="py-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-135', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.etree.ElementNamespaceClassLookup" class="py-name" href="#" onclick="return doclink('link-136', 'ElementNamespaceClassLookup', 'link-66');">ElementNamespaceClassLookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt id="link-137" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-212', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree.ElementNamespaceClassLookup" class="py-name" href="#" onclick="return doclink('link-213', 'ElementNamespaceClassLookup', 'link-116');">ElementNamespaceClassLookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">        <tt id="link-214" class="py-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-137', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-138', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-139" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-214', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-215', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-216" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-139', 'lookup', 'link-64');">lookup</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">        <tt id="link-140" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-140', 'ns', 'link-70');">ns</a></tt> <tt class="py-op">=</tt> <tt id="link-141" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-216', 'lookup', 'link-114');">lookup</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">        <tt id="link-217" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-217', 'ns', 'link-120');">ns</a></tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-141', 'lookup', 'link-64');">lookup</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="lxml.etree.ElementNamespaceClassLookup.get_namespace" class="py-name" href="#" onclick="return doclink('link-142', 'get_namespace', 'link-72');">get_namespace</a></tt><tt class="py-op">(</tt><tt class="py-string">"otherNS"</tt><tt class="py-op">)</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt id="link-143" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-143', 'ns', 'link-70');">ns</a></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-name">TestElement2</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt id="link-144" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-144', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-145" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-218', 'lookup', 'link-114');">lookup</a></tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="lxml.etree.ElementNamespaceClassLookup.get_namespace" class="py-name" href="#" onclick="return doclink('link-219', 'get_namespace', 'link-122');">get_namespace</a></tt><tt class="py-op">(</tt><tt class="py-string">"otherNS"</tt><tt class="py-op">)</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt id="link-220" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-220', 'ns', 'link-120');">ns</a></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-name">TestElement2</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt id="link-221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-221', 'root', 'link-21');">root</a></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-145', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="lxml.etree.XML
+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.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-146', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-147" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-223', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-224" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-147', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-148', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-149" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-149', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-150', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-151" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-151', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">                          <tt class="py-name">TestElement1</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-152', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-153', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-154" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-154', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-155" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-155', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">                          <tt class="py-name">TestElement2</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.test_parser_based_lookup"></a><div id="ClassLookupTestCase.test_parser_based_lookup-def"><a name="L184"></a><tt class="py-lineno">184</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_parser_based_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_parser_based_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup">test_parser_based_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_parser_based_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_parser_based_lookup-expanded"><a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"parser_based"</tt> </tt>
-</div><a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line"> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt id="link-156" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-224', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-225', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-226" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-226', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-227" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-227', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-228" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-228', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">                          <tt class="py-name">TestElement1</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-229', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-230" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-230', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-231" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-231', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-232" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-232', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">                          <tt class="py-name">TestElement2</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_parser_based_lookup"></a><div id="ClassLookupTestCase.test_parser_based_lookup-def"><a name="L241"></a><tt class="py-lineno">241</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_parser_based_lookup-toggle" onclick="return toggle('ClassLookupTestCase.test_parser_based_lookup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup">test_parser_based_lookup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_parser_based_lookup-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_parser_based_lookup-expanded"><a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">            <tt class="py-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"parser_based"</tt> </tt>
+</div><a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt id="link-233" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-156', 'lookup', 'link-64');">lookup</a></tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-233', 'lookup', 'link-114');">lookup</a></tt> <tt class="py-op">=</tt> <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-157', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-158" class="py-name" targets="Class lxml.etree.ParserBasedElementClassLookup=lxml.etree.ParserBasedElementClassLookup-class.html"><a title="lxml.etree.ParserBasedElementClassLookup" class="py-name" href="#" onclick="return doclink('link-158', 'ParserBasedElementClassLookup', 'link-158');">ParserBasedElementClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt id="link-159" class="py-name"><a title="lxml.etree
+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" targets="Class lxml.etree.ParserBasedElementClassLookup=lxml.etree.ParserBasedElementClassLookup-class.html"><a title="lxml.etree.ParserBasedElementClassLookup" class="py-name" href="#" onclick="return doclink('link-235', 'ParserBasedElementClassLookup', 'link-235');">ParserBasedElementClassLookup</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">        <tt id="link-236" class="py-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-159', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-160', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-161" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-236', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-237', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-238" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
-lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-161', 'lookup', 'link-64');">lookup</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line"> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">TestElement</tt> </tt>
-</div></div><a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt id="link-162" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-162', 'parser', 'link-83');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-163" class="py-name"><a title="lxml.etree
+lxml.html.HtmlElementClassLookup.lookup" class="py-name" href="#" onclick="return doclink('link-238', 'lookup', 'link-114');">lookup</a></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 class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</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 class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</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 class="py-keyword">return</tt> <tt class="py-name">TestElement</tt> </tt>
+</div></div><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 id="link-239" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-239', 'parser', 'link-133');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-240" class="py-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-163', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-164', 'XMLParser', 'link-85');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt id="link-165" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-165', 'parser', 'link-83');">parser</a></tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-166', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt id="link-167" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-167', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-168" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-240', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-241', 'XMLParser', 'link-135');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">        <tt id="link-242" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-242', 'parser', 'link-133');">parser</a></tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-243', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<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 id="link-244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-244', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-245" class="py-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-168', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-169" 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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-245', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-246" 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-169', 'parse', 'link-169');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-170" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-246', 'parse', 'link-246');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-247" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-170', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-171" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-171', 'parser', 'link-83');">parser</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-172" 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-172', 'getroot', 'link-172');">getroot</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-173', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-174" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-174', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt id="link-175" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-175', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-176" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-247', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-248" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-248', 'parser', 'link-133');">parser</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-249" 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-249', 'getroot', 'link-249');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-250" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-250', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</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">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-251" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-251', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">,</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">                          <tt class="py-name">TestElement</tt><tt class="py-op">.</tt><tt class="py-name">FIND_ME</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt id="link-252" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-252', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-253" class="py-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-176', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-253', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-254" 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-177', 'parse', 'link-169');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-178" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-254', 'parse', 'link-246');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-255" class="py-name"><a title="lxml.tests.test_classlookup.xml_str
 lxml.tests.test_objectify.xml_str
-lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-178', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-179', 'getroot', 'link-172');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-180" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-180', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-181" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-181', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-182" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-182', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-183', 'assertFalse', 'link-80');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-184" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-184', 'hasattr', 'link-81');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-185" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-185', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</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="ClassLookupTestCase.test_class_lookup_reentry"></a><div id="ClassLookupTestCase.test_class_lookup_reentry-def"><a name="L208"></a><tt class="py-lineno">208</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_class_lookup_reentry-toggle" onclick="return toggle('ClassLookupTestCase.test_class_lookup_reentry');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry">test_class_lookup_reentry</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_class_lookup_reentry-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_class_lookup_reentry-expanded"><a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt id="link-186" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.xml_str" class="py-name" href="#" onclick="return doclink('link-255', 'xml_str', 'link-17');">xml_str</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-256', 'getroot', 'link-249');">getroot</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-name">self</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-257', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-258" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-258', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-259" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-259', 'root', 'link-21');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-260', 'assertFalse', 'link-130');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-261" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-261', 'hasattr', 'link-131');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-262" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-262', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'FIND_ME'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_class_lookup_reentry"></a><div id="ClassLookupTestCase.test_class_lookup_reentry-def"><a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_class_lookup_reentry-toggle" onclick="return toggle('ClassLookupTestCase.test_class_lookup_reentry');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry">test_class_lookup_reentry</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_class_lookup_reentry-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_class_lookup_reentry-expanded"><a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">        <tt id="link-263" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-186', 'XML', 'link-23');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-263', 'XML', 'link-23');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-264" class="py-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-187', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-264', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-265" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-188', 'XML', 'link-23');">XML</a></tt> </tt>
-<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-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</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">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"here"</tt> </tt>
-</div><a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line"> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">        <tt id="link-189" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-189', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</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">el</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-190" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-190', 'root', 'link-21');">root</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 class="py-comment"># not in the parser</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">el</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt id="link-191" class="py-name"><a title="lxml.etree.DTD.name
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-265', 'XML', 'link-23');">XML</a></tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestElement</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</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-name">FIND_ME</tt> <tt class="py-op">=</tt> <tt class="py-string">"here"</tt> </tt>
+</div><a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">        <tt id="link-266" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-266', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">t</tt><tt class="py-op">,</tt> <tt class="py-param">d</tt><tt class="py-op">,</tt> <tt class="py-param">ns</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-267" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-267', 'root', 'link-21');">root</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 class="py-comment"># not in the parser</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">el</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> <tt id="link-268" 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-191', 'name', 'link-119');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"a"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-op">[</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">self</tt><tt class="py-op">.</tt><tt class="py-name">el</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 id="link-193" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-193', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="lxml.etree._Element.find
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-268', 'name', 'link-152');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"a"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-op">[</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">self</tt><tt class="py-op">.</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-269', 'append', 'link-65');">append</a></tt><tt class="py-op">(</tt><tt id="link-270" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-270', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt id="link-271" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-194', 'find', 'link-25');">find</a></tt><tt class="py-op">(</tt><tt id="link-195" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-271', 'find', 'link-25');">find</a></tt><tt class="py-op">(</tt><tt id="link-272" 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-195', 'name', 'link-119');">name</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">TestElement</tt> </tt>
-</div></div><a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">        <tt id="link-196" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-196', 'parser', 'link-83');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="lxml.etree
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-272', 'name', 'link-152');">name</a></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-keyword">return</tt> <tt class="py-name">TestElement</tt> </tt>
+</div></div><a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt id="link-273" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-273', 'parser', 'link-133');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-274" class="py-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-197', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-198', 'XMLParser', 'link-85');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">        <tt id="link-199" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-199', 'parser', 'link-83');">parser</a></tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-200', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt id="link-201" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-201', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-202" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-274', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-275" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-275', 'XMLParser', 'link-135');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">        <tt id="link-276" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-276', 'parser', 'link-133');">parser</a></tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-277', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">MyLookup</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>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt id="link-278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-278', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-279" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-202', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-203" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-203', '_bytes', 'link-15');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;A&lt;/a&gt;&lt;b xmlns="test"&gt;B&lt;/b&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">                   <tt id="link-204" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-204', 'parser', 'link-83');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"> </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 id="link-205" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-205', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-279', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt id="link-280" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-280', '_bytes', 'link-15');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;A&lt;/a&gt;&lt;b xmlns="test"&gt;B&lt;/b&gt;&lt;/root&gt;'</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 id="link-281" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-281', 'parser', 'link-133');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-282', 'root', 'link-21');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-283" 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-206', 'tag', 'link-57');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-207" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-207', 'root', 'link-21');">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-208" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-283', 'tag', 'link-57');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-284" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-284', 'root', 'link-21');">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-285" 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-208', 'tag', 'link-57');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-209" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-209', 'root', 'link-21');">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-210" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-285', 'tag', 'link-57');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</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">del</tt> <tt class="py-name">a</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-286" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-286', 'root', 'link-21');">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-287" 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-210', 'tag', 'link-57');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"> </tt>
-<a name="ClassLookupTestCase.test_lookup_without_fallback"></a><div id="ClassLookupTestCase.test_lookup_without_fallback-def"><a name="L236"></a><tt class="py-lineno">236</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_lookup_without_fallback-toggle" onclick="return toggle('ClassLookupTestCase.test_lookup_without_fallback');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ClassLookupTestCase.test_lookup_without_fallback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_lookup_without_fallback-expanded"><a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Lookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</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-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="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">                 <tt class="py-comment"># no super call here, so no fallback is set</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">                 <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">             <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node_type</tt><tt class="py-op">,</tt> <tt class="py-param">document</tt><tt class="py-op">,</tt> <tt class="py-param">namespace</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">                 <tt class="py-keyword">return</tt> <tt class="py-name">Foo</tt> </tt>
-</div></div><a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Foo</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">             <tt class="py-keyword">def</tt> <tt class="py-def-name">custom</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="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">                 <tt class="py-keyword">return</tt> <tt class="py-string">"test"</tt> </tt>
-</div></div><a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt id="link-211" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-211', 'parser', 'link-83');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-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-212', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-213', 'XMLParser', 'link-85');">XMLParser</a></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-214" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-214', 'parser', 'link-83');">parser</a></tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-215', 'set_element_class_lookup', 'link-61');">set_element_class_lookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">Lookup</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 id="link-216" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-216', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-217" class="py-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.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-287', 'tag', 'link-57');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"> </tt>
+<a name="ClassLookupTestCase.test_lookup_without_fallback"></a><div id="ClassLookupTestCase.test_lookup_without_fallback-def"><a name="L293"></a><tt class="py-lineno">293</tt> <a class="py-toggle" href="#" id="ClassLookupTestCase.test_lookup_without_fallback-toggle" onclick="return toggle('ClassLookupTestCase.test_lookup_without_fallback');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ClassLookupTestCase.test_lookup_without_fallback-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ClassLookupTestCase.test_lookup_without_fallback-expanded"><a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Lookup</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">CustomElementClassLookup</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</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="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">                 <tt class="py-comment"># no super call here, so no fallback is set</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">                 <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">             <tt class="py-keyword">def</tt> <tt class="py-def-name">lookup</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">node_type</tt><tt class="py-op">,</tt> <tt class="py-param">document</tt><tt class="py-op">,</tt> <tt class="py-param">namespace</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">                 <tt class="py-keyword">return</tt> <tt class="py-name">Foo</tt> </tt>
+</div></div><a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Foo</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">             <tt class="py-keyword">def</tt> <tt class="py-def-name">custom</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="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">                 <tt class="py-keyword">return</tt> <tt class="py-string">"test"</tt> </tt>
+</div></div><a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">        <tt id="link-288" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-288', 'parser', 'link-133');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-289" class="py-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-289', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-290" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-290', 'XMLParser', 'link-135');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">        <tt id="link-291" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-291', 'parser', 'link-133');">parser</a></tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="lxml.etree.set_element_class_lookup" class="py-name" href="#" onclick="return doclink('link-292', 'set_element_class_lookup', 'link-111');">set_element_class_lookup</a></tt><tt class="py-op">(</tt> <tt class="py-name">Lookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">        <tt id="link-293" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-293', 'root', 'link-21');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-294" class="py-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-294', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-218', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo/&gt;'</tt><tt class="py-op">,</tt> <tt id="link-219" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-219', 'parser', 'link-83');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">,</tt> <tt id="link-220" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-220', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">custom</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L257"></a><tt class="py-lineno">257</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_classlookup-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="L258"></a><tt class="py-lineno">258</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="L259"></a><tt class="py-lineno">259</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-221" class="py-name"><a title="lxml.tests.test_classlookup.ClassLookupTestCase" class="py-name" href="#" onclick="return doclink('link-221', 'ClassLookupTestCase', 'link-62');">ClassLookupTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</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">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"> </tt>
-<a name="L262"></a><tt class="py-lineno">262</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="L263"></a><tt class="py-lineno">263</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="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-295', 'XML', 'link-23');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo/&gt;'</tt><tt class="py-op">,</tt> <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-133');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line"> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">,</tt> <tt id="link-297" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-297', 'root', 'link-21');">root</a></tt><tt class="py-op">.</tt><tt class="py-name">custom</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L314"></a><tt class="py-lineno">314</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_classlookup-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="L315"></a><tt class="py-lineno">315</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="L316"></a><tt class="py-lineno">316</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-298" class="py-name" targets="Class lxml.tests.test_classlookup.ProxyTestCase=lxml.tests.test_classlookup.ProxyTestCase-class.html"><a title="lxml.tests.test_classlookup.ProxyTestCase" class="py-name" href="#" onclick="return doclink('link-298', 'ProxyTestCase', 'link-298');">ProxyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</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-299" class="py-name"><a title="lxml.tests.test_classlookup.ClassLookupTestCase" class="py-name" href="#" onclick="return doclink('link-299', 'ClassLookupTestCase', 'link-112');">ClassLookupTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</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">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"> </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">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</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="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -727,7 +947,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4b309d67ed771deca97333a49e39b02cee801b1e..59f84b7b192cb589da2c8ed4ea31deddbbbf0895 100644 (file)
@@ -165,6 +165,22 @@ Test cases for different Element class lookup mechanisms.
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_evil_class_lookup"></a><span class="summary-sig-name">test_evil_class_lookup</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_classlookup-pysrc.html#ClassLookupTestCase.test_evil_class_lookup">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr>
@@ -556,7 +572,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0cf91df496f0ac734f2cebc6092e38c5dedfaf1..468c9f8aaa3a28c9ac05d91e383f3c71660be905 100644 (file)
@@ -182,6 +182,70 @@ Basic tests for element proxy behaviour.
       
     </td>
   </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_element_base"></a><span class="summary-sig-name">test_element_base</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_classlookup-pysrc.html#ProxyTestCase.test_element_base">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_element_base_children"></a><span class="summary-sig-name">test_element_base_children</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_classlookup-pysrc.html#ProxyTestCase.test_element_base_children">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_comment_base"></a><span class="summary-sig-name">test_comment_base</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_classlookup-pysrc.html#ProxyTestCase.test_comment_base">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_pi_base"></a><span class="summary-sig-name">test_pi_base</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_classlookup-pysrc.html#ProxyTestCase.test_pi_base">source&nbsp;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>:
@@ -434,7 +498,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9b1d678efb41953b28d964e3628d3d8e5d77a037..92471c7afbbe823fcd6dfd2b7f1085dfea6fa994 100644 (file)
     </table>
   </td>
 </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-        <a name="cssselect"></a><span class="summary-name">cssselect</span> = <code title="None">None</code><br />
-      hash(x)
-    </td>
-  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fcc392d4f40b3fabc391cd737b4792abd06efbcb..1d6a5cc1413673b603b096e0db9b3bdd3981b104 100644 (file)
@@ -72,13 +72,11 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L5"></a><tt class="py-lineno"> 5</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-2" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-2', 'lxml', 'link-0');">lxml</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Package lxml.tests=lxml.tests-module.html"><a title="lxml.tests" class="py-name" href="#" onclick="return doclink('link-3', 'tests', 'link-3');">tests</a></tt><tt class="py-op">.</tt><tt id="link-4" 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-4', 'common_imports', 'link-4');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">doctest</tt><tt class="py-op">,</tt> <tt id="link-5" 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-5', 'HelperTestCase', 'link-5');">HelperTestCase</a></tt><tt class="py-op">,</tt> <tt id="link-6" class="py-name" targets="Variable lxml.tests.common_imports.skipif=lxml.tests.common_imports-module.html#skipif"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-6', 'skipif', 'link-6');">skipif</a></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">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Module lxml.cssselect=lxml.cssselect-module.html,Method lxml.html.HtmlMixin.cssselect()=lxml.html.HtmlMixin-class.html#cssselect,Variable lxml.tests.test_css.cssselect=lxml.tests.test_css-module.html#cssselect"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-7', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt id="link-7" class="py-name" targets="Module lxml.cssselect=lxml.cssselect-module.html,Method lxml.html.HtmlMixin.cssselect()=lxml.html.HtmlMixin-class.html#cssselect"><a title="lxml.cssselect
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-7', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
 <a name="L9"></a><tt class="py-lineno"> 9</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="L10"></a><tt class="py-lineno">10</tt>  <tt class="py-line">    <tt id="link-8" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-8', 'cssselect', 'link-7');">cssselect</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-8', 'cssselect', 'link-7');">cssselect</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</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>
 <a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt id="link-9" class="py-name" targets="Variable lxml.etree.ErrorDomains.HTML=lxml.etree.ErrorDomains-class.html#HTML,Function lxml.etree.HTML()=lxml.etree-module.html#HTML,Variable lxml.html.builder.HTML=lxml.html.builder-module.html#HTML,Variable lxml.tests.test_css.HTML=lxml.tests.test_css-module.html#HTML"><a title="lxml.etree.ErrorDomains.HTML
@@ -113,8 +111,7 @@ lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return d
 <a name="L27"></a><tt class="py-lineno">27</tt>  <tt class="py-line"> </tt>
 <a name="L28"></a><tt class="py-lineno">28</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">count</tt><tt class="py-op">(</tt><tt class="py-param">selector</tt><tt class="py-op">,</tt> <tt class="py-param">expected_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>
 <a name="L29"></a><tt class="py-lineno">29</tt>  <tt class="py-line">            <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">div</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-17', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">(</tt><tt class="py-name">selector</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-17', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">(</tt><tt class="py-name">selector</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="L30"></a><tt class="py-lineno">30</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">expected_count</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L31"></a><tt class="py-lineno">31</tt>  <tt class="py-line"> </tt>
 <a name="L32"></a><tt class="py-lineno">32</tt>  <tt class="py-line">        <tt class="py-name">count</tt><tt class="py-op">(</tt><tt class="py-string">'div'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
@@ -134,33 +131,27 @@ lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink(
 <a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line">        <tt class="py-name">count</tt><tt class="py-op">(</tt><tt class="py-string">':contains("LInk")'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">translator</tt><tt class="py-op">=</tt><tt class="py-string">'xml'</tt><tt class="py-op">)</tt> </tt>
 <a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line">        <tt class="py-comment"># ... but not in upstream cssselect</tt> </tt>
 <a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt id="link-18" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-18', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-18', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
 <a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">        <tt class="py-name">count</tt><tt class="py-op">(</tt><tt class="py-string">':contains("link")'</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">translator</tt><tt class="py-op">=</tt><tt id="link-19" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-19', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">.</tt><tt class="py-name">HTMLTranslator</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-19', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">.</tt><tt class="py-name">HTMLTranslator</tt><tt class="py-op">(</tt><tt class="py-op">)</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">count</tt><tt class="py-op">(</tt><tt class="py-string">':contains("LInk")'</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">translator</tt><tt class="py-op">=</tt><tt id="link-20" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-20', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">.</tt><tt class="py-name">HTMLTranslator</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-20', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">.</tt><tt class="py-name">HTMLTranslator</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div></div><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>  <tt class="py-line"> </tt>
 <a name="test_suite"></a><div id="test_suite-def"><a name="L53"></a><tt class="py-lineno">53</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_css-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="L54"></a><tt class="py-lineno">54</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="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt id="link-21" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-21', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-21', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
 <a name="L57"></a><tt class="py-lineno">57</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="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-comment"># no 'cssselect' installed</tt> </tt>
 <a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Skipping tests in lxml.cssselect - external cssselect package is not installed"</tt><tt class="py-op">)</tt> </tt>
 <a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
 <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>  <tt class="py-line">    <tt class="py-keyword">import</tt> <tt id="link-22" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-22', 'lxml', 'link-0');">lxml</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-23', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-23', 'cssselect', 'link-7');">cssselect</a></tt> </tt>
 <a name="L63"></a><tt class="py-lineno">63</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-name">doctest</tt><tt class="py-op">.</tt><tt class="py-name">DocTestSuite</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-24', 'lxml', 'link-0');">lxml</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="lxml.cssselect
-lxml.html.HtmlMixin.cssselect
-lxml.tests.test_css.cssselect" class="py-name" href="#" onclick="return doclink('link-25', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+lxml.html.HtmlMixin.cssselect" class="py-name" href="#" onclick="return doclink('link-25', 'cssselect', 'link-7');">cssselect</a></tt><tt class="py-op">)</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">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-26" class="py-name" targets="Class lxml.tests.test_css.CSSTestCase=lxml.tests.test_css.CSSTestCase-class.html"><a title="lxml.tests.test_css.CSSTestCase" class="py-name" href="#" onclick="return doclink('link-26', 'CSSTestCase', 'link-26');">CSSTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 <a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
 </div><a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line"> </tt><script type="text/javascript">
@@ -201,7 +192,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 39f3cbff4fc248c9629853a1842af283da99343e..a307408302b4c7b7bc2943b4a43849660458ffac 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a6a283702ea55cbeefc22ad907f357ec6f769c6f..97506f781e5dac6eb77162444ec585b4e646992d 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to DTD parsing and validation
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d5dd1d2113c0219ab75dceec75422a40e9d20007..81b9ce8ffef690ad9c54cd2b933540615022ec01 100644 (file)
@@ -217,7 +217,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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-39', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-40" 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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-39', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-40', 'XMLParser', 'link-40');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt id="link-41" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-41', 'xml', 'link-41');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-42', '_bytes', 'link-10');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE b SYSTEM "%s"&gt;&lt;b&gt;&lt;a/&gt;&lt;/b&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-43" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-43', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test.dtd"</tt><tt class="py-op">)</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">assertRaises</tt><tt class="py-op">(</tt><tt id="link-44" class="py-name"><a title="lxml.etree
@@ -251,6 +252,7 @@ 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-55', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-56', 'XMLParser', 'link-40');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</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 id="link-57" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-57', 'xml', 'link-41');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-58" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-58', '_bytes', 'link-10');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE b SYSTEM "%s"&gt;&lt;b&gt;&lt;a/&gt;&lt;/b&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">dtd_filename</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">assertRaises</tt><tt class="py-op">(</tt><tt id="link-59" class="py-name"><a title="lxml.etree
@@ -293,6 +295,7 @@ 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-75', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-76', 'XMLParser', 'link-40');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt id="link-77" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-77', 'xml', 'link-41');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-78" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-78', 'fileInTestDir', 'link-13');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test.dtd"</tt><tt class="py-op">)</tt> </tt>
 <a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt id="link-79" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-79', 'root', 'link-20');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name"><a title="lxml.etree
@@ -313,6 +316,7 @@ 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-86', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-87', 'XMLParser', 'link-40');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt id="link-88" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-88', 'xml', 'link-41');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE a SYSTEM "test.dtd"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt> </tt>
 <a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt id="link-89" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-89', 'root', 'link-20');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name"><a title="lxml.etree
@@ -436,6 +440,7 @@ 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-141', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-142', 'XMLParser', 'link-40');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"> </tt>
 <a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-143" class="py-name"><a title="lxml.etree
@@ -579,6 +584,7 @@ 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-189', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-190', 'XMLParser', 'link-40');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">        <tt id="link-191" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-191', 'xml', 'link-41');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE a SYSTEM "test.dtd"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt> </tt>
 <a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt id="link-192" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-192', 'root', 'link-20');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="lxml.etree
@@ -649,7 +655,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8c010ecfd27da9eaf880d2752f8c7b9438cce789..11d5df378667e04d2da9e7e7c591b263a891d86d 100644 (file)
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td><span class="summary-sig"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd" class="summary-sig-name">test_iterparse_file_dtd</a>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td><span class="summary-sig"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd" class="summary-sig-name">test_iterparse_file_dtd</a>(<span class="summary-sig-arg">*args</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_dtd-pysrc.html#ETreeDtdTestCase.test_iterparse_file_dtd">source&nbsp;code</a></span>
             
 <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">test_iterparse_file_dtd</span>(<span class="sig-arg">self</span>)</span>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">test_iterparse_file_dtd</span>(<span class="sig-arg">*args</span>,
+        <span class="sig-arg">**kwargs</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.tests.test_dtd-pysrc.html#ETreeDtdTestCase.test_iterparse_file_dtd">source&nbsp;code</a></span>&nbsp;
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a9178a431babef56df1ed37d54a2dac3291ed356..0ff91f33bb5b1961e5ac45fe23e03acee7f2fe79 100644 (file)
@@ -271,7 +271,7 @@ for IO related test cases.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 286a27f4b1072163ab6ba84e459f3c4657751783..131d324a2bb53e70ea5129c3689e06151a4b7797 100644 (file)
@@ -188,390 +188,397 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 <a name="L42"></a><tt class="py-lineno">  42</tt>  <tt class="py-line">    <tt id="link-32" class="py-name" targets="Variable lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#required_versions_ET"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-32', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 <a name="L43"></a><tt class="py-lineno">  43</tt>  <tt class="py-line">    <tt id="link-33" class="py-name" targets="Variable lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#required_versions_cET"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET" class="py-name" href="#" onclick="return doclink('link-33', 'required_versions_cET', 'link-33');">required_versions_cET</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 <a name="L44"></a><tt class="py-lineno">  44</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element"></a><div id="_ETreeTestCaseBase.test_element-def"><a name="L45"></a><tt class="py-lineno">  45</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element-expanded"><a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="lxml.etree
+<a name="_ETreeTestCaseBase.XMLParser"></a><div id="_ETreeTestCaseBase.XMLParser-def"><a name="L45"></a><tt class="py-lineno">  45</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.XMLParser-toggle" onclick="return toggle('_ETreeTestCaseBase.XMLParser');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser">XMLParser</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="_ETreeTestCaseBase.XMLParser-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.XMLParser-expanded"><a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line">            <tt id="link-34" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-34', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-35" class="py-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-34', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-35" 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.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-35', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-36', 'XMLParser', 'link-34');">XMLParser</a></tt> </tt>
+<a name="L48"></a><tt class="py-lineno">  48</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="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt> <tt class="py-string">'ElementTree'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-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-37', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line">            <tt id="link-38" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-38', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-39" class="py-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-39', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Class lxml.etree.TreeBuilder=lxml.etree.TreeBuilder-class.html,Class xml.etree.ElementTree.TreeBuilder=xml.etree.ElementTree.TreeBuilder-class.html"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-40', 'TreeBuilder', 'link-40');">TreeBuilder</a></tt> </tt>
+<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-41" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-41', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L52"></a><tt class="py-lineno">  52</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element"></a><div id="_ETreeTestCaseBase.test_element-def"><a name="L53"></a><tt class="py-lineno">  53</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element-expanded"><a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-42" class="py-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-42', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-43" 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-35', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L48"></a><tt class="py-lineno">  48</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-36" 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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-43', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-44" 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-36', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-37" 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
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-44', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</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-name">e</tt><tt class="py-op">.</tt><tt id="link-45" 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-37', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-38" 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-38', 'tail', 'link-38');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_simple"></a><div id="_ETreeTestCaseBase.test_simple-def"><a name="L52"></a><tt class="py-lineno">  52</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_simple-toggle" onclick="return toggle('_ETreeTestCaseBase.test_simple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_simple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_simple-expanded"><a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line">        <tt id="link-39" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-45', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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-name">e</tt><tt class="py-op">.</tt><tt id="link-46" 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-46', 'tail', 'link-46');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</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="_ETreeTestCaseBase.test_simple"></a><div id="_ETreeTestCaseBase.test_simple-def"><a name="L60"></a><tt class="py-lineno">  60</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_simple-toggle" onclick="return toggle('_ETreeTestCaseBase.test_simple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_simple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_simple-expanded"><a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">        <tt id="link-47" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-39', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-47', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-48" class="py-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-40', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-48', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-41', 'Element', 'link-35');">Element</a></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 id="link-42" 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-42', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-49', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line">         </tt>
+<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line">        <tt id="link-50" 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-50', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-43', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line">        <tt id="link-44" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-44', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-45" 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-45', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-51', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">        <tt id="link-52" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-52', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-53" 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-53', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-54" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-46', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line">        <tt id="link-47" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-47', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-48', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-54', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">        <tt id="link-55" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-55', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-56', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-57" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-49', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line">        <tt id="link-50" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-50', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-51', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-57', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line">        <tt id="link-58" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-58', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-59', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-52', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line">        <tt 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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-53', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-54" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-54', 'root', 'link-42');">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-55" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-60', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</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-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-61" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-61', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-62" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-62', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-63" 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-55', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-56" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-56', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-63', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-64" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-64', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-65" 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-57', 'tag', 'link-36');">tag</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-58', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-65', 'tag', 'link-44');">tag</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">'three'</tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-66', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-67" 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-59', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-60" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-60', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line"> </tt>
-<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">    <tt class="py-comment"># test weird dictionary interaction leading to segfault previously</tt> </tt>
-<a name="_ETreeTestCaseBase.test_weird_dict_interaction"></a><div id="_ETreeTestCaseBase.test_weird_dict_interaction-def"><a name="L66"></a><tt class="py-lineno">  66</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_weird_dict_interaction-toggle" onclick="return toggle('_ETreeTestCaseBase.test_weird_dict_interaction');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction">test_weird_dict_interaction</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_weird_dict_interaction-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_weird_dict_interaction-expanded"><a name="L67"></a><tt class="py-lineno">  67</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-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-67', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-68" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-68', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line">    <tt class="py-comment"># test weird dictionary interaction leading to segfault previously</tt> </tt>
+<a name="_ETreeTestCaseBase.test_weird_dict_interaction"></a><div id="_ETreeTestCaseBase.test_weird_dict_interaction-def"><a name="L74"></a><tt class="py-lineno">  74</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_weird_dict_interaction-toggle" onclick="return toggle('_ETreeTestCaseBase.test_weird_dict_interaction');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction">test_weird_dict_interaction</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_weird_dict_interaction-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_weird_dict_interaction-expanded"><a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line">        <tt id="link-69" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-69', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-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-62', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-70', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-63', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-64" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-64', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-71', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-72', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-73" 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-65', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line">        <tt id="link-66" 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-66', 'add', 'link-66');">add</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
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-73', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">        <tt id="link-74" 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-74', 'add', 'link-74');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-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-67', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-75', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-68', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;Foo&lt;/foo&gt;'</tt><tt class="py-op">)</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 id="link-69" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-69', 'add', 'link-66');">add</a></tt><tt class="py-op">.</tt><tt id="link-70" 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-70', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-76', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;Foo&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<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">assertEqual</tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-77', 'add', 'link-74');">add</a></tt><tt class="py-op">.</tt><tt id="link-78" 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-78', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-79" 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-71', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"foo"</tt><tt class="py-op">)</tt> </tt>
-<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-72', 'add', 'link-66');">add</a></tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-73', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-79', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"foo"</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-80" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-80', 'add', 'link-74');">add</a></tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-81', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-82" 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-74', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"Foo"</tt><tt class="py-op">)</tt> </tt>
-<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line">        <tt id="link-75" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-75', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-76', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-82', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"Foo"</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line">        <tt id="link-83" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-83', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-84', 'append', 'link-53');">append</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-77', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-85', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-78', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'baz'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="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">assertEqual</tt><tt class="py-op">(</tt><tt id="link-79" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-79', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-86', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'baz'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-87" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-87', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-88" 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-80', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</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 id="link-81" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-81', 'root', 'link-42');">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-82" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-88', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-89" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-89', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-90" 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-82', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"baz"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_subelement"></a><div id="_ETreeTestCaseBase.test_subelement-def"><a name="L76"></a><tt class="py-lineno">  76</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement-expanded"><a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">        <tt id="link-83" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-90', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"baz"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_subelement"></a><div id="_ETreeTestCaseBase.test_subelement-def"><a name="L84"></a><tt class="py-lineno">  84</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement-expanded"><a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line">        <tt id="link-91" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-83', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-91', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-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-84', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-92', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-85', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line">        <tt id="link-86" class="py-name" targets="Function lxml.etree.SubElement()=lxml.etree-module.html#SubElement"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-86', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-93', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">        <tt id="link-94" class="py-name" targets="Function lxml.etree.SubElement()=lxml.etree-module.html#SubElement"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-94', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-95" class="py-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-87', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-88', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">         </tt>
-<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line">        <tt id="link-89" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-89', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-95', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-96', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">         </tt>
+<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">        <tt id="link-97" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-97', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-98" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-90', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line">        <tt id="link-91" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-91', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-92" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-92', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">        <tt id="link-93" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-93', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-94" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-94', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">)</tt> </tt>
-<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line">        <tt id="link-95" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-95', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-96', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
-<a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line">        <tt 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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-97" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-97', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-98" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-98', 'root', 'link-42');">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-99" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-98', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line">        <tt id="link-99" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-99', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-100', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">        <tt id="link-101" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-101', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-102', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">        <tt id="link-103" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-103', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-104" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-104', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line">        <tt 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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-105', 'root', 'link-50');">root</a></tt><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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-106" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-106', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-107" 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-99', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-100', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-107', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-108" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-108', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-109" 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-101', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">        <tt 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">'three'</tt><tt class="py-op">,</tt> <tt id="link-102" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-102', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-103" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-109', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line">        <tt 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">'three'</tt><tt class="py-op">,</tt> <tt id="link-110" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-110', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-111" 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-103', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_element_contains"></a><div id="_ETreeTestCaseBase.test_element_contains-def"><a name="L89"></a><tt class="py-lineno">  89</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_contains-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_contains');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_contains-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_contains-expanded"><a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">        <tt id="link-104" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-111', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_element_contains"></a><div id="_ETreeTestCaseBase.test_element_contains-def"><a name="L97"></a><tt class="py-lineno">  97</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_contains-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_contains');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_contains-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_contains-expanded"><a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">        <tt id="link-112" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-104', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-112', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-113" class="py-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-105', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-113', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-106', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">        <tt id="link-107" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-107', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-108" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-114', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line">        <tt id="link-115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-115', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-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-108', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-109', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line"> </tt>
-<a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line">        <tt class="py-name">root1</tt> <tt class="py-op">=</tt> <tt id="link-110" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-116', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-117', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line"> </tt>
+<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">        <tt class="py-name">root1</tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-110', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">        <tt id="link-111" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-111', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root1</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">)</tt> </tt>
-<a name="L95"></a><tt class="py-lineno">  95</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">root1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root1</tt><tt class="py-op">)</tt> </tt>
-<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line"> </tt>
-<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-118', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">        <tt id="link-119" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-119', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root1</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">root1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root1</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line"> </tt>
+<a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-112', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">        <tt id="link-113" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-113', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">)</tt> </tt>
-<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line">        <tt id="link-114" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-114', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
-<a name="L100"></a><tt class="py-lineno"> 100</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">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
-<a name="L101"></a><tt class="py-lineno"> 101</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">root2</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
-<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line"> </tt>
-<a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-115" 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-115', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">root1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
-<a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-116', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root1</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">self</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-117', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_indexing_with_text"></a><div id="_ETreeTestCaseBase.test_element_indexing_with_text-def"><a name="L107"></a><tt class="py-lineno"> 107</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_with_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_indexing_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_with_text-expanded"><a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line">        <tt id="link-118" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-120', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line">        <tt id="link-121" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-121', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno"> 107</tt>  <tt class="py-line">        <tt id="link-122" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-122', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</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">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno"> 109</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">root2</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
+<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line"> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" 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-123', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">root1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-124', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root1</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-125" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-125', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt> <tt class="py-keyword">in</tt> <tt class="py-name">root2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element_indexing_with_text"></a><div id="_ETreeTestCaseBase.test_element_indexing_with_text-def"><a name="L115"></a><tt class="py-lineno"> 115</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_with_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_indexing_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_with_text-expanded"><a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line">        <tt id="link-126" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-118', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-126', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-127" class="py-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-119', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-127', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-128" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-120', 'ElementTree', 'link-11');">ElementTree</a></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-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;Test&lt;one&gt;One&lt;/one&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-128', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line">         </tt>
+<a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;Test&lt;one&gt;One&lt;/one&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-129" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-121', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line">        <tt id="link-122" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-122', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-123', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</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 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 id="link-124" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-124', 'root', 'link-42');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-125" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-125', 'root', 'link-42');">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-126" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-129', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line">        <tt id="link-130" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-130', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-131', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</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 id="link-132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-132', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-133" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-133', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-134" 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-126', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-127" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-127', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_element_indexing_with_text2"></a><div id="_ETreeTestCaseBase.test_element_indexing_with_text2-def"><a name="L117"></a><tt class="py-lineno"> 117</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_with_text2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_with_text2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_indexing_with_text2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_with_text2-expanded"><a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line">        <tt id="link-128" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-134', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-135', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_element_indexing_with_text2"></a><div id="_ETreeTestCaseBase.test_element_indexing_with_text2-def"><a name="L125"></a><tt class="py-lineno"> 125</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_with_text2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_with_text2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_indexing_with_text2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_with_text2-expanded"><a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line">        <tt id="link-136" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-128', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-136', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-137" class="py-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-129', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-130" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-137', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-130', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">         </tt>
-<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one&gt;One&lt;/one&gt;&lt;two&gt;Two&lt;/two&gt;hm&lt;three&gt;Three&lt;/three&gt;&lt;/doc&gt;'</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-131" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-138', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line">         </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one&gt;One&lt;/one&gt;&lt;two&gt;Two&lt;/two&gt;hm&lt;three&gt;Three&lt;/three&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-139" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-131', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line">        <tt id="link-132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-132', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-133', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">        <tt 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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-134" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-134', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-135', 'root', 'link-42');">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-136" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-139', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line">        <tt id="link-140" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-140', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-141', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">        <tt 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">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-142" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-142', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-143" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-143', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-144" 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-136', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-137" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-137', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-144', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-145" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-145', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-146" 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-138', 'tag', 'link-36');">tag</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt id="link-139" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-139', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-146', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">        <tt 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">'three'</tt><tt class="py-op">,</tt> <tt id="link-147" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-147', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-148" 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-140', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_indexing_only_text"></a><div id="_ETreeTestCaseBase.test_element_indexing_only_text-def"><a name="L128"></a><tt class="py-lineno"> 128</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_only_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_only_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_indexing_only_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_only_text-expanded"><a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line">        <tt id="link-141" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-148', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element_indexing_only_text"></a><div id="_ETreeTestCaseBase.test_element_indexing_only_text-def"><a name="L136"></a><tt class="py-lineno"> 136</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_only_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_only_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_indexing_only_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_only_text-expanded"><a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line">        <tt id="link-149" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-141', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-142" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-149', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-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-142', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-150', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-143', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line">         </tt>
-<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;Test&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-144" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-151', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">         </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;Test&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-152" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-144', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line">        <tt id="link-145" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-145', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-146', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-147" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-147', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_indexing_negative"></a><div id="_ETreeTestCaseBase.test_element_indexing_negative-def"><a name="L136"></a><tt class="py-lineno"> 136</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_indexing_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_negative-expanded"><a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line">        <tt id="link-148" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-152', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">        <tt id="link-153" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-153', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-154', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-155" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-155', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element_indexing_negative"></a><div id="_ETreeTestCaseBase.test_element_indexing_negative-def"><a name="L144"></a><tt class="py-lineno"> 144</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_indexing_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_indexing_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_indexing_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_indexing_negative-expanded"><a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">        <tt id="link-156" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-148', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-156', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-157" class="py-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-149', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-157', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-150', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">        <tt id="link-151" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-151', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-158', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">        <tt id="link-159" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-159', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-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-152', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-153" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-153', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-154" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-160', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-161', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-154', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-155" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-155', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-156" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-156', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-157', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-158" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-162', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-163" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-163', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-164" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-164', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-165" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-165', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-166" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-158', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line">        <tt 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">2</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_elementtree"></a><div id="_ETreeTestCaseBase.test_elementtree-def"><a name="L152"></a><tt class="py-lineno"> 152</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree-expanded"><a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line">        <tt id="link-159" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-166', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line">        <tt 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">2</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_elementtree"></a><div id="_ETreeTestCaseBase.test_elementtree-def"><a name="L160"></a><tt class="py-lineno"> 160</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree-expanded"><a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line">        <tt id="link-167" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-159', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-167', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-168" class="py-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-160', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-168', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-161', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line">         </tt>
-<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one&gt;One&lt;/one&gt;&lt;two&gt;Two&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-169', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line">         </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one&gt;One&lt;/one&gt;&lt;two&gt;Two&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-162', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line">        <tt id="link-163" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-163', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-164', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line">        <tt 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">2</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-165" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-165', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-166" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-166', 'root', 'link-42');">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-167" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-170', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line">        <tt id="link-171" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-171', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-172', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line">        <tt 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">2</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-173', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-174" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-174', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-175" 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-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-168" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-168', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-169" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-175', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line">        <tt 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">'two'</tt><tt class="py-op">,</tt> <tt id="link-176" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-176', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-177" 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-169', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_text"></a><div id="_ETreeTestCaseBase.test_text-def"><a name="L162"></a><tt class="py-lineno"> 162</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text-expanded"><a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line">        <tt id="link-170" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-170', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-171" class="py-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-171', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-172', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line">         </tt>
-<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-173" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-173', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line">        <tt id="link-174" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-174', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-175" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-175', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line">        <tt 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">'This is a text'</tt><tt class="py-op">,</tt> <tt id="link-176" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-176', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-177" 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-177', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-177', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_text_empty"></a><div id="_ETreeTestCaseBase.test_text_empty-def"><a name="L170"></a><tt class="py-lineno"> 170</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_text_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_empty-expanded"><a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line">        <tt id="link-178" class="py-name"><a title="lxml.etree.ElementTree
+<a name="_ETreeTestCaseBase.test_text"></a><div id="_ETreeTestCaseBase.test_text-def"><a name="L170"></a><tt class="py-lineno"> 170</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text-expanded"><a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line">        <tt id="link-178" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-178', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -581,19 +588,19 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-180', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
 <a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line">         </tt>
-<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
 <a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-181" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-181', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line">        <tt id="link-182" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-182', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-183', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-184" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-184', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="lxml.etree.QName.text
+<a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line">        <tt id="link-182" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-182', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-183', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line">        <tt 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">'This is a text'</tt><tt class="py-op">,</tt> <tt id="link-184" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-184', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-185" 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-185', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-185', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_text_other"></a><div id="_ETreeTestCaseBase.test_text_other-def"><a name="L178"></a><tt class="py-lineno"> 178</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_other-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_other');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_text_other-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_other-expanded"><a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line">        <tt id="link-186" class="py-name"><a title="lxml.etree.ElementTree
+<a name="_ETreeTestCaseBase.test_text_empty"></a><div id="_ETreeTestCaseBase.test_text_empty-def"><a name="L178"></a><tt class="py-lineno"> 178</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_text_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_empty-expanded"><a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line">        <tt id="link-186" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-186', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -603,9843 +610,9810 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-188', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
 <a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line">         </tt>
-<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one&gt;One&lt;/one&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
 <a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-189" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-189', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line">        <tt id="link-190" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-190', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-191', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-192" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-192', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="lxml.etree.QName.text
+<a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line">        <tt id="link-190" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-190', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-191', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-192" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-192', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-193" 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-193', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_text_other"></a><div id="_ETreeTestCaseBase.test_text_other-def"><a name="L186"></a><tt class="py-lineno"> 186</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_other-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_other');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_text_other-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_other-expanded"><a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line">        <tt id="link-194" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-194', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-195" class="py-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-195', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-196', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line">         </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one&gt;One&lt;/one&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-197" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-197', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line">        <tt id="link-198" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-198', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-199', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-200" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-200', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-201" 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-193', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-194" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-194', 'root', 'link-42');">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-195" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-201', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-202" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-202', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-203" 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-195', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_text_escape_in"></a><div id="_ETreeTestCaseBase.test_text_escape_in-def"><a name="L187"></a><tt class="py-lineno"> 187</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_escape_in-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_escape_in');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_text_escape_in-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_escape_in-expanded"><a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line">        <tt id="link-196" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-203', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_text_escape_in"></a><div id="_ETreeTestCaseBase.test_text_escape_in-def"><a name="L195"></a><tt class="py-lineno"> 195</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_escape_in-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_escape_in');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_text_escape_in-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_escape_in-expanded"><a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line">        <tt id="link-204" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-196', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-204', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-205" class="py-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-197', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-205', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-198', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line"> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is &amp;gt; than a text&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-199" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-206', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is &amp;gt; than a text&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-207" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-199', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line">        <tt id="link-200" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-200', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-201', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line">        <tt 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">'This is &gt; than a text'</tt><tt class="py-op">,</tt> <tt id="link-202" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-202', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-203" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-207', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line">        <tt id="link-208" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-208', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-209', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line">        <tt 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">'This is &gt; than a text'</tt><tt class="py-op">,</tt> <tt id="link-210" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-210', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-211" 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-203', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_text_escape_out"></a><div id="_ETreeTestCaseBase.test_text_escape_out-def"><a name="L195"></a><tt class="py-lineno"> 195</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_escape_out-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_escape_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_text_escape_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_escape_out-expanded"><a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line">        <tt id="link-204" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-211', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_text_escape_out"></a><div id="_ETreeTestCaseBase.test_text_escape_out-def"><a name="L203"></a><tt class="py-lineno"> 203</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_escape_out-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_escape_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_text_escape_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_escape_out-expanded"><a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">        <tt id="link-212" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-204', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-205" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-212', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-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-205', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-206" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-213', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-206', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line"> </tt>
-<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-207" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-214', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line"> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-215" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-207', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-215', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-216" 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-208', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;&gt;&amp;"</tt> </tt>
-<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-209" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-209', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-210" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-210', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&amp;lt;&amp;gt;&amp;amp;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_text_escape_tostring"></a><div id="_ETreeTestCaseBase.test_text_escape_tostring-def"><a name="L203"></a><tt class="py-lineno"> 203</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_escape_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_escape_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_text_escape_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_escape_tostring-expanded"><a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">        <tt id="link-211" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-211', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-216', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;&gt;&amp;"</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-217', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-218" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-218', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&amp;lt;&amp;gt;&amp;amp;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_text_escape_tostring"></a><div id="_ETreeTestCaseBase.test_text_escape_tostring-def"><a name="L211"></a><tt class="py-lineno"> 211</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_escape_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_escape_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_text_escape_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_escape_tostring-expanded"><a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">        <tt id="link-219" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-219', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-220" class="py-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-212', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-213', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line">        <tt id="link-214" class="py-name"><a title="lxml.etree.Element
+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.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-221', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">        <tt id="link-222" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-214', 'Element', 'link-35');">Element</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-222', 'Element', 'link-43');">Element</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-223" class="py-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-215', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-223', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-216', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line"> </tt>
-<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-217" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-224', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line"> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-225" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-217', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-225', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-226" 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-218', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;&gt;&amp;"</tt> </tt>
-<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-219" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-219', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&amp;lt;&amp;gt;&amp;amp;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line">                         <tt id="link-220" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-220', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_text_str_subclass"></a><div id="_ETreeTestCaseBase.test_text_str_subclass-def"><a name="L212"></a><tt class="py-lineno"> 212</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_str_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_text_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_str_subclass-expanded"><a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">        <tt id="link-221" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-226', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;&gt;&amp;"</tt> </tt>
+<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-227" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-227', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&amp;lt;&amp;gt;&amp;amp;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">                         <tt id="link-228" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-228', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_text_str_subclass"></a><div id="_ETreeTestCaseBase.test_text_str_subclass-def"><a name="L220"></a><tt class="py-lineno"> 220</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_text_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_text_str_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_text_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_text_str_subclass-expanded"><a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line">        <tt id="link-229" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-221', 'Element', 'link-35');">Element</a></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
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-229', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-230" class="py-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-222', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-230', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-223', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line"> </tt>
-<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line"> </tt>
-<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-224" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-231', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line"> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line"> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-232" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-224', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</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">a</tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-232', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-233" 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-225', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"text"</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">self</tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-226', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-227" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-227', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;text&lt;/a&gt;'</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail"></a><div id="_ETreeTestCaseBase.test_tail-def"><a name="L223"></a><tt class="py-lineno"> 223</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail-expanded"><a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">        <tt id="link-228" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-233', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-234', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-235" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-235', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;text&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail"></a><div id="_ETreeTestCaseBase.test_tail-def"><a name="L231"></a><tt class="py-lineno"> 231</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail-expanded"><a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line">        <tt id="link-236" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-228', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-236', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-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-229', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-237', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-230', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line">         </tt>
-<a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is &lt;i&gt;mixed&lt;/i&gt; content.&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-231" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-238', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">         </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is &lt;i&gt;mixed&lt;/i&gt; content.&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-239" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-231', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">        <tt id="link-232" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-232', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-233', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">        <tt 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 id="link-234" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-234', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">        <tt 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">'This is '</tt><tt class="py-op">,</tt> <tt id="link-235" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-235', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-239', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt id="link-240" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-240', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-241', 'getroot', 'link-78');">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-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 id="link-242" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-242', 'root', 'link-50');">root</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt id="link-243" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-243', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-244" 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-236', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-237" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-237', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-238', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line">        <tt 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">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-239" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-239', 'root', 'link-42');">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-240" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-244', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-245" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-245', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-246', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line">        <tt 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">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-247" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-247', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-248" 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-240', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">        <tt 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">' content.'</tt><tt class="py-op">,</tt> <tt id="link-241" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-241', 'root', 'link-42');">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-242" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-242', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_str_subclass"></a><div id="_ETreeTestCaseBase.test_tail_str_subclass-def"><a name="L235"></a><tt class="py-lineno"> 235</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_str_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_str_subclass-expanded"><a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt id="link-243" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-248', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line">        <tt 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">' content.'</tt><tt class="py-op">,</tt> <tt id="link-249" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-249', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-250" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-250', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_str_subclass"></a><div id="_ETreeTestCaseBase.test_tail_str_subclass-def"><a name="L243"></a><tt class="py-lineno"> 243</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_str_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_str_subclass-expanded"><a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line">        <tt id="link-251" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-243', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-251', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-252" class="py-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-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-245" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-252', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-245', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">        <tt id="link-246" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-246', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-253', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">        <tt id="link-254" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-254', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-255" class="py-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-247', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-248', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line"> </tt>
-<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line"> </tt>
-<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-249" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-255', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-256', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line"> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line"> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-257" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-249', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line">        <tt id="link-250" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-250', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"t"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-251', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"tail"</tt><tt class="py-op">)</tt> </tt>
-<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-252', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-253" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-253', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;t&gt;&lt;/t&gt;tail&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._test_del_tail"></a><div id="_ETreeTestCaseBase._test_del_tail-def"><a name="L247"></a><tt class="py-lineno"> 247</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_del_tail-toggle" onclick="return toggle('_ETreeTestCaseBase._test_del_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail">_test_del_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._test_del_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_del_tail-expanded"><a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line">        <tt class="py-comment"># this is discouraged for ET compat, should not be tested...</tt> </tt>
-<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line">        <tt id="link-254" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-257', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">        <tt id="link-258" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-258', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"t"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-259', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"tail"</tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-260" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-260', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-261" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-261', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;t&gt;&lt;/t&gt;tail&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._test_del_tail"></a><div id="_ETreeTestCaseBase._test_del_tail-def"><a name="L255"></a><tt class="py-lineno"> 255</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_del_tail-toggle" onclick="return toggle('_ETreeTestCaseBase._test_del_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail">_test_del_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._test_del_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_del_tail-expanded"><a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line">        <tt class="py-comment"># this is discouraged for ET compat, should not be tested...</tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line">        <tt id="link-262" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-254', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-262', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-263" class="py-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-255', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-256" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-263', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-264" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-256', 'XML', 'link-254');">XML</a></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-257" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-257', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-258" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-264', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line">         </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line">        <tt id="link-265" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-265', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-266" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-258', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-259" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-259', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is &lt;i&gt;mixed&lt;/i&gt; content.&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">        <tt 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 id="link-260" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-260', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line">        <tt 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">'This is '</tt><tt class="py-op">,</tt> <tt id="link-261" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-261', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-266', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-267" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-267', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is &lt;i&gt;mixed&lt;/i&gt; content.&lt;/doc&gt;'</tt><tt class="py-op">)</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">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 id="link-268" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-268', 'root', 'link-50');">root</a></tt><tt class="py-op">)</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt id="link-269" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-269', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-270" 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-262', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-263" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-263', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-264" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-264', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line">        <tt 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">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-265" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-265', 'root', 'link-42');">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-266" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-270', 'text', 'link-45');">text</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-271" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-271', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-272" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-272', 'tail', 'link-46');">tail</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-273" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-273', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-274" 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-266', 'text', 'link-37');">text</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">' content.'</tt><tt class="py-op">,</tt> <tt id="link-267" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-267', 'root', 'link-42');">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-268" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-268', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<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">del</tt> <tt id="link-269" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-269', 'root', 'link-42');">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-270" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-270', 'tail', 'link-38');">tail</a></tt> </tt>
-<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line"> </tt>
-<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">        <tt 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 id="link-271" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-271', 'root', 'link-42');">root</a></tt><tt class="py-op">)</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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt id="link-272" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-272', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-273" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-274', 'text', 'link-45');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">' content.'</tt><tt class="py-op">,</tt> <tt id="link-275" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-275', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-276', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line"> </tt>
+<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt id="link-277" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-277', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-278" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-278', 'tail', 'link-46');">tail</a></tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line"> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">        <tt 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 id="link-279" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-279', 'root', 'link-50');">root</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt id="link-280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-280', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-281" 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-273', 'text', 'link-37');">text</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-274" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-274', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-275" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-275', 'tail', 'link-38');">tail</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-276" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-276', 'root', 'link-42');">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-277" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-281', 'text', 'link-45');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-282', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-283" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-283', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line">        <tt 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">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-284" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-284', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-285" 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-277', 'text', 'link-37');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-278', 'root', 'link-42');">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-279" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-279', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line"> </tt>
-<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">        <tt id="link-280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-280', 'root', 'link-42');">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-281" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-281', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line"> </tt>
-<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">        <tt 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 id="link-282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-282', 'root', 'link-42');">root</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt id="link-283" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-283', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-284" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-285', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-286" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-286', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-287" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-287', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<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 id="link-288" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-288', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-289', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line"> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line">        <tt 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 id="link-290" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-290', 'root', 'link-50');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is '</tt><tt class="py-op">,</tt> <tt id="link-291" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-291', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-292" 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-284', 'text', 'link-37');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-285" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-285', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-286', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line">        <tt 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">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-287" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-287', 'root', 'link-42');">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-288" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-292', 'text', 'link-45');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-293" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-293', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-294', 'tail', 'link-46');">tail</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'mixed'</tt><tt class="py-op">,</tt> <tt id="link-295" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-295', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-296" 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-288', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">        <tt 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">'TAIL'</tt><tt class="py-op">,</tt> <tt id="link-289" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-289', 'root', 'link-42');">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-290" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-290', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ElementTree"></a><div id="_ETreeTestCaseBase.test_ElementTree-def"><a name="L274"></a><tt class="py-lineno"> 274</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ElementTree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ElementTree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ElementTree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ElementTree-expanded"><a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line">        <tt id="link-291" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-296', 'text', 'link-45');">text</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'TAIL'</tt><tt class="py-op">,</tt> <tt id="link-297" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-297', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-298', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ElementTree"></a><div id="_ETreeTestCaseBase.test_ElementTree-def"><a name="L282"></a><tt class="py-lineno"> 282</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ElementTree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ElementTree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ElementTree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ElementTree-expanded"><a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line">        <tt id="link-299" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-291', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-299', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-300" class="py-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-292', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-293" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-300', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-293', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line">        <tt id="link-294" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-301', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line">        <tt id="link-302" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-294', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-302', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-303" class="py-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-295', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-296" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-303', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-296', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line">         </tt>
-<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-297" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-304', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line">         </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-305" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-297', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-298" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-305', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt> </tt>
+<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-306" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-298', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line">        <tt id="link-299" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-299', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-300" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-300', 'getroot', 'link-70');">getroot</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-301" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-301', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-302" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-306', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line">        <tt id="link-307" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-307', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-308', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-309" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-309', 'root', 'link-50');">root</a></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-302', 'text', 'link-37');">text</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt id="link-303" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-303', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-310', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt id="link-311" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-311', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-312" 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-304', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib"></a><div id="_ETreeTestCaseBase.test_attrib-def"><a name="L284"></a><tt class="py-lineno"> 284</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib-expanded"><a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line">        <tt id="link-305" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-312', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib"></a><div id="_ETreeTestCaseBase.test_attrib-def"><a name="L292"></a><tt class="py-lineno"> 292</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib-expanded"><a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line">        <tt id="link-313" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-305', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-306" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-313', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-314" class="py-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-306', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-314', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-307', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line">         </tt>
-<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-308" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-315', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line">         </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-316" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-308', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line">        <tt id="link-309" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-309', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-310" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-310', 'getroot', 'link-70');">getroot</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-311" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-311', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-312" 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
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-316', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line">        <tt id="link-317" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-317', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-318', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-319" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-319', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-320" 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-312', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-313" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-313', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-314" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-320', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-321" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-321', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-322" 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-314', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L292"></a><tt class="py-lineno"> 292</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-315" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-315', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-316" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-322', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-323" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-323', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-324" 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-316', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_get"></a><div id="_ETreeTestCaseBase.test_attrib_get-def"><a name="L294"></a><tt class="py-lineno"> 294</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_get-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_get">test_attrib_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="_ETreeTestCaseBase.test_attrib_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_get-expanded"><a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line">        <tt id="link-317" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-324', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_get"></a><div id="_ETreeTestCaseBase.test_attrib_get-def"><a name="L302"></a><tt class="py-lineno"> 302</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_get-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_get">test_attrib_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="_ETreeTestCaseBase.test_attrib_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_get-expanded"><a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line">        <tt id="link-325" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-317', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-325', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-326" class="py-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-318', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-319" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-326', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-319', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line">         </tt>
-<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-320" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-327', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line">         </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-328" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-320', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line">        <tt id="link-321" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-321', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-322" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-322', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-323" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-323', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-328', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">        <tt id="link-329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-329', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-330', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-331" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-331', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-332" 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-324', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-325" 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
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-332', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-333" 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-325', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-326" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-326', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-333', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-334" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-334', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-335" 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-327', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-328" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-335', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-336" 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-328', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-329', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-336', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-337" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-337', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-338" 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-330', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-331" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-338', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-339" 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-331', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt id="link-332" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-332', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-339', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt id="link-340" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-340', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-341" 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-333', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-341', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-342" 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-334', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_dict"></a><div id="_ETreeTestCaseBase.test_attrib_dict-def"><a name="L305"></a><tt class="py-lineno"> 305</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_dict-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_dict-expanded"><a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">        <tt id="link-335" class="py-name"><a title="lxml.etree.ElementTree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-342', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_dict"></a><div id="_ETreeTestCaseBase.test_attrib_dict-def"><a name="L313"></a><tt class="py-lineno"> 313</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_dict-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_dict-expanded"><a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line">        <tt id="link-343" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-335', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-343', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-344" class="py-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-336', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-337" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-344', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-345" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-337', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line"> </tt>
-<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-338" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-345', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line"> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-346" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-338', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">        <tt id="link-339" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-339', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-340', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">        <tt id="link-341" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-346', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">        <tt id="link-347" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-347', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-348', 'getroot', 'link-78');">getroot</a></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 id="link-349" 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-341', 'attrib', 'link-312');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt id="link-342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-342', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-349', 'attrib', 'link-320');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt id="link-350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-350', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-351" 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-343', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-344" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-351', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-352" 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-344', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-345" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-352', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-353" 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-345', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-346" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-353', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-354" 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-346', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_copy"></a><div id="_ETreeTestCaseBase.test_attrib_copy-def"><a name="L316"></a><tt class="py-lineno"> 316</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_copy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_copy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_copy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_copy-expanded"><a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line">        <tt id="link-347" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-354', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_copy"></a><div id="_ETreeTestCaseBase.test_attrib_copy-def"><a name="L324"></a><tt class="py-lineno"> 324</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_copy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_copy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_copy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_copy-expanded"><a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line">        <tt id="link-355" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-347', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-355', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-356" class="py-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-348', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-349" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-356', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-357" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-349', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line"> </tt>
-<a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-350" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-357', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line"> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-358" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-350', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line">        <tt id="link-351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-351', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-352', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line">        <tt id="link-353" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-358', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line">        <tt id="link-359" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-359', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-360" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-360', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">        <tt id="link-361" 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-353', 'attrib', 'link-312');">attrib</a></tt> <tt class="py-op">=</tt> <tt id="link-354" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-361', 'attrib', 'link-320');">attrib</a></tt> <tt class="py-op">=</tt> <tt id="link-362" 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-354', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-362', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-363" 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-355', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt id="link-356" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-356', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-357" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-363', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt id="link-364" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-364', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-365" 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-357', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-358" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-365', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-366" 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-358', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-359" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-366', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-367" 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-359', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-360" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-367', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-368" 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-360', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_deepcopy"></a><div id="_ETreeTestCaseBase.test_attrib_deepcopy-def"><a name="L327"></a><tt class="py-lineno"> 327</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_deepcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_deepcopy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_deepcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_deepcopy-expanded"><a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line">        <tt id="link-361" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-368', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_deepcopy"></a><div id="_ETreeTestCaseBase.test_attrib_deepcopy-def"><a name="L335"></a><tt class="py-lineno"> 335</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_deepcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_deepcopy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_deepcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_deepcopy-expanded"><a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line">        <tt id="link-369" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-361', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-369', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-370" class="py-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-362', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-363" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-370', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-371" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-363', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line"> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-364" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-371', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line"> </tt>
+<a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-372" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-364', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line">        <tt id="link-365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-365', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-366', 'getroot', 'link-70');">getroot</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 id="link-367" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-372', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line">        <tt id="link-373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-373', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-374', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">        <tt id="link-375" 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-367', 'attrib', 'link-312');">attrib</a></tt> <tt class="py-op">=</tt> <tt id="link-368" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-375', 'attrib', 'link-320');">attrib</a></tt> <tt class="py-op">=</tt> <tt id="link-376" 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-368', '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-369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-369', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-370" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-376', '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-377" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-377', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-378" 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-370', 'attrib', 'link-312');">attrib</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-371" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-378', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-379" 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-371', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</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 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-372" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-379', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-380" 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-372', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-373" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-380', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</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 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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt id="link-381" 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-373', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attributes_get"></a><div id="_ETreeTestCaseBase.test_attributes_get-def"><a name="L338"></a><tt class="py-lineno"> 338</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attributes_get-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attributes_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_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="_ETreeTestCaseBase.test_attributes_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attributes_get-expanded"><a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line">        <tt id="link-374" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-381', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attributes_get"></a><div id="_ETreeTestCaseBase.test_attributes_get-def"><a name="L346"></a><tt class="py-lineno"> 346</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attributes_get-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attributes_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_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="_ETreeTestCaseBase.test_attributes_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attributes_get-expanded"><a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">        <tt id="link-382" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-374', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-375" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-382', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-383" class="py-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-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-383', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-376', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line">         </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-377" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-384', 'ElementTree', 'link-11');">ElementTree</a></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">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-385" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-377', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line">        <tt id="link-378" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-378', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-379" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-379', 'getroot', 'link-70');">getroot</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-380" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-380', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-385', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">        <tt id="link-386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-386', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-387', 'getroot', 'link-78');">getroot</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-388" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-388', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-389" 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-381', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-382" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-382', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-389', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-390" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-390', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-391" 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-383', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-384', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-391', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-392', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-393" 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-385', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt id="link-386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-386', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-393', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt id="link-394" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-394', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-395" 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-387', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_clear"></a><div id="_ETreeTestCaseBase.test_attrib_clear-def"><a name="L349"></a><tt class="py-lineno"> 349</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_clear-expanded"><a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">        <tt id="link-388" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-395', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_clear"></a><div id="_ETreeTestCaseBase.test_attrib_clear-def"><a name="L357"></a><tt class="py-lineno"> 357</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_clear-expanded"><a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">        <tt id="link-396" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-388', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-396', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-397" class="py-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-389', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-397', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-398" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-390', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">         </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line">        <tt id="link-391" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-391', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-392" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-398', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line">         </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">        <tt id="link-399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-399', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-400" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-392', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-393" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-393', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-394" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-394', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-400', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-401" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-401', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-402" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-402', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-403" 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-395', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-396', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-397" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-403', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-404" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-404', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-405" 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-397', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line">        <tt id="link-398" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-398', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-399" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-405', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</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 id="link-406" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-406', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-407" 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-399', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-400" 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-407', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-408" 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-400', 'clear', 'link-400');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-401" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-401', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-402" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-408', 'clear', 'link-408');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-409', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-410" 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-402', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-403" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-403', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-404" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-410', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-411" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-411', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-412" 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-404', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_set_clear"></a><div id="_ETreeTestCaseBase.test_attrib_set_clear-def"><a name="L359"></a><tt class="py-lineno"> 359</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_set_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_set_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_set_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_set_clear-expanded"><a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">        <tt id="link-405" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-412', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_set_clear"></a><div id="_ETreeTestCaseBase.test_attrib_set_clear-def"><a name="L367"></a><tt class="py-lineno"> 367</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_set_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_set_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_set_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_set_clear-expanded"><a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line">        <tt id="link-413" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-405', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-413', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-414" class="py-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-406', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-407" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-414', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-415" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-407', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">         </tt>
-<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">        <tt id="link-408" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-408', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-409" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-415', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">         </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line">        <tt id="link-416" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-416', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-417" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-409', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-name">one</tt><tt class="py-op">=</tt><tt class="py-string">"One"</tt><tt class="py-op">)</tt> </tt>
-<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line">        <tt id="link-410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-410', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-411" 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-411', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"two"</tt><tt class="py-op">,</tt> <tt class="py-string">"Two"</tt><tt class="py-op">)</tt> </tt>
-<a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-412" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-412', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-413" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-417', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-name">one</tt><tt class="py-op">=</tt><tt class="py-string">"One"</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">        <tt id="link-418" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-418', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-419" 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-419', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"two"</tt><tt class="py-op">,</tt> <tt class="py-string">"Two"</tt><tt class="py-op">)</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-420" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-420', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-421" 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-413', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-414" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-414', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-415" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-421', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-422" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-422', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-423" 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-415', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">        <tt id="link-416" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-416', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-423', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</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 id="link-424" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-424', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-425" 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-417', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-425', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-426" 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-418', 'clear', 'link-400');">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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-419" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-419', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-420" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-426', 'clear', 'link-408');">clear</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-427" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-427', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-428" 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-420', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-421" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-421', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-422" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-428', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-429" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-429', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-430" 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-422', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_ns_clear"></a><div id="_ETreeTestCaseBase.test_attrib_ns_clear-def"><a name="L370"></a><tt class="py-lineno"> 370</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_ns_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_ns_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_ns_clear">test_attrib_ns_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_ns_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_ns_clear-expanded"><a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">        <tt id="link-423" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-430', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_ns_clear"></a><div id="_ETreeTestCaseBase.test_attrib_ns_clear-def"><a name="L378"></a><tt class="py-lineno"> 378</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_ns_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_ns_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_ns_clear">test_attrib_ns_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_ns_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_ns_clear-expanded"><a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line">        <tt id="link-431" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-423', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-431', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-432" class="py-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-424', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-425" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-432', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-433" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-425', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">        <tt id="link-426" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-426', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-427" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-433', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line">        <tt id="link-434" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-434', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-435" class="py-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-427', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-428', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line"> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line">        <tt class="py-name">attribNS</tt> <tt class="py-op">=</tt> <tt class="py-string">'{http://foo/bar}x'</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line">        <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt id="link-429" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-435', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-436', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line"> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">        <tt class="py-name">attribNS</tt> <tt class="py-op">=</tt> <tt class="py-string">'{http://foo/bar}x'</tt> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"> </tt>
+<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line">        <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt id="link-437" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-429', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</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">parent</tt><tt class="py-op">.</tt><tt id="link-430" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-430', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-431" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-431', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</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">child</tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-432', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</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 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">parent</tt><tt class="py-op">.</tt><tt id="link-433" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-437', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line">        <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-438" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-438', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-439" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-439', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">parent</tt><tt class="py-op">,</tt> <tt class="py-string">'child'</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">child</tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-440', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line"> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">        <tt 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">parent</tt><tt class="py-op">.</tt><tt id="link-441" 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-433', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-434" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-441', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-442" 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-434', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line"> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line">        <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-435" class="py-name"><a title="lxml.etree._Attrib.clear
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-442', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line"> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">        <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-443" 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-435', 'clear', 'link-400');">clear</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-443', 'clear', 'link-408');">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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-444" 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-436', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-437" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-444', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-445" 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-437', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_pop"></a><div id="_ETreeTestCaseBase.test_attrib_pop-def"><a name="L388"></a><tt class="py-lineno"> 388</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop">test_attrib_pop</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_pop-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop-expanded"><a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">        <tt id="link-438" class="py-name"><a title="lxml.etree.ElementTree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-445', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attribNS</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_pop"></a><div id="_ETreeTestCaseBase.test_attrib_pop-def"><a name="L396"></a><tt class="py-lineno"> 396</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop">test_attrib_pop</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_pop-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop-expanded"><a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line">        <tt id="link-446" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-438', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-439" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-446', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-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-439', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-447', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-448" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-440', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line">         </tt>
-<a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-441" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-448', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line">         </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-449" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-441', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line">        <tt id="link-442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-442', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-443" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-443', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-444', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-445" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-449', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line">        <tt id="link-450" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-450', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-451', 'getroot', 'link-78');">getroot</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-452', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-453" 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-445', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt id="link-446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-446', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-447" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-453', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-454" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-454', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-455" 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-447', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line"> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-448" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-448', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-449" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-455', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-456', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-457" 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-449', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-450" 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-450', 'pop', 'link-450');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</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>
-<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-451" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-451', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-452" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-457', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-458" 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-458', 'pop', 'link-458');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</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>
+<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-459" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-459', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-460" 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-452', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-453" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-460', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-461" 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-453', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-454" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-454', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-461', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-462" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-462', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-463" 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-455', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_pop_unknown"></a><div id="_ETreeTestCaseBase.test_attrib_pop_unknown-def"><a name="L402"></a><tt class="py-lineno"> 402</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_pop_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_unknown-expanded"><a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line">        <tt id="link-456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-456', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-457" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-463', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_pop_unknown"></a><div id="_ETreeTestCaseBase.test_attrib_pop_unknown-def"><a name="L410"></a><tt class="py-lineno"> 410</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_pop_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_unknown-expanded"><a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line">        <tt id="link-464" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-464', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-465" class="py-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-457', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-458" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-465', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-458', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-459" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-459', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L404"></a><tt class="py-lineno"> 404</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">KeyError</tt><tt class="py-op">,</tt> <tt id="link-460" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-460', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-461" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-466', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-467" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-467', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt id="link-468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-468', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-469" 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-461', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-462" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-462', 'pop', 'link-450');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'NONE'</tt><tt class="py-op">)</tt> </tt>
-<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line"> </tt>
-<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-463', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-469', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-470', 'pop', 'link-458');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'NONE'</tt><tt class="py-op">)</tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line"> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt id="link-471" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-471', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-472" 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-464', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-465" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-465', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-472', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">        <tt 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">'Two'</tt><tt class="py-op">,</tt> <tt id="link-473" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-473', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-474" 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-466', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_pop_default"></a><div id="_ETreeTestCaseBase.test_attrib_pop_default-def"><a name="L409"></a><tt class="py-lineno"> 409</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_default">test_attrib_pop_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_pop_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_default-expanded"><a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line">        <tt id="link-467" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-467', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-468" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-474', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_pop_default"></a><div id="_ETreeTestCaseBase.test_attrib_pop_default-def"><a name="L417"></a><tt class="py-lineno"> 417</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_default">test_attrib_pop_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_pop_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_default-expanded"><a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line">        <tt id="link-475" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-475', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-476" class="py-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-468', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-469" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-476', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-477" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-469', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-470" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-470', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Three'</tt><tt class="py-op">,</tt> <tt id="link-471" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-471', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-477', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-478" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-478', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Three'</tt><tt class="py-op">,</tt> <tt id="link-479" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-479', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-480" 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-472', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-473" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-473', 'pop', 'link-450');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'Three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_pop_empty_default"></a><div id="_ETreeTestCaseBase.test_attrib_pop_empty_default-def"><a name="L413"></a><tt class="py-lineno"> 413</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_empty_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_empty_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_empty_default">test_attrib_pop_empty_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_pop_empty_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_empty_default-expanded"><a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">        <tt id="link-474" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-474', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-475" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-480', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-481" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-481', 'pop', 'link-458');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'Three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_pop_empty_default"></a><div id="_ETreeTestCaseBase.test_attrib_pop_empty_default-def"><a name="L421"></a><tt class="py-lineno"> 421</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_empty_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_empty_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_empty_default">test_attrib_pop_empty_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_pop_empty_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_empty_default-expanded"><a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">        <tt id="link-482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-482', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-483" class="py-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-475', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-483', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-476', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-477" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-477', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">        <tt 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">'Three'</tt><tt class="py-op">,</tt> <tt id="link-478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-478', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-484', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-485" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-485', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc/&gt;'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Three'</tt><tt class="py-op">,</tt> <tt id="link-486" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-486', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-487" 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-479', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-480" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-480', 'pop', 'link-450');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'Three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attrib_pop_invalid_args"></a><div id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-def"><a name="L417"></a><tt class="py-lineno"> 417</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_invalid_args');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-expanded"><a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line">        <tt id="link-481" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-481', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-482" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-487', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-488" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-488', 'pop', 'link-458');">pop</a></tt><tt class="py-op">(</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'Three'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attrib_pop_invalid_args"></a><div id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-def"><a name="L425"></a><tt class="py-lineno"> 425</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attrib_pop_invalid_args');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attrib_pop_invalid_args-expanded"><a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">        <tt id="link-489" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-489', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-490" class="py-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-482', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-483" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-490', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-483', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-484" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-484', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-485" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-485', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-486" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-491', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-492" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-492', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc one="One" two="Two"/&gt;'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-493', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-494" 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-486', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-487', 'pop', 'link-450');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_update_dict"></a><div id="_ETreeTestCaseBase.test_attribute_update_dict-def"><a name="L421"></a><tt class="py-lineno"> 421</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_dict-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_update_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_dict-expanded"><a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">        <tt id="link-488" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-494', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-495" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-495', 'pop', 'link-458');">pop</a></tt><tt class="py-op">,</tt> <tt class="py-string">'One'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_update_dict"></a><div id="_ETreeTestCaseBase.test_attribute_update_dict-def"><a name="L429"></a><tt class="py-lineno"> 429</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_dict-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_dict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_update_dict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_dict-expanded"><a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">        <tt id="link-496" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-488', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-489" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-496', 'XML', 'link-262');">XML</a></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.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-489', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-497', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-498" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-490', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">         </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">        <tt id="link-491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-491', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-492" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-498', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">         </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line">        <tt id="link-499" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-499', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-500" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-492', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-493" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-493', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">        <tt id="link-494" 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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-500', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-501" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-501', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">        <tt id="link-502" 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-494', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-495" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-495', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-496" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-502', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-503" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-503', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-504" 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-496', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-497" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-504', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-505" 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-497', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">        <tt id="link-498" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-505', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">        <tt id="link-506" 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-498', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">            <tt id="link-499" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-506', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line">            <tt id="link-507" 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-499', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line"> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">        <tt id="link-500" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-500', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-501" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-507', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line"> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">        <tt id="link-508" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-508', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-509" 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-501', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-502" 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-502', 'update', 'link-502');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alpha'</tt> <tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt> <tt class="py-op">:</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line"> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">        <tt id="link-503" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-509', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-510" 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-510', 'update', 'link-510');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alpha'</tt> <tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt> <tt class="py-op">:</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line"> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">        <tt id="link-511" 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-503', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-504" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-504', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-505" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-511', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-512" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-512', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-513" 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-505', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-506" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-513', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-514" 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-506', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">        <tt id="link-507" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-514', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line">        <tt id="link-515" 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-507', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line">            <tt id="link-508" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-515', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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 class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</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-516" 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-508', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_update_sequence"></a><div id="_ETreeTestCaseBase.test_attribute_update_sequence-def"><a name="L439"></a><tt class="py-lineno"> 439</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_sequence-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_update_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_sequence-expanded"><a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">        <tt id="link-509" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-516', 'items', 'link-502');">items</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="_ETreeTestCaseBase.test_attribute_update_sequence"></a><div id="_ETreeTestCaseBase.test_attribute_update_sequence-def"><a name="L447"></a><tt class="py-lineno"> 447</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_sequence-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_update_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_sequence-expanded"><a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line">        <tt id="link-517" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-509', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-510" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-517', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-518" class="py-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-510', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-511" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-518', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-519" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-511', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">         </tt>
-<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line">        <tt id="link-512" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-512', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-513" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-519', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">         </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line">        <tt id="link-520" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-520', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-521" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-513', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-514" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-514', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</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 id="link-515" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-521', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-522" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-522', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</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 id="link-523" 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-515', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-516" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-516', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-517" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-523', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-524', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-525" 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-517', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-518" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-525', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-526" 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-518', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">        <tt id="link-519" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-526', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">        <tt id="link-527" 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-519', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line">            <tt id="link-520" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-527', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</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 id="link-528" 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-520', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line"> </tt>
-<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">        <tt id="link-521" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-521', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-522" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-528', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">        <tt id="link-529" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-529', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-530" 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-522', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-523" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-523', 'update', 'link-502');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alpha'</tt> <tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt> <tt class="py-op">:</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-524" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-530', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-531" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-531', 'update', 'link-510');">update</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alpha'</tt> <tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt> <tt class="py-op">:</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-532" 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-524', 'items', 'link-494');">items</a></tt><tt class="py-op">(</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>
-<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">        <tt id="link-525" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-532', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line"> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">        <tt id="link-533" 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-525', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-526" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-526', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-527" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-533', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-534', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-535" 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-527', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-528" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-535', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-536" 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-528', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">        <tt id="link-529" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-536', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line">        <tt id="link-537" 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-529', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</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 id="link-530" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-537', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</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 id="link-538" 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-530', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_update_iter"></a><div id="_ETreeTestCaseBase.test_attribute_update_iter-def"><a name="L457"></a><tt class="py-lineno"> 457</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_iter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_iter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_update_iter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_iter-expanded"><a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">        <tt id="link-531" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-538', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_update_iter"></a><div id="_ETreeTestCaseBase.test_attribute_update_iter-def"><a name="L465"></a><tt class="py-lineno"> 465</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_iter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_iter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_update_iter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_iter-expanded"><a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line">        <tt id="link-539" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-531', 'XML', 'link-254');">XML</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
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-539', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-540" class="py-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-532', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-533" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-540', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-533', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">         </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line">        <tt id="link-534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-534', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-535" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-541', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">         </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt id="link-542" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-542', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-543" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-535', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-536" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-536', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</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 id="link-537" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-543', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-544', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">        <tt id="link-545" 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-537', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-538" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-538', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-545', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-546" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-546', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-547" 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-539', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-547', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-548" 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-540', 'items', 'link-494');">items</a></tt><tt class="py-op">(</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 id="link-541" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-548', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">        <tt id="link-549" 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-541', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line">            <tt id="link-542" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-549', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">            <tt id="link-550" 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-542', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line"> </tt>
-<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt id="link-543" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-543', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-544" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-550', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+<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-551" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-551', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-552" 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-544', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-545', 'update', 'link-502');">update</a></tt><tt class="py-op">(</tt><tt id="link-546" 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-546', 'iter', 'link-546');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alpha'</tt> <tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt> <tt class="py-op">:</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-547" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-552', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-553" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-553', 'update', 'link-510');">update</a></tt><tt class="py-op">(</tt><tt id="link-554" 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-554', 'iter', 'link-554');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'alpha'</tt> <tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt> <tt class="py-op">:</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-555" 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-547', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line"> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">        <tt id="link-548" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-555', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line">        <tt id="link-556" 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-548', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-549" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-549', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-550" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-556', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-557', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-558" 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-550', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-551" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-558', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-559" 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-551', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">        <tt id="link-552" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-559', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt id="link-560" 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-552', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">            <tt id="link-553" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-560', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">            <tt id="link-561" 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-553', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_update_attrib"></a><div id="_ETreeTestCaseBase.test_attribute_update_attrib-def"><a name="L475"></a><tt class="py-lineno"> 475</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_update_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_attrib-expanded"><a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line">        <tt id="link-554" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-561', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_update_attrib"></a><div id="_ETreeTestCaseBase.test_attribute_update_attrib-def"><a name="L483"></a><tt class="py-lineno"> 483</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_update_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_update_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_update_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_update_attrib-expanded"><a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">        <tt id="link-562" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-554', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-555" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-562', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-563" class="py-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-555', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-556" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-563', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-564" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-556', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line"> </tt>
-<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt id="link-557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-557', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-558" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-564', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line"> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">        <tt id="link-565" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-565', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-566" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-558', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-559', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt id="link-560" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-566', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-567" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-567', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line">        <tt id="link-568" 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-560', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-561" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-561', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-562" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-568', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-569', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-570" 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-562', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-563" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-570', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-571" 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-563', 'items', 'link-494');">items</a></tt><tt class="py-op">(</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 id="link-564" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-571', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line">        <tt id="link-572" 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-564', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">                                                  <tt id="link-565" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-572', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line">                                                  <tt id="link-573" 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-565', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line"> </tt>
-<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-566" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-573', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line"> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-574" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-566', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-567" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-567', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="test" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">        <tt id="link-568" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-568', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-569" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-574', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-575" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-575', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="test" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">        <tt id="link-576" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-576', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-577" 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-569', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-570', 'update', 'link-502');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-571" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-577', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-578', 'update', 'link-510');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-579" 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-571', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line"> </tt>
-<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line">        <tt id="link-572" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-579', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">        <tt id="link-580" 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-572', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-573" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-573', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-574" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-580', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-581" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-581', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-582" 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-574', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-582', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-583" 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-575', 'items', 'link-494');">items</a></tt><tt class="py-op">(</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 id="link-576" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-583', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line">        <tt id="link-584" 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-576', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</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 id="link-577" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-584', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</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-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">                                                                     <tt id="link-585" 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-577', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_keys"></a><div id="_ETreeTestCaseBase.test_attribute_keys-def"><a name="L494"></a><tt class="py-lineno"> 494</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_keys-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_keys');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_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="_ETreeTestCaseBase.test_attribute_keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_keys-expanded"><a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line">        <tt id="link-578" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-585', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_keys"></a><div id="_ETreeTestCaseBase.test_attribute_keys-def"><a name="L502"></a><tt class="py-lineno"> 502</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_keys-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_keys');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_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="_ETreeTestCaseBase.test_attribute_keys-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_keys-expanded"><a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">        <tt id="link-586" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-578', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-586', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-587" class="py-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-579', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-587', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-580', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">         </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line">        <tt id="link-581" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-581', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-582" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-588', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">         </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">        <tt id="link-589" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-589', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-590" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-582', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-583" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-583', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">        <tt id="link-584" 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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-590', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-591" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-591', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</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 id="link-592" 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-584', 'keys', 'link-584');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-585" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-585', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-592', 'keys', 'link-592');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-593', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-594" 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-586', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-594', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-595" 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-587', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">        <tt id="link-588" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-595', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt id="link-596" 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-588', 'keys', 'link-584');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-589" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-596', 'keys', 'link-592');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-597" 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-589', 'keys', 'link-584');">keys</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_keys2"></a><div id="_ETreeTestCaseBase.test_attribute_keys2-def"><a name="L502"></a><tt class="py-lineno"> 502</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_keys2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_keys2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_keys2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_keys2-expanded"><a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">        <tt id="link-590" class="py-name"><a title="lxml.etree.XML
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-597', 'keys', 'link-592');">keys</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_keys2"></a><div id="_ETreeTestCaseBase.test_attribute_keys2-def"><a name="L510"></a><tt class="py-lineno"> 510</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_keys2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_keys2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_keys2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_keys2-expanded"><a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">        <tt id="link-598" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-590', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-598', 'XML', 'link-262');">XML</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.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-591', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-592" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-599', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-600" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-592', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">         </tt>
-<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">        <tt id="link-593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-593', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-594" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-600', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line">         </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">        <tt id="link-601" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-601', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-602" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-594', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-595" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-595', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</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 id="link-596" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-602', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-603" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-603', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</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 id="link-604" 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-584');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-597', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-598" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-604', 'keys', 'link-592');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-605" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-605', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-606" 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-598', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt id="link-599" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-606', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</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 id="link-607" 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-599', 'keys', 'link-584');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt><tt class="py-op">]</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-607', 'keys', 'link-592');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-608" 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-584');">keys</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_items2"></a><div id="_ETreeTestCaseBase.test_attribute_items2-def"><a name="L510"></a><tt class="py-lineno"> 510</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_items2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_items2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items2">test_attribute_items2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_items2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_items2-expanded"><a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">        <tt id="link-601" class="py-name"><a title="lxml.etree.XML
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-608', 'keys', 'link-592');">keys</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_items2"></a><div id="_ETreeTestCaseBase.test_attribute_items2-def"><a name="L518"></a><tt class="py-lineno"> 518</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_items2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_items2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items2">test_attribute_items2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_items2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_items2-expanded"><a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">        <tt id="link-609" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-601', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-602" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-609', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-610" class="py-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-602', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-603" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-610', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-611" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-603', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line">         </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">        <tt id="link-604" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-604', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-605" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-611', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line">         </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">        <tt id="link-612" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-612', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-613" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-605', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-606" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-606', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</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 id="link-607" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-613', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-614" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-614', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">        <tt id="link-615" 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-607', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-608" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-608', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-609" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-615', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-616" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-616', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-617" 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-609', 'items', 'link-494');">items</a></tt><tt class="py-op">(</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 id="link-610" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-617', 'items', 'link-502');">items</a></tt><tt class="py-op">(</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 id="link-618" 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-610', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt><tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt><tt class="py-string">'Gamma'</tt><tt class="py-op">)</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 id="link-611" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-618', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt><tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt><tt class="py-string">'Gamma'</tt><tt class="py-op">)</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 id="link-619" 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-611', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_keys_ns"></a><div id="_ETreeTestCaseBase.test_attribute_keys_ns-def"><a name="L520"></a><tt class="py-lineno"> 520</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_keys_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_keys_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_keys_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_keys_ns-expanded"><a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">        <tt id="link-612" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-619', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_keys_ns"></a><div id="_ETreeTestCaseBase.test_attribute_keys_ns-def"><a name="L528"></a><tt class="py-lineno"> 528</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_keys_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_keys_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_keys_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_keys_ns-expanded"><a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">        <tt id="link-620" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-612', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-613" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-620', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-621" class="py-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-613', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-614" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-621', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-622" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-614', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line"> </tt>
-<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line">        <tt id="link-615" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-615', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-616" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-622', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">        <tt id="link-623" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-623', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-624" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-616', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-617" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-617', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</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 id="link-618" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-624', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-625" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-625', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">        <tt id="link-626" 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-618', 'keys', 'link-584');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-619', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-620" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-626', 'keys', 'link-592');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-627" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-627', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-628" 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-620', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</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 id="link-621" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-628', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">        <tt id="link-629" 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-621', 'keys', 'link-584');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.codespeak.net/test}baz'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line">                          <tt id="link-622" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-629', 'keys', 'link-592');">keys</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.codespeak.net/test}baz'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">                          <tt id="link-630" 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-622', 'keys', 'link-584');">keys</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_attribute_values"></a><div id="_ETreeTestCaseBase.test_attribute_values-def"><a name="L529"></a><tt class="py-lineno"> 529</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_values-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_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="_ETreeTestCaseBase.test_attribute_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_values-expanded"><a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line">        <tt id="link-623" class="py-name"><a title="lxml.etree.XML
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-630', 'keys', 'link-592');">keys</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_attribute_values"></a><div id="_ETreeTestCaseBase.test_attribute_values-def"><a name="L537"></a><tt class="py-lineno"> 537</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_values-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_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="_ETreeTestCaseBase.test_attribute_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_values-expanded"><a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt id="link-631" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-623', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-624" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-631', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-632" class="py-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-624', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-625" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-632', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-625', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">         </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">        <tt id="link-626" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-626', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-627" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-633', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">         </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt id="link-634" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-634', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-635" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-627', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-628" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-628', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">        <tt id="link-629" 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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-635', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-636" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-636', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</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 id="link-637" 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-629', 'values', 'link-629');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-630" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-630', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-631" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-637', 'values', 'link-637');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-638', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-639" 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-631', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-632" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-639', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-640" 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-632', 'values', 'link-629');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">        <tt id="link-633" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-640', 'values', 'link-637');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">        <tt id="link-641" 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-633', 'values', 'link-629');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-634" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-641', 'values', 'link-637');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-642" 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-634', 'values', 'link-629');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_values_ns"></a><div id="_ETreeTestCaseBase.test_attribute_values_ns-def"><a name="L537"></a><tt class="py-lineno"> 537</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_values_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_values_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_values_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_values_ns-expanded"><a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt id="link-635" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-642', 'values', 'link-637');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_values_ns"></a><div id="_ETreeTestCaseBase.test_attribute_values_ns-def"><a name="L545"></a><tt class="py-lineno"> 545</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_values_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_values_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_values_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_values_ns-expanded"><a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">        <tt id="link-643" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-635', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-636" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-643', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</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-636', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-637" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-644', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-645" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-637', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">         </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt id="link-638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-638', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-639" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-645', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">         </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">        <tt id="link-646" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-646', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-647" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-639', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-640" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-640', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</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 id="link-641" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-647', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-648" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-648', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">        <tt id="link-649" 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-641', 'values', 'link-629');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-642" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-642', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-643" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-649', 'values', 'link-637');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-650" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-650', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-651" 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-643', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-644" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-651', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-652" 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-644', 'values', 'link-629');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">        <tt id="link-645" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-652', 'values', 'link-637');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">        <tt id="link-653" 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-645', 'values', 'link-629');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Baz'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-646" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-653', 'values', 'link-637');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Baz'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-654" 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-646', 'values', 'link-629');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_attribute_items"></a><div id="_ETreeTestCaseBase.test_attribute_items-def"><a name="L546"></a><tt class="py-lineno"> 546</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_items-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_items');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_items-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_items-expanded"><a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">        <tt id="link-647" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-654', 'values', 'link-637');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_attribute_items"></a><div id="_ETreeTestCaseBase.test_attribute_items-def"><a name="L554"></a><tt class="py-lineno"> 554</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_items-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_items');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_items-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_items-expanded"><a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">        <tt id="link-655" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-647', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-648" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-655', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-656" class="py-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-648', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-649" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-656', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-649', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">         </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">        <tt id="link-650" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-650', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-651" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-657', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">         </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line">        <tt id="link-658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-658', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-659" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-651', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-652" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-652', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">        <tt id="link-653" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-659', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-660" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-660', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line">        <tt id="link-661" 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-653', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-654" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-654', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-655" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-661', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-662" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-662', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-663" 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-655', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-656" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-663', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-664" 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-656', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">        <tt id="link-657" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-664', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">        <tt id="link-665" 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-657', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</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-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">            <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-658" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-665', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Alpha'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'gamma'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">            <tt class="py-op">]</tt><tt class="py-op">,</tt>  </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">            <tt id="link-666" 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-658', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_items_ns"></a><div id="_ETreeTestCaseBase.test_attribute_items_ns-def"><a name="L559"></a><tt class="py-lineno"> 559</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_items_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_items_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items_ns">test_attribute_items_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_items_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_items_ns-expanded"><a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">        <tt id="link-659" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-666', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_items_ns"></a><div id="_ETreeTestCaseBase.test_attribute_items_ns-def"><a name="L567"></a><tt class="py-lineno"> 567</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_items_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_items_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items_ns">test_attribute_items_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_items_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_items_ns-expanded"><a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">        <tt id="link-667" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-659', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-667', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-668" class="py-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-660', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-668', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-669" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-661', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">         </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">        <tt id="link-662" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-662', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-663" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-669', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">         </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">        <tt id="link-670" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-670', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-671" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-663', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-664" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-664', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">        <tt id="link-665" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-671', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-672" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-672', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">        <tt id="link-673" 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-665', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-666" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-666', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-667" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-673', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-674" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-674', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-675" 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-667', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-668" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-675', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-676" 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-668', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">        <tt id="link-669" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-676', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">        <tt id="link-677" 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-669', 'items', 'link-494');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'{http://ns.codespeak.net/test}baz'</tt><tt class="py-op">,</tt> <tt class="py-string">'Baz'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">            <tt id="link-670" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-677', 'items', 'link-502');">items</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'{http://ns.codespeak.net/test}baz'</tt><tt class="py-op">,</tt> <tt class="py-string">'Baz'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">            <tt id="link-678" 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-670', 'items', 'link-494');">items</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_str"></a><div id="_ETreeTestCaseBase.test_attribute_str-def"><a name="L569"></a><tt class="py-lineno"> 569</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_str-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_str-expanded"><a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">        <tt id="link-671" class="py-name"><a title="lxml.etree.XML
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-678', 'items', 'link-502');">items</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_str"></a><div id="_ETreeTestCaseBase.test_attribute_str-def"><a name="L577"></a><tt class="py-lineno"> 577</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_str-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_str-expanded"><a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">        <tt id="link-679" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-671', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-672" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-679', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-680" class="py-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-672', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-680', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-681" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-673', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line"> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-string">"{'{http://ns.codespeak.net/test}baz': 'Baz', 'bar': 'Bar'}"</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">        <tt class="py-name">alternative</tt> <tt class="py-op">=</tt> <tt class="py-string">"{'bar': 'Bar', '{http://ns.codespeak.net/test}baz': 'Baz'}"</tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">         </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">        <tt id="link-674" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-674', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-675" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-681', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line"> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-string">"{'{http://ns.codespeak.net/test}baz': 'Baz', 'bar': 'Bar'}"</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">        <tt class="py-name">alternative</tt> <tt class="py-op">=</tt> <tt class="py-string">"{'bar': 'Bar', '{http://ns.codespeak.net/test}baz': 'Baz'}"</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">         </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line">        <tt id="link-682" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-682', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-683" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-675', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-676" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-676', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</tt><tt class="py-op">)</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">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt id="link-677" class="py-name" targets="Class str=str-class.html"><a title="str" class="py-name" href="#" onclick="return doclink('link-677', 'str', 'link-677');">str</a></tt><tt class="py-op">(</tt><tt id="link-678" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-678', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-679" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-683', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-684" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-684', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt id="link-685" class="py-name" targets="Class str=str-class.html"><a title="str" class="py-name" href="#" onclick="return doclink('link-685', 'str', 'link-685');">str</a></tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-686', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-687" 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-679', 'attrib', 'link-312');">attrib</a></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-keyword">except</tt> <tt id="link-680" class="py-name" targets="Class exceptions.AssertionError=exceptions.AssertionError-class.html"><a title="exceptions.AssertionError" class="py-name" href="#" onclick="return doclink('link-680', 'AssertionError', 'link-680');">AssertionError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">alternative</tt><tt class="py-op">,</tt> <tt id="link-681" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-681', 'str', 'link-677');">str</a></tt><tt class="py-op">(</tt><tt id="link-682" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-682', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-683" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-687', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</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">except</tt> <tt id="link-688" class="py-name" targets="Class exceptions.AssertionError=exceptions.AssertionError-class.html"><a title="exceptions.AssertionError" class="py-name" href="#" onclick="return doclink('link-688', 'AssertionError', 'link-688');">AssertionError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">alternative</tt><tt class="py-op">,</tt> <tt id="link-689" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-689', 'str', 'link-685');">str</a></tt><tt class="py-op">(</tt><tt id="link-690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-690', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-691" 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-683', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_contains"></a><div id="_ETreeTestCaseBase.test_attribute_contains-def"><a name="L581"></a><tt class="py-lineno"> 581</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_contains-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_contains');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_contains">test_attribute_contains</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_contains-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_contains-expanded"><a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">        <tt id="link-684" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-691', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_contains"></a><div id="_ETreeTestCaseBase.test_attribute_contains-def"><a name="L589"></a><tt class="py-lineno"> 589</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_contains-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_contains');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_contains">test_attribute_contains</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_contains-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_contains-expanded"><a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">        <tt id="link-692" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-684', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-692', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-693" class="py-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-685', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-686" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-693', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-694" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-686', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line"> </tt>
-<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">        <tt id="link-687" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-687', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-688" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-694', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line"> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">        <tt id="link-695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-695', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-696" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-688', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-689" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-689', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt> <tt class="py-keyword">in</tt> <tt id="link-690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-690', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-691" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-696', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-697" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-697', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt> <tt class="py-keyword">in</tt> <tt id="link-698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-698', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-699" 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-691', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">'baz'</tt> <tt class="py-keyword">in</tt> <tt id="link-692" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-692', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-693" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-699', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">'baz'</tt> <tt class="py-keyword">in</tt> <tt id="link-700" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-700', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-701" 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-693', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">'hah'</tt> <tt class="py-keyword">in</tt> <tt id="link-694" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-694', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-701', 'attrib', 'link-320');">attrib</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">'hah'</tt> <tt class="py-keyword">in</tt> <tt id="link-702" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-702', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-703" 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-695', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.codespeak.net/test}baz'</tt> <tt class="py-keyword">in</tt> <tt id="link-696" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-696', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-697" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-703', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.codespeak.net/test}baz'</tt> <tt class="py-keyword">in</tt> <tt id="link-704" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-704', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-705" 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-697', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_set"></a><div id="_ETreeTestCaseBase.test_attribute_set-def"><a name="L595"></a><tt class="py-lineno"> 595</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_set-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_set-expanded"><a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">        <tt id="link-698" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-705', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_set"></a><div id="_ETreeTestCaseBase.test_attribute_set-def"><a name="L603"></a><tt class="py-lineno"> 603</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_set-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_set-expanded"><a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">        <tt id="link-706" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-698', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-706', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-707" class="py-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-699', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-700" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-707', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-708" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-700', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line"> </tt>
-<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">        <tt id="link-701" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-701', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-702" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-708', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line"> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">        <tt id="link-709" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-709', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-710" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-702', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt id="link-703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-703', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-704" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-704', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-705" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-705', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-710', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">        <tt id="link-711" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-711', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-712" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-712', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-713" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-713', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-714" 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-706', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_iterator"></a><div id="_ETreeTestCaseBase.test_attribute_iterator-def"><a name="L602"></a><tt class="py-lineno"> 602</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_iterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_iterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_iterator">test_attribute_iterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_iterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_iterator-expanded"><a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">        <tt id="link-707" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-714', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_iterator"></a><div id="_ETreeTestCaseBase.test_attribute_iterator-def"><a name="L610"></a><tt class="py-lineno"> 610</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_iterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_iterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_iterator">test_attribute_iterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_iterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_iterator-expanded"><a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">        <tt id="link-715" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-707', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-708" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-715', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-716" class="py-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-708', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-716', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-709', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">         </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">        <tt id="link-710" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-710', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-711" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-717', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">         </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt id="link-718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-718', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-719" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-711', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-712" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-712', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-713" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-713', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-714" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-719', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-720" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-720', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma" /&gt;'</tt><tt class="py-op">)</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">result</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">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-721', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-722" 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-714', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-715" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-715', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
-<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">        <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">sort</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_manipulation"></a><div id="_ETreeTestCaseBase.test_attribute_manipulation-def"><a name="L612"></a><tt class="py-lineno"> 612</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_manipulation-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_manipulation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_manipulation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_manipulation-expanded"><a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt id="link-716" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-722', 'attrib', 'link-320');">attrib</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-name">result</tt><tt class="py-op">.</tt><tt id="link-723" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-723', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">        <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_manipulation"></a><div id="_ETreeTestCaseBase.test_attribute_manipulation-def"><a name="L620"></a><tt class="py-lineno"> 620</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_manipulation-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_manipulation');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_manipulation-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_manipulation-expanded"><a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line">        <tt id="link-724" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-716', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-724', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-725" class="py-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-717', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-718" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-725', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-726" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-718', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line"> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-719" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-726', 'Element', 'link-43');">Element</a></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 class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-727" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-719', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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-name">a</tt><tt class="py-op">.</tt><tt id="link-720" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-727', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-728" 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-720', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-721" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-728', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-name">a</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-721', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-722" 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-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-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-722', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-723" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-730', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-731" 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-723', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-724" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-731', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-732" 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-724', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_del_attribute_ns"></a><div id="_ETreeTestCaseBase.test_del_attribute_ns-def"><a name="L622"></a><tt class="py-lineno"> 622</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_attribute_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_attribute_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_attribute_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_attribute_ns-expanded"><a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">        <tt id="link-725" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-732', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</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="_ETreeTestCaseBase.test_del_attribute_ns"></a><div id="_ETreeTestCaseBase.test_del_attribute_ns-def"><a name="L630"></a><tt class="py-lineno"> 630</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_attribute_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_attribute_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_attribute_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_attribute_ns-expanded"><a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">        <tt id="link-733" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-725', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-726" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-733', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-734" class="py-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-726', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-727" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-734', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-735" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-727', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line"> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-728" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-735', 'Element', 'link-43');">Element</a></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-name">a</tt> <tt class="py-op">=</tt> <tt id="link-736" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-728', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">a</tt><tt class="py-op">.</tt><tt id="link-729" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-736', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-737" 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-729', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-737', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-738" 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-730', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}bar'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-731" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-738', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}bar'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-739" 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-731', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-732" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-739', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-740" 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-732', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-733" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-740', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-741" 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-733', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</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>
-<a name="L632"></a><tt class="py-lineno"> 632</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">delitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-734" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-741', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</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>
+<a name="L640"></a><tt class="py-lineno"> 640</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">delitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-742" 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-734', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-735" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-742', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-743" 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-735', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line"> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-736" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-743', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line"> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</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-736', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-744', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-745" 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-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_del_attribute_ns_parsed"></a><div id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-def"><a name="L638"></a><tt class="py-lineno"> 638</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_attribute_ns_parsed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-expanded"><a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">        <tt id="link-738" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-745', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_del_attribute_ns_parsed"></a><div id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-def"><a name="L646"></a><tt class="py-lineno"> 646</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_attribute_ns_parsed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_attribute_ns_parsed-expanded"><a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line">        <tt id="link-746" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-738', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-739" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-746', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-747" class="py-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-739', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-740" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-747', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-748" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-740', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line"> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-741" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-748', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line"> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-749" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-741', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-742" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-742', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:nsa="http://a/" nsa:foo="FooNS" foo="Foo" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line"> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-743" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-749', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-750" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-750', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:nsa="http://a/" nsa:foo="FooNS" foo="Foo" /&gt;'</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>
+<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-751" 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-743', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">        <tt 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">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-744" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-751', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">        <tt 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">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-752" 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-744', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line"> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-745" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-752', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line"> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-753" 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-745', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line">        <tt 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">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-746" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-753', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">        <tt 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">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-754" 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-746', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-747" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-754', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-755" 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-747', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">delitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-748" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-755', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">delitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-756" 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-748', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line"> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-749" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-756', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line"> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</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-749', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-750" 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-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</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-750', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L653"></a><tt class="py-lineno"> 653</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-751" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-758', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-759" 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-751', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line"> </tt>
-<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-752" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-759', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line"> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-760" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-752', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-753" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-753', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:nsa="http://a/" foo="Foo" nsa:foo="FooNS" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line"> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-754" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-760', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-761" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-761', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:nsa="http://a/" foo="Foo" nsa:foo="FooNS" /&gt;'</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>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-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-754', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">        <tt 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">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-755" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-762', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">        <tt 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">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-763" 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-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line"> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-756" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-763', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-764" 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-756', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line">        <tt 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">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-757" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-764', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooNS'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-765" 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-757', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-758" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-765', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-766" 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-758', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line"> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-759" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-766', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line"> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-767" 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-759', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-760" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-767', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://a/}foo'</tt><tt class="py-op">]</tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</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">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</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-760', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://a/}foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-761" 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-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://a/}foo'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">getitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</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-761', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_XML"></a><div id="_ETreeTestCaseBase.test_XML-def"><a name="L668"></a><tt class="py-lineno"> 668</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_XML-toggle" onclick="return toggle('_ETreeTestCaseBase.test_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XML">test_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_XML-expanded"><a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">        <tt id="link-762" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-769', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_XML"></a><div id="_ETreeTestCaseBase.test_XML-def"><a name="L676"></a><tt class="py-lineno"> 676</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_XML-toggle" onclick="return toggle('_ETreeTestCaseBase.test_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XML">test_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_XML-expanded"><a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">        <tt id="link-770" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-762', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-763" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-770', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-771" class="py-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-763', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-764" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-771', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-772" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-764', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">         </tt>
-<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">        <tt id="link-765" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-765', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-766" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-772', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">         </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line">        <tt id="link-773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-773', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-774" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-766', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-767" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-767', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-768" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-768', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt 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">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-769" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-769', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-770" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-774', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-775" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-775', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-776" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-776', 'root', 'link-50');">root</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 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">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-777" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-777', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-778" 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-770', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_XMLID"></a><div id="_ETreeTestCaseBase.test_XMLID-def"><a name="L675"></a><tt class="py-lineno"> 675</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_XMLID-toggle" onclick="return toggle('_ETreeTestCaseBase.test_XMLID');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XMLID">test_XMLID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_XMLID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_XMLID-expanded"><a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line">        <tt id="link-771" class="py-name" targets="Function lxml.etree.XMLID()=lxml.etree-module.html#XMLID"><a title="lxml.etree.XMLID" class="py-name" href="#" onclick="return doclink('link-771', 'XMLID', 'link-771');">XMLID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-772" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-778', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_XMLID"></a><div id="_ETreeTestCaseBase.test_XMLID-def"><a name="L683"></a><tt class="py-lineno"> 683</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_XMLID-toggle" onclick="return toggle('_ETreeTestCaseBase.test_XMLID');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XMLID">test_XMLID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_XMLID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_XMLID-expanded"><a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">        <tt id="link-779" class="py-name" targets="Function lxml.etree.XMLID()=lxml.etree-module.html#XMLID"><a title="lxml.etree.XMLID" class="py-name" href="#" onclick="return doclink('link-779', 'XMLID', 'link-779');">XMLID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-780" class="py-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-772', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-773" class="py-name"><a title="lxml.etree.XMLID" class="py-name" href="#" onclick="return doclink('link-773', 'XMLID', 'link-771');">XMLID</a></tt> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">        <tt id="link-774" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-780', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-781" class="py-name"><a title="lxml.etree.XMLID" class="py-name" href="#" onclick="return doclink('link-781', 'XMLID', 'link-779');">XMLID</a></tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">        <tt id="link-782" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-774', 'XML', 'link-254');">XML</a></tt>   <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-775" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-782', 'XML', 'link-262');">XML</a></tt>   <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-783" class="py-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-775', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-776" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-783', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-784" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-776', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-777" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-777', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 id="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"> </tt>
-<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">        <tt id="link-778" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-778', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-779" class="py-name"><a title="lxml.etree.XMLID" class="py-name" href="#" onclick="return doclink('link-779', 'XMLID', 'link-771');">XMLID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-780" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-784', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-785" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-785', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 id="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line"> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">        <tt id="link-786" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-786', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-787" class="py-name"><a title="lxml.etree.XMLID" class="py-name" href="#" onclick="return doclink('link-787', 'XMLID', 'link-779');">XMLID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-788" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-780', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-781" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement,Method lxml.tests.test_etree.ETreeOnlyTestCase._writeElement()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-781', '_writeElement', 'link-781');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-782" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-782', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</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.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-783', '_writeElement', 'link-781');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</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">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-784" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-784', 'root', 'link-42');">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>
-<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">            <tt class="py-string">"note1"</tt>    <tt class="py-op">:</tt> <tt id="link-785" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-785', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-786" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-786', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_fromstring"></a><div id="_ETreeTestCaseBase.test_fromstring-def"><a name="L699"></a><tt class="py-lineno"> 699</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_fromstring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstring-expanded"><a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">        <tt id="link-787" 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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-788', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-789" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement,Method lxml.tests.test_etree.ETreeOnlyTestCase._writeElement()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-789', '_writeElement', 'link-789');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-790', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-791" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-791', '_writeElement', 'link-789');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</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-name">expected</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-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-792" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-792', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">            <tt class="py-string">"note1"</tt>    <tt class="py-op">:</tt> <tt id="link-793" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-793', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-794', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_fromstring"></a><div id="_ETreeTestCaseBase.test_fromstring-def"><a name="L707"></a><tt class="py-lineno"> 707</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_fromstring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstring-expanded"><a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">        <tt id="link-795" 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-787', 'fromstring', 'link-787');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-788" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-795', 'fromstring', 'link-795');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-796" class="py-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-788', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-789" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-796', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-797" 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-789', 'fromstring', 'link-787');">fromstring</a></tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line"> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">        <tt id="link-790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-790', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-791" class="py-name"><a title="lxml.etree.fromstring
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-797', 'fromstring', 'link-795');">fromstring</a></tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line"> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">        <tt id="link-798" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-798', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-799" 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-791', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-792" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-792', 'root', 'link-42');">root</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-793" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-793', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-794" class="py-name"><a title="lxml.etree.QName.text
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-799', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-800" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-800', 'root', 'link-50');">root</a></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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-801', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-802" 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-794', 'text', 'link-37');">text</a></tt><tt class="py-op">)</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-795" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-795', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_fromstringlist'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_fromstringlist"></a><div id="_ETreeTestCaseBase.test_fromstringlist-def"><a name="L707"></a><tt class="py-lineno"> 707</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstringlist-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstringlist');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstringlist-expanded"><a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">        <tt id="link-796" class="py-name" targets="Function lxml.etree.fromstringlist()=lxml.etree-module.html#fromstringlist"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-796', 'fromstringlist', 'link-796');">fromstringlist</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-797" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-802', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line"> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">    <tt id="link-803" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-803', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_fromstringlist'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_fromstringlist"></a><div id="_ETreeTestCaseBase.test_fromstringlist-def"><a name="L715"></a><tt class="py-lineno"> 715</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstringlist-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstringlist');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstringlist-expanded"><a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">        <tt id="link-804" class="py-name" targets="Function lxml.etree.fromstringlist()=lxml.etree-module.html#fromstringlist"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-804', 'fromstringlist', 'link-804');">fromstringlist</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-805" class="py-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-797', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-798" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-798', 'fromstringlist', 'link-796');">fromstringlist</a></tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line"> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">        <tt id="link-799" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-799', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-800" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-800', 'fromstringlist', 'link-796');">fromstringlist</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"&lt;do"</tt><tt class="py-op">,</tt> <tt class="py-string">"c&gt;T"</tt><tt class="py-op">,</tt> <tt class="py-string">"hi"</tt><tt class="py-op">,</tt> <tt class="py-string">"s is"</tt><tt class="py-op">,</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">                               <tt class="py-string">" a text.&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"/doc"</tt><tt class="py-op">,</tt> <tt class="py-string">"&gt;"</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-801', 'root', 'link-42');">root</a></tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-802" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-802', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-803" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-805', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-806" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-806', 'fromstringlist', 'link-804');">fromstringlist</a></tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line"> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">        <tt id="link-807" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-807', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-808" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-808', 'fromstringlist', 'link-804');">fromstringlist</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"&lt;do"</tt><tt class="py-op">,</tt> <tt class="py-string">"c&gt;T"</tt><tt class="py-op">,</tt> <tt class="py-string">"hi"</tt><tt class="py-op">,</tt> <tt class="py-string">"s is"</tt><tt class="py-op">,</tt> </tt>
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">                               <tt class="py-string">" a text.&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"/doc"</tt><tt class="py-op">,</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-809" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-809', 'root', 'link-50');">root</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-810" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-810', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-811" 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-803', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line"> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">    <tt id="link-804" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-804', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_fromstringlist_characters'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_fromstringlist_characters"></a><div id="_ETreeTestCaseBase.test_fromstringlist_characters-def"><a name="L716"></a><tt class="py-lineno"> 716</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstringlist_characters-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstringlist_characters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_fromstringlist_characters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstringlist_characters-expanded"><a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">        <tt id="link-805" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-805', 'fromstringlist', 'link-796');">fromstringlist</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-806" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-811', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line"> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">    <tt id="link-812" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-812', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_fromstringlist_characters'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_fromstringlist_characters"></a><div id="_ETreeTestCaseBase.test_fromstringlist_characters-def"><a name="L724"></a><tt class="py-lineno"> 724</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstringlist_characters-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstringlist_characters');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_fromstringlist_characters-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstringlist_characters-expanded"><a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt id="link-813" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-813', 'fromstringlist', 'link-804');">fromstringlist</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-814" class="py-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-806', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-807" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-807', 'fromstringlist', 'link-796');">fromstringlist</a></tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line"> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">        <tt id="link-808" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-808', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-809" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-809', 'fromstringlist', 'link-796');">fromstringlist</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-810" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-810', 'root', 'link-42');">root</a></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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-811" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-811', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-812" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-814', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-815" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-815', 'fromstringlist', 'link-804');">fromstringlist</a></tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line"> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">        <tt id="link-816" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-816', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-817" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-817', 'fromstringlist', 'link-804');">fromstringlist</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-818" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-818', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt 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">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-819" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-819', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-820" 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-812', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line"> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">    <tt id="link-813" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-813', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_fromstringlist_single'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_fromstringlist_single"></a><div id="_ETreeTestCaseBase.test_fromstringlist_single-def"><a name="L724"></a><tt class="py-lineno"> 724</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstringlist_single-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstringlist_single');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_fromstringlist_single-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstringlist_single-expanded"><a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt id="link-814" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-814', 'fromstringlist', 'link-796');">fromstringlist</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-815" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-820', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">    <tt id="link-821" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-821', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_fromstringlist_single'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_fromstringlist_single"></a><div id="_ETreeTestCaseBase.test_fromstringlist_single-def"><a name="L732"></a><tt class="py-lineno"> 732</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_fromstringlist_single-toggle" onclick="return toggle('_ETreeTestCaseBase.test_fromstringlist_single');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_fromstringlist_single-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_fromstringlist_single-expanded"><a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">        <tt id="link-822" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-822', 'fromstringlist', 'link-804');">fromstringlist</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-823" class="py-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-815', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-816" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-816', 'fromstringlist', 'link-796');">fromstringlist</a></tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line"> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">        <tt id="link-817" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-817', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-818" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-818', 'fromstringlist', 'link-796');">fromstringlist</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-819" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-819', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt 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">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-820" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-820', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-821" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-823', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-824" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-824', 'fromstringlist', 'link-804');">fromstringlist</a></tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line"> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt id="link-825" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-825', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-826" class="py-name"><a title="lxml.etree.fromstringlist" class="py-name" href="#" onclick="return doclink('link-826', 'fromstringlist', 'link-804');">fromstringlist</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'&lt;doc&gt;This is a text.&lt;/doc&gt;'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-827" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-827', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">        <tt 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">'This is a text.'</tt><tt class="py-op">,</tt> <tt id="link-828" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-828', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-829" 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-821', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iselement"></a><div id="_ETreeTestCaseBase.test_iselement-def"><a name="L731"></a><tt class="py-lineno"> 731</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iselement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iselement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iselement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iselement-expanded"><a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">        <tt id="link-822" class="py-name" targets="Function lxml.etree.iselement()=lxml.etree-module.html#iselement"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-822', 'iselement', 'link-822');">iselement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-823" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-829', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iselement"></a><div id="_ETreeTestCaseBase.test_iselement-def"><a name="L739"></a><tt class="py-lineno"> 739</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iselement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iselement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iselement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iselement-expanded"><a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">        <tt id="link-830" class="py-name" targets="Function lxml.etree.iselement()=lxml.etree-module.html#iselement"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-830', 'iselement', 'link-830');">iselement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-831" class="py-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-823', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-824" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-824', 'iselement', 'link-822');">iselement</a></tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">        <tt id="link-825" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-831', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-832" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-832', 'iselement', 'link-830');">iselement</a></tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">        <tt id="link-833" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-825', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-826" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-833', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-834" class="py-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-826', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-827" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-834', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-835" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-827', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">        <tt id="link-828" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-835', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">        <tt id="link-836" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-828', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-829" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-836', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-837" class="py-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-829', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-830" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-837', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-838" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-830', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt id="link-831" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-838', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">        <tt id="link-839" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-831', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-832" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-839', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-840" class="py-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-832', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-833" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-840', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-841" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-833', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">        <tt id="link-834" 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-834', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-835" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-841', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">        <tt id="link-842" 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-842', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-843" class="py-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-835', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-836" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-836', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-837" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-843', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-844" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-844', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-845" class="py-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-837', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">         </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-838" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-845', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">         </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-846" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-838', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-839" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-839', 'iselement', 'link-822');">iselement</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="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">        <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt id="link-840" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-846', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-847" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-847', 'iselement', 'link-830');">iselement</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="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">        <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt id="link-848" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-840', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-841" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-841', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-842" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-842', 'iselement', 'link-822');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">el2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<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-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-843" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-843', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt id="link-844" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-844', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</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-keyword">not</tt> <tt id="link-845" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-845', 'iselement', 'link-822');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-846" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-846', 'iselement', 'link-822');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-847" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-847', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-848" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-848', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-849" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-849', 'iselement', 'link-822');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line"> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">        <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">,</tt> <tt class="py-string">"some text"</tt><tt class="py-op">)</tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-850" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-850', 'iselement', 'link-822');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_iteration"></a><div id="_ETreeTestCaseBase.test_iteration-def"><a name="L755"></a><tt class="py-lineno"> 755</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration-expanded"><a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">        <tt id="link-851" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-848', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-849" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-849', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-850" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-850', 'iselement', 'link-830');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">el2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<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-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-851" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-851', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt id="link-852" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-852', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</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-keyword">not</tt> <tt id="link-853" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-853', 'iselement', 'link-830');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-854" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-854', 'iselement', 'link-830');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-855" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-855', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line"> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-856" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-856', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-857" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-857', 'iselement', 'link-830');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line"> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">,</tt> <tt class="py-string">"some text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-858" class="py-name"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-858', 'iselement', 'link-830');">iselement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_iteration"></a><div id="_ETreeTestCaseBase.test_iteration-def"><a name="L763"></a><tt class="py-lineno"> 763</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration-expanded"><a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt id="link-859" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-851', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-852" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-859', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-860" class="py-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-852', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-853" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-860', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-861" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-853', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">         </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">        <tt id="link-854" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-854', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-855" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-861', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">         </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">        <tt id="link-862" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-862', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-863" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-855', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-856" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-856', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</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-857" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-857', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-858" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-858', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-859" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-863', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-864" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-864', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</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-865" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-865', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-866" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-866', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-867" 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-859', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_empty"></a><div id="_ETreeTestCaseBase.test_iteration_empty-def"><a name="L764"></a><tt class="py-lineno"> 764</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_empty-expanded"><a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt id="link-860" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-867', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_empty"></a><div id="_ETreeTestCaseBase.test_iteration_empty-def"><a name="L772"></a><tt class="py-lineno"> 772</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_empty-expanded"><a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt id="link-868" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-860', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-861" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-868', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-869" class="py-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-861', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-862" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-869', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-870" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-862', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">         </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">        <tt id="link-863" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-863', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-864" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-870', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line">         </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">        <tt id="link-871" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-871', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-872" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-864', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-865" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-865', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</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-866" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-866', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-867" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-867', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-868" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-872', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-873" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-873', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</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-874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-874', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-875" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-875', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-876" 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-868', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_text_only"></a><div id="_ETreeTestCaseBase.test_iteration_text_only-def"><a name="L773"></a><tt class="py-lineno"> 773</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_text_only-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_text_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_text_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_text_only-expanded"><a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line">        <tt id="link-869" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-876', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_text_only"></a><div id="_ETreeTestCaseBase.test_iteration_text_only-def"><a name="L781"></a><tt class="py-lineno"> 781</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_text_only-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_text_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_text_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_text_only-expanded"><a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">        <tt id="link-877" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-869', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-870" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-877', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-878" class="py-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-870', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-871" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-878', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-879" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-871', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">         </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">        <tt id="link-872" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-872', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-873" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-879', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">         </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">        <tt id="link-880" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-880', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-881" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-873', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-874" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-874', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;Text&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</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-875" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-875', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-876" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-876', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-877" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-881', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-882" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-882', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;Text&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</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-883" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-883', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-884" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-884', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-885" 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-877', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_crash"></a><div id="_ETreeTestCaseBase.test_iteration_crash-def"><a name="L782"></a><tt class="py-lineno"> 782</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_crash-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_crash');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_crash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_crash-expanded"><a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">        <tt class="py-comment"># this would cause a crash in the past</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">        <tt id="link-878" class="py-name"><a title="lxml.etree.fromstring
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-885', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_crash"></a><div id="_ETreeTestCaseBase.test_iteration_crash-def"><a name="L790"></a><tt class="py-lineno"> 790</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_crash-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_crash');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_crash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_crash-expanded"><a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">        <tt class="py-comment"># this would cause a crash in the past</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">        <tt id="link-886" 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-878', 'fromstring', 'link-787');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-879" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-886', 'fromstring', 'link-795');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-887" class="py-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-879', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-880" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-887', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-888" 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-880', 'fromstring', 'link-787');">fromstring</a></tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt id="link-881" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-881', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-882" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-888', 'fromstring', 'link-795');">fromstring</a></tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt id="link-889" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-889', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-890" class="py-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-882', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-883" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-890', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-891" 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-883', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;p&gt;&lt;/p&gt;x&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-884" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-884', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-885" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-885', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-</div><a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_reversed"></a><div id="_ETreeTestCaseBase.test_iteration_reversed-def"><a name="L789"></a><tt class="py-lineno"> 789</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_reversed-expanded"><a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">        <tt id="link-886" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-891', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;p&gt;&lt;/p&gt;x&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-892" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-892', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-893" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-893', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+</div><a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_reversed"></a><div id="_ETreeTestCaseBase.test_iteration_reversed-def"><a name="L797"></a><tt class="py-lineno"> 797</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_reversed-expanded"><a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">        <tt id="link-894" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-886', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-887" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-894', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-895" class="py-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-887', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-888" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-895', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-896" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-888', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">        <tt id="link-889" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-889', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-890" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-896', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">        <tt id="link-897" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-897', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-898" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-890', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-891" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-891', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</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-892" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-892', 'reversed', 'link-30');">reversed</a></tt><tt class="py-op">(</tt><tt id="link-893" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-893', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-894" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-894', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-895" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-898', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-899" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-899', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="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 id="link-900" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-900', 'reversed', 'link-30');">reversed</a></tt><tt class="py-op">(</tt><tt id="link-901" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-901', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-902" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-902', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-903" 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-895', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_subelement"></a><div id="_ETreeTestCaseBase.test_iteration_subelement-def"><a name="L797"></a><tt class="py-lineno"> 797</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_subelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_subelement-expanded"><a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">        <tt id="link-896" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-903', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_subelement"></a><div id="_ETreeTestCaseBase.test_iteration_subelement-def"><a name="L805"></a><tt class="py-lineno"> 805</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_subelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_subelement-expanded"><a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt id="link-904" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-896', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-897" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-904', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-905" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-897', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-898" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-905', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-906" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-898', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line"> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">        <tt id="link-899" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-899', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-900" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-906', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line"> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt id="link-907" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-907', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-908" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-900', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-901" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-901', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</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-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">        <tt id="link-902" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-902', 'add', 'link-66');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-903" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-903', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-904" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-904', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><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.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-908', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-909" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-909', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">        <tt id="link-910" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-910', 'add', 'link-74');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</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-911" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-911', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-912', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-913" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.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-905', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-906" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-906', 'add', 'link-66');">add</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-name">self</tt><tt class="py-op">.</tt><tt id="link-907" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-913', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-914" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-914', 'add', 'link-74');">add</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-915" class="py-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-907', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-908" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-908', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-909" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-909', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">)</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">                <tt id="link-910" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-910', 'add', 'link-66');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_del_child"></a><div id="_ETreeTestCaseBase.test_iteration_del_child-def"><a name="L810"></a><tt class="py-lineno"> 810</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_del_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_del_child');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_del_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_del_child-expanded"><a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">        <tt id="link-911" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-915', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-916', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-917" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-917', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">)</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">                <tt id="link-918" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-918', 'add', 'link-74');">add</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'four'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_del_child"></a><div id="_ETreeTestCaseBase.test_iteration_del_child-def"><a name="L818"></a><tt class="py-lineno"> 818</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_del_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_del_child');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_del_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_del_child-expanded"><a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">        <tt id="link-919" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-911', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-919', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-920" class="py-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-912', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-913" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-920', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-913', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line"> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">        <tt id="link-914" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-914', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-915" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-921', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line"> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">        <tt id="link-922" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-922', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-923" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-915', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-916" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-916', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt 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">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-917" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-917', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-918" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-918', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-919" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-923', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-924" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-924', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</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">result</tt> <tt class="py-op">=</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">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-925" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-925', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-926', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-927" 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-919', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt id="link-920" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-920', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iteration_double"></a><div id="_ETreeTestCaseBase.test_iteration_double-def"><a name="L820"></a><tt class="py-lineno"> 820</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_double-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_double');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iteration_double-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_double-expanded"><a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">        <tt id="link-921" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-927', 'tag', 'link-44');">tag</a></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">del</tt> <tt id="link-928" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-928', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iteration_double"></a><div id="_ETreeTestCaseBase.test_iteration_double-def"><a name="L828"></a><tt class="py-lineno"> 828</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iteration_double-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iteration_double');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iteration_double-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iteration_double-expanded"><a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">        <tt id="link-929" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-921', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-929', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.etree
 lxml.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-922', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-923" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-930', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-931" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-923', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line"> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">        <tt id="link-924" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-924', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-925" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-931', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">        <tt id="link-932" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-932', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-933" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-925', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-926" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-926', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el0</tt> <tt class="py-keyword">in</tt> <tt id="link-927" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-927', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-928', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el0</tt><tt class="py-op">.</tt><tt id="link-929" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-933', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-934" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-934', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</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">for</tt> <tt class="py-name">el0</tt> <tt class="py-keyword">in</tt> <tt id="link-935" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-935', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-936" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-936', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el0</tt><tt class="py-op">.</tt><tt id="link-937" 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-929', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el1</tt> <tt class="py-keyword">in</tt> <tt id="link-930" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-930', 'root', 'link-42');">root</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">                <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-931" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-931', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-932" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-937', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">el1</tt> <tt class="py-keyword">in</tt> <tt id="link-938" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-938', 'root', 'link-50');">root</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line">                <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-939" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-939', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-940" 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-932', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">    <tt id="link-933" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-933', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_itertext"></a><div id="_ETreeTestCaseBase.test_itertext-def"><a name="L832"></a><tt class="py-lineno"> 832</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_itertext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext-expanded"><a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">        <tt class="py-comment"># ET 1.3+</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">        <tt id="link-934" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-940', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">    <tt id="link-941" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-941', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_itertext"></a><div id="_ETreeTestCaseBase.test_itertext-def"><a name="L840"></a><tt class="py-lineno"> 840</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_itertext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext-expanded"><a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">        <tt class="py-comment"># ET 1.3+</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">        <tt id="link-942" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-934', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-935" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-942', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-943" class="py-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-935', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-936" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-943', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-944" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-936', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">        <tt id="link-937" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-937', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-938" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-944', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">        <tt id="link-945" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-945', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-946" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-938', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-939" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-939', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root&gt;RTEXT&lt;a&gt;&lt;/a&gt;ATAIL&lt;b/&gt;&lt;c&gt;CTEXT&lt;/c&gt;CTAIL&lt;/root&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">        <tt id="link-940" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-946', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-947" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-947', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root&gt;RTEXT&lt;a&gt;&lt;/a&gt;ATAIL&lt;b/&gt;&lt;c&gt;CTEXT&lt;/c&gt;CTAIL&lt;/root&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt id="link-948" 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-940', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-941" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-941', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-942" class="py-name" targets="Method lxml.etree._Element.itertext()=lxml.etree._Element-class.html#itertext"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-942', 'itertext', 'link-942');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"RTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATAIL"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTAIL"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">                          <tt id="link-943" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-948', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-949" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-949', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-950" class="py-name" targets="Method lxml.etree._Element.itertext()=lxml.etree._Element-class.html#itertext"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-950', 'itertext', 'link-950');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"RTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"ATAIL"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTEXT"</tt><tt class="py-op">,</tt> <tt class="py-string">"CTAIL"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">                          <tt id="link-951" 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-943', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line"> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">    <tt id="link-944" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-944', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext_child'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_itertext_child"></a><div id="_ETreeTestCaseBase.test_itertext_child-def"><a name="L842"></a><tt class="py-lineno"> 842</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext_child');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_itertext_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext_child-expanded"><a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">        <tt class="py-comment"># ET 1.3+</tt> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">        <tt id="link-945" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-951', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">    <tt id="link-952" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-952', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_itertext_child'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_itertext_child"></a><div id="_ETreeTestCaseBase.test_itertext_child-def"><a name="L850"></a><tt class="py-lineno"> 850</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_itertext_child-toggle" onclick="return toggle('_ETreeTestCaseBase.test_itertext_child');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_itertext_child-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_itertext_child-expanded"><a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">        <tt class="py-comment"># ET 1.3+</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">        <tt id="link-953" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-945', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-946" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-953', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-954" class="py-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-946', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-954', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-955" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-947', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt id="link-948" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-948', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-949" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-955', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt id="link-956" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-956', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-957" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-949', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-950" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-950', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root&gt;RTEXT&lt;a&gt;&lt;/a&gt;ATAIL&lt;b/&gt;&lt;c&gt;CTEXT&lt;/c&gt;CTAIL&lt;/root&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line"> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">        <tt id="link-951" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-957', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-958" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-958', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root&gt;RTEXT&lt;a&gt;&lt;/a&gt;ATAIL&lt;b/&gt;&lt;c&gt;CTEXT&lt;/c&gt;CTAIL&lt;/root&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line"> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">        <tt id="link-959" 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-951', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-952" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-952', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-953" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-953', 'itertext', 'link-942');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"CTEXT"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">                          <tt id="link-954" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-959', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-960" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-960', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-961', 'itertext', 'link-950');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"CTEXT"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">                          <tt id="link-962" 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-954', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_findall"></a><div id="_ETreeTestCaseBase.test_findall-def"><a name="L851"></a><tt class="py-lineno"> 851</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_findall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall-expanded"><a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">        <tt id="link-955" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-962', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_findall"></a><div id="_ETreeTestCaseBase.test_findall-def"><a name="L859"></a><tt class="py-lineno"> 859</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_findall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall-expanded"><a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">        <tt id="link-963" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-955', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-963', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.etree
 lxml.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-956', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-957" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-964', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-965" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-957', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt id="link-958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-958', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-959" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-965', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">        <tt id="link-966" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-966', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-967" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-959', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-960" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-960', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-961" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-961', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-962" 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-962', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-963" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-963', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-964', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-965" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-965', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-966', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-967" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-967', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-968" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-968', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-969" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-969', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-970" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-970', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-971', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-972" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-972', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_findall_ns"></a><div id="_ETreeTestCaseBase.test_findall_ns-def"><a name="L861"></a><tt class="py-lineno"> 861</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall_ns-expanded"><a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">        <tt id="link-973" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-967', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-968" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-968', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-969" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-969', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-970" 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-970', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-971', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-972" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-972', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-973" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-973', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-974', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-975" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-975', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-976" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-976', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-977" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-977', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-978" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-978', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-979" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-979', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-980', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_findall_ns"></a><div id="_ETreeTestCaseBase.test_findall_ns-def"><a name="L869"></a><tt class="py-lineno"> 869</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_findall_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_findall_ns-expanded"><a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">        <tt id="link-981" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-973', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-981', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-982" class="py-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-974', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-982', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-983" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-975', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">        <tt id="link-976" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-976', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-977" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-983', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">        <tt id="link-984" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-984', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-985" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-977', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-978" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-978', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-979" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-979', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-980', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-981" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-981', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-982', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-983" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-983', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-984', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes_keywords"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-def"><a name="L868"></a><tt class="py-lineno"> 868</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_keywords-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_keywords');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-expanded"><a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">        <tt id="link-985" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-985', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-986" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-986', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-987" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-987', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-988" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-988', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-989" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-989', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-990', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-991" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-991', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-992', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element_with_attributes_keywords"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-def"><a name="L876"></a><tt class="py-lineno"> 876</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_keywords-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_keywords');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_keywords-expanded"><a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">        <tt id="link-993" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-985', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-993', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-994" class="py-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-986', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-994', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-987', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">         </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-988" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-995', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">         </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-996" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-988', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">=</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-989" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-996', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">=</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">bar</tt><tt class="py-op">=</tt><tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-997" 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-989', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-997', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-998" 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-990', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes"></a><div id="_ETreeTestCaseBase.test_element_with_attributes-def"><a name="L875"></a><tt class="py-lineno"> 875</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes-expanded"><a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">        <tt id="link-991" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-998', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element_with_attributes"></a><div id="_ETreeTestCaseBase.test_element_with_attributes-def"><a name="L883"></a><tt class="py-lineno"> 883</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes-expanded"><a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">        <tt id="link-999" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-991', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-999', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1000" class="py-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-992', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-993" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1000', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-993', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">         </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-994" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1001', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">         </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1002" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-994', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1002', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1003" 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-995', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1003', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1004" 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-996', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_element_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-def"><a name="L882"></a><tt class="py-lineno"> 882</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-expanded"><a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">        <tt id="link-997" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1004', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_element_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-def"><a name="L890"></a><tt class="py-lineno"> 890</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_element_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_element_with_attributes_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_element_with_attributes_ns-expanded"><a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">        <tt id="link-1005" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-997', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-998" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1005', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-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-998', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1006', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1007" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-999', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line"> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1000" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1007', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1008" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1000', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1008', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1009" 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-1001', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1009', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1010" 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-1002', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_subelement_with_attributes"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes-def"><a name="L889"></a><tt class="py-lineno"> 889</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-expanded"><a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">        <tt id="link-1003" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1010', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_subelement_with_attributes"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes-def"><a name="L897"></a><tt class="py-lineno"> 897</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes-expanded"><a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">        <tt id="link-1011" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1003', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt>  <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1011', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt>  <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1012" class="py-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-1004', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1005" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1012', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1005', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">        <tt id="link-1006" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1006', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1007" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1013', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">        <tt id="link-1014" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1014', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1015" class="py-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-1007', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1008" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1008', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line">         </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1009" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1015', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1016', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">         </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1017" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1009', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt id="link-1010" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1010', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"Baz"</tt><tt class="py-op">)</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Baz"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1011" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1017', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">        <tt id="link-1018" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1018', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">=</tt><tt class="py-string">"Baz"</tt><tt class="py-op">)</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Baz"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1019" 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-1011', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'baz'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1012" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1019', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'baz'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1020" 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-1012', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_subelement_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-def"><a name="L898"></a><tt class="py-lineno"> 898</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-expanded"><a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">        <tt id="link-1013" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1020', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_subelement_with_attributes_ns"></a><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-def"><a name="L906"></a><tt class="py-lineno"> 906</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_with_attributes_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_with_attributes_ns-expanded"><a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">        <tt id="link-1021" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1013', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1014" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1021', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1022" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1014', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1015" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1022', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1015', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">        <tt id="link-1016" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1016', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1017" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1023', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt id="link-1024" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1024', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1025" class="py-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-1017', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1018" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1018', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1019" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1025', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1026', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line"> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1027" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1019', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">        <tt id="link-1020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1020', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1027', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">        <tt id="link-1028" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1028', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">:</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}bar'</tt><tt class="py-op">:</tt><tt class="py-string">'Bar'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1029" 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-1021', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1022" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1029', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns1}foo'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1030" 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-1022', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_write"></a><div id="_ETreeTestCaseBase.test_write-def"><a name="L907"></a><tt class="py-lineno"> 907</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write-expanded"><a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt id="link-1023" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1030', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{ns2}bar'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_write"></a><div id="_ETreeTestCaseBase.test_write-def"><a name="L915"></a><tt class="py-lineno"> 915</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write-expanded"><a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">        <tt id="link-1031" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1023', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1024" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1031', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-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-1024', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1025" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1032', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1025', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">        <tt id="link-1026" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1033', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">        <tt id="link-1034" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1026', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1027" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1034', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1027', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1035', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1036" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1028', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line"> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</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="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">            <tt id="link-1029" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1029', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1030" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1036', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line"> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</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="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">            <tt id="link-1037" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1037', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1038" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1030', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1031" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1031', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc%s&gt;This is a test.&lt;/doc%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1032" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1038', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1039" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1039', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc%s&gt;This is a test.&lt;/doc%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1040" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1032', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt id="link-1033" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1033', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1034" 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-1034', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">            <tt id="link-1035" 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-1035', 'data', 'link-1035');">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="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">                <tt id="link-1036" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1036', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc%s&gt;This is a test.&lt;/doc%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">                <tt id="link-1037" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-1037', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-1038" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1038', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">    <tt id="link-1039" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1039', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_write_method_html"></a><div id="_ETreeTestCaseBase.test_write_method_html-def"><a name="L922"></a><tt class="py-lineno"> 922</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_html-expanded"><a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">        <tt id="link-1040" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1040', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt id="link-1041" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1041', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1042" 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-1042', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">            <tt id="link-1043" 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-1043', 'data', 'link-1043');">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="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">                <tt id="link-1044" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1044', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc%s&gt;This is a test.&lt;/doc%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">                <tt id="link-1045" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-1045', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-1046" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1046', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">    <tt id="link-1047" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1047', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_write_method_html"></a><div id="_ETreeTestCaseBase.test_write_method_html-def"><a name="L930"></a><tt class="py-lineno"> 930</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_html-expanded"><a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">        <tt id="link-1048" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1040', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1041" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1048', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1049" class="py-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-1041', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1049', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1042', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">        <tt id="link-1043" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1050', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">        <tt id="link-1051" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1043', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1044" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1051', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1052" class="py-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-1044', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1052', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1053" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1045', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">        <tt id="link-1046" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1046', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1047" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1053', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">        <tt id="link-1054" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1054', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1055" class="py-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-1047', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1048', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">         </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">        <tt id="link-1049" class="py-name" targets="Package lxml.html=lxml.html-module.html,Method lxml.html.diff.href_token.html()=lxml.html.diff.href_token-class.html#html,Method lxml.html.diff.tag_token.html()=lxml.html.diff.tag_token-class.html#html,Method lxml.html.diff.token.html()=lxml.html.diff.token-class.html#html"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1055', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1056', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">         </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">        <tt id="link-1057" class="py-name" targets="Package lxml.html=lxml.html-module.html,Method lxml.html.diff.href_token.html()=lxml.html.diff.href_token-class.html#html,Method lxml.html.diff.tag_token.html()=lxml.html.diff.tag_token-class.html#html,Method lxml.html.diff.token.html()=lxml.html.diff.token-class.html#html"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1049', 'html', 'link-1049');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-1050" class="py-name"><a title="lxml.etree.Element
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1057', 'html', 'link-1057');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-1058" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1050', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">        <tt id="link-1051" class="py-name" 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-1051', 'body', 'link-1051');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-1052" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1052', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1053" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1058', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">        <tt id="link-1059" 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-1059', 'body', 'link-1059');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-1060" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1060', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1061" 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-1053', 'html', 'link-1049');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">        <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-1054" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1054', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1055" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-1055', 'body', 'link-1051');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">        <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1061', 'html', 'link-1057');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">        <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-1062" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1062', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1063" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-1063', 'body', 'link-1059');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">        <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-1064" 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-1056', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">        <tt id="link-1057" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1057', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1058" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1058', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line"> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1059" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1064', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">        <tt id="link-1065" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1065', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1066" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1066', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1067" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1059', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt id="link-1060" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1067', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt id="link-1068" 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-1060', 'html', 'link-1049');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</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="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1061', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1062" 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-1062', 'method', 'link-1062');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">        <tt id="link-1063" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1063', 'data', 'link-1035');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1064" 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-1064', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt><tt id="link-1065" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1065', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-1066" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1066', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1067" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1067', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;p&gt;html&lt;br&gt;test&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">                          <tt id="link-1068" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1068', 'data', 'link-1035');">data</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="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">    <tt id="link-1069" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1069', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_write_method_text"></a><div id="_ETreeTestCaseBase.test_write_method_text-def"><a name="L942"></a><tt class="py-lineno"> 942</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_text-expanded"><a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">        <tt id="link-1070" class="py-name"><a title="lxml.etree.ElementTree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-1068', 'html', 'link-1057');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">        <tt class="py-name">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="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1069" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1069', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1070" 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-1070', 'method', 'link-1070');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">        <tt id="link-1071" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1071', 'data', 'link-1043');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1072" 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-1072', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt><tt id="link-1073" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1073', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-1074" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1074', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1075" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1075', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;p&gt;html&lt;br&gt;test&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">                          <tt id="link-1076" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1076', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line"> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">    <tt id="link-1077" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1077', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_write_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_write_method_text"></a><div id="_ETreeTestCaseBase.test_write_method_text-def"><a name="L950"></a><tt class="py-lineno"> 950</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_method_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_method_text-expanded"><a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">        <tt id="link-1078" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1070', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1071" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1078', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1079" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1071', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1072" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1079', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1072', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">        <tt id="link-1073" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1080', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">        <tt id="link-1081" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1073', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1074" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1081', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1082" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1074', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1075" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1082', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1075', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">        <tt id="link-1076" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1076', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1077" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1083', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">        <tt id="link-1084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1084', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1085" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1077', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1078" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1078', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">         </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1079" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1085', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1086', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">         </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1087" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1079', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1080" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1087', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1088" 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-1080', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1081" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1081', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1082" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1082', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1083" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1088', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1089" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1089', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1090" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1090', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1091" 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-1083', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1084" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1084', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1085" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1085', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1086" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1091', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1092" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1092', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1093" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1093', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1094" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1086', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">         </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1087" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1094', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">         </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1095" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1087', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</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="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1088" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1088', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1089" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-1089', 'method', 'link-1062');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">        <tt id="link-1090" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1090', 'data', 'link-1035');">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="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line"> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1091" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1091', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">                          <tt id="link-1092" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1092', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_write_fail"></a><div id="_ETreeTestCaseBase.test_write_fail-def"><a name="L964"></a><tt class="py-lineno"> 964</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_fail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_fail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_fail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_fail-expanded"><a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">        <tt id="link-1093" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1095', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</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="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1096" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1096', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-1097" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-1097', 'method', 'link-1070');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">        <tt id="link-1098" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1098', 'data', 'link-1043');">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="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1099" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1099', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</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 id="link-1100" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1100', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_write_fail"></a><div id="_ETreeTestCaseBase.test_write_fail-def"><a name="L972"></a><tt class="py-lineno"> 972</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_fail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_fail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_fail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_fail-expanded"><a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">        <tt id="link-1101" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1093', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1094" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1101', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1102" class="py-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-1094', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1095" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1102', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1103" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1095', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">        <tt id="link-1096" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1103', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">        <tt id="link-1104" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1096', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1097" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1104', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1105" class="py-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-1097', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1098" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1105', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1106" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1098', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1099" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1106', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1107" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1099', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt> <tt id="link-1100" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1107', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt> <tt id="link-1108" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1100', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1101" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1101', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a test.&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1102" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1102', 'write', 'link-1034');">write</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-string">"definitely////\\-\\nonexisting\\-\\////FILE"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">    <tt class="py-comment"># this could trigger a crash, apparently because the document</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">    <tt class="py-comment"># reference was prematurely garbage collected</tt> </tt>
-<a name="_ETreeTestCaseBase.test_crash"></a><div id="_ETreeTestCaseBase.test_crash-def"><a name="L974"></a><tt class="py-lineno"> 974</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_crash-toggle" onclick="return toggle('_ETreeTestCaseBase.test_crash');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_crash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_crash-expanded"><a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">        <tt id="link-1103" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1108', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1109" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1109', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;This is a test.&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1110" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1110', 'write', 'link-1042');">write</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-string">"definitely////\\-\\nonexisting\\-\\////FILE"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">    <tt class="py-comment"># this could trigger a crash, apparently because the document</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">    <tt class="py-comment"># reference was prematurely garbage collected</tt> </tt>
+<a name="_ETreeTestCaseBase.test_crash"></a><div id="_ETreeTestCaseBase.test_crash-def"><a name="L982"></a><tt class="py-lineno"> 982</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_crash-toggle" onclick="return toggle('_ETreeTestCaseBase.test_crash');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_crash-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_crash-expanded"><a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line">        <tt id="link-1111" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1103', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1104" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1111', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1112" class="py-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-1104', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1105" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1112', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1113" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1105', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">         </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line">        <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-1106" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1113', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">         </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">        <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-1114" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1106', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</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">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1107" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1114', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1115" 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-1107', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">            <tt id="link-1108" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1115', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">            <tt id="link-1116" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1108', 'value', 'link-1108');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1109" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1116', 'value', 'link-1116');">value</a></tt> <tt class="py-op">=</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1117" 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-1109', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1110" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1117', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1118" 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-1110', 'value', 'link-1108');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">             </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line">    <tt class="py-comment"># from doctest; for some reason this caused crashes too</tt> </tt>
-<a name="_ETreeTestCaseBase.test_write_ElementTreeDoctest"></a><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-def"><a name="L984"></a><tt class="py-lineno"> 984</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_ElementTreeDoctest');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-expanded"><a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">        <tt id="link-1111" class="py-name"><a title="lxml.etree.Element
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-1118', 'value', 'link-1116');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'value'</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="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">    <tt class="py-comment"># from doctest; for some reason this caused crashes too</tt> </tt>
+<a name="_ETreeTestCaseBase.test_write_ElementTreeDoctest"></a><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-def"><a name="L992"></a><tt class="py-lineno"> 992</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-toggle" onclick="return toggle('_ETreeTestCaseBase.test_write_ElementTreeDoctest');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_write_ElementTreeDoctest-expanded"><a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">        <tt id="link-1119" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1111', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1112" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1119', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1120" class="py-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-1112', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1113" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1120', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1121" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1113', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">        <tt id="link-1114" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1121', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">        <tt id="link-1122" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1114', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1115" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1122', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1123" class="py-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-1115', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1116" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1123', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1124" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1116', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">         </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">        <tt class="py-name">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="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">            <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-1117" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1124', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">         </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</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="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">            <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-1125" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1117', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1118" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-1118', '_check_element', 'link-1118');">_check_element</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1119" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1125', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'tag%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1126" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-1126', '_check_element', 'link-1126');">_check_element</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1127" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1119', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1120" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1120', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1121" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree" class="py-name" href="#" onclick="return doclink('link-1121', '_check_element_tree', 'link-1121');">_check_element_tree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_subelement_reference"></a><div id="_ETreeTestCaseBase.test_subelement_reference-def"><a name="L996"></a><tt class="py-lineno"> 996</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_reference-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_reference');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_subelement_reference-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_reference-expanded"><a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">        <tt id="link-1122" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1127', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1128" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-1128', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</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">self</tt><tt class="py-op">.</tt><tt id="link-1129" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element_tree" class="py-name" href="#" onclick="return doclink('link-1129', '_check_element_tree', 'link-1129');">_check_element_tree</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_subelement_reference"></a><div id="_ETreeTestCaseBase.test_subelement_reference-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_subelement_reference-toggle" onclick="return toggle('_ETreeTestCaseBase.test_subelement_reference');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_subelement_reference-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_subelement_reference-expanded"><a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">        <tt id="link-1130" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1122', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1123" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1130', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1131" class="py-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-1123', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1124" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1131', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1132" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1124', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">        <tt id="link-1125" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1125', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1126" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1132', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">        <tt id="link-1133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1133', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1134" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1126', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1127" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1127', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">         </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1128" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1134', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1135" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1135', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">         </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1136" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1128', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">        <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt id="link-1129" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1129', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">        <tt class="py-name">el3</tt> <tt class="py-op">=</tt> <tt id="link-1130" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1130', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line">        <tt class="py-name">al</tt> <tt class="py-op">=</tt> <tt id="link-1131" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1136', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt id="link-1137" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1137', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line">        <tt class="py-name">el3</tt> <tt class="py-op">=</tt> <tt id="link-1138" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1138', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line"> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">        <tt class="py-name">al</tt> <tt class="py-op">=</tt> <tt id="link-1139" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1131', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">        <tt class="py-name">al2</tt> <tt class="py-op">=</tt> <tt id="link-1132" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1132', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al</tt><tt class="py-op">,</tt> <tt class="py-string">'bar2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">        <tt class="py-name">al3</tt> <tt class="py-op">=</tt> <tt id="link-1133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1133', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz2'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">        <tt class="py-comment"># now move al2 into el</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1134" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1134', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">)</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">        <tt class="py-comment"># now change al3 directly</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">        <tt class="py-name">al3</tt><tt class="py-op">.</tt><tt id="link-1135" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1139', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">        <tt class="py-name">al2</tt> <tt class="py-op">=</tt> <tt id="link-1140" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1140', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al</tt><tt class="py-op">,</tt> <tt class="py-string">'bar2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line">        <tt class="py-name">al3</tt> <tt class="py-op">=</tt> <tt id="link-1141" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1141', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">,</tt> <tt class="py-string">'baz2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">        <tt class="py-comment"># now move al2 into el</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1142" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1142', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">al2</tt><tt class="py-op">)</tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">        <tt class="py-comment"># now change al3 directly</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt class="py-name">al3</tt><tt class="py-op">.</tt><tt id="link-1143" 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-1135', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'baz2-modified'</tt> </tt>
-<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-comment"># it should have changed through this route too</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">            <tt class="py-string">'baz2-modified'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1136" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1143', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'baz2-modified'</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line"> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">        <tt class="py-comment"># it should have changed through this route too</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">            <tt class="py-string">'baz2-modified'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1144" 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-1136', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_set_text"></a><div id="_ETreeTestCaseBase.test_set_text-def"><a name="L1019"></a><tt class="py-lineno">1019</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text-expanded"><a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt id="link-1137" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1144', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_set_text"></a><div id="_ETreeTestCaseBase.test_set_text-def"><a name="L1027"></a><tt class="py-lineno">1027</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text-expanded"><a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">        <tt id="link-1145" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1137', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1138" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1145', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1146" class="py-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-1138', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1139" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1146', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1147" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1139', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">        <tt id="link-1140" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1140', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1141" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1147', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt id="link-1148" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1148', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1149" class="py-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-1141', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1142" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1142', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">         </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1143" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1149', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1150" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1150', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">         </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1151" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1143', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1144" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1144', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1145" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1151', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1152" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1152', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1153" 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-1145', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">            <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1146" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1153', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">            <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1154" 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-1146', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">            <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">            <tt class="py-name">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-1147" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1154', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">            <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1155" 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-1147', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_set_text2"></a><div id="_ETreeTestCaseBase.test_set_text2-def"><a name="L1033"></a><tt class="py-lineno">1033</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text2-expanded"><a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">        <tt id="link-1148" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1155', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_set_text2"></a><div id="_ETreeTestCaseBase.test_set_text2-def"><a name="L1041"></a><tt class="py-lineno">1041</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text2-expanded"><a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">        <tt id="link-1156" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1148', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1149" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1156', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1157" class="py-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-1149', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1150" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1157', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1158" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1150', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">        <tt id="link-1151" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1151', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1152" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1158', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">        <tt id="link-1159" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1159', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1160" class="py-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-1152', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1153" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1153', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">         </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1154" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1160', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1161" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1161', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">         </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1162" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1154', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">a</tt><tt class="py-op">.</tt><tt id="link-1155" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1162', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">a</tt><tt class="py-op">.</tt><tt id="link-1163" 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-1155', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1156" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1156', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt> <tt class="py-op">,</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">            <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1157" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1163', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1164" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1164', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt> <tt class="py-op">,</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line">            <tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1165" 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-1157', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">            <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1158" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1165', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">            <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1166" 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-1158', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_set_text_none"></a><div id="_ETreeTestCaseBase.test_set_text_none-def"><a name="L1047"></a><tt class="py-lineno">1047</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_none-expanded"><a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">        <tt id="link-1159" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1166', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_set_text_none"></a><div id="_ETreeTestCaseBase.test_set_text_none-def"><a name="L1055"></a><tt class="py-lineno">1055</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_none-expanded"><a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">        <tt id="link-1167" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1159', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1160" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1167', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1168" class="py-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-1160', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1161" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1168', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1169" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1161', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1162" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1169', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line"> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1170" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1162', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1163" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1170', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line"> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1171" 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-1163', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1164" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1171', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1172" 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-1164', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1165" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1172', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"> </tt>
+<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 class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1173" 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-1165', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1166" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1166', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1167" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1167', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_set_text_empty"></a><div id="_ETreeTestCaseBase.test_set_text_empty-def"><a name="L1060"></a><tt class="py-lineno">1060</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_set_text_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_empty-expanded"><a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">        <tt id="link-1168" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1173', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1174" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1174', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1175" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1175', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_set_text_empty"></a><div id="_ETreeTestCaseBase.test_set_text_empty-def"><a name="L1068"></a><tt class="py-lineno">1068</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_set_text_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_set_text_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_set_text_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_set_text_empty-expanded"><a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">        <tt id="link-1176" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1168', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1169" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1176', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1177" class="py-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-1169', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1170" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1177', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1178" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1170', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1171" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1178', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1179" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1171', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1172" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1179', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1180" 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-1172', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1173" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1180', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1181" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1173', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1174" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1181', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1182" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1174', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1175" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1175', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1176" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1176', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_tail1"></a><div id="_ETreeTestCaseBase.test_tail1-def"><a name="L1070"></a><tt class="py-lineno">1070</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail1-expanded"><a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">        <tt id="link-1177" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1182', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1183" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1183', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1184" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1184', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_tail1"></a><div id="_ETreeTestCaseBase.test_tail1-def"><a name="L1078"></a><tt class="py-lineno">1078</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail1-expanded"><a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">        <tt id="link-1185" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1177', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1178" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1185', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1186" class="py-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-1178', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1179" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1186', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1187" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1179', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">        <tt id="link-1180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1180', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1181" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1187', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt id="link-1188" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1188', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1189" class="py-name"><a title="lxml.etree
 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-1181', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1182', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">         </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1183" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1189', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1190" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1190', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">         </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1191" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1183', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1184" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1184', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'dag'</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1185" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1185', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1186" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1186', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1187" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1187', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1188" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1188', 'tail', 'link-38');">tail</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1189" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1189', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_append"></a><div id="_ETreeTestCaseBase.test_tail_append-def"><a name="L1085"></a><tt class="py-lineno">1085</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_append-expanded"><a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt id="link-1190" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1191', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1192" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1192', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'dag'</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1193" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1193', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1194" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1194', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1195', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hoi'</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1196" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1196', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'dag'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1197" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1197', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_append"></a><div id="_ETreeTestCaseBase.test_tail_append-def"><a name="L1093"></a><tt class="py-lineno">1093</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_append-expanded"><a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt id="link-1198" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1190', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1191" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1198', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1199" class="py-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-1191', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1192" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1199', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1200" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1192', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">         </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1193" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1200', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">         </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1201" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1193', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1194" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1201', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1202" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1194', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1195', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b_tail'</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1196" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1196', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b_tail'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1197" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1197', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_set_twice"></a><div id="_ETreeTestCaseBase.test_tail_set_twice-def"><a name="L1095"></a><tt class="py-lineno">1095</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_twice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_twice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_set_twice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_twice-expanded"><a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">        <tt id="link-1198" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1202', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</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">b</tt><tt class="py-op">.</tt><tt id="link-1203" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1203', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b_tail'</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1204" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1204', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b_tail'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1205" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1205', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_set_twice"></a><div id="_ETreeTestCaseBase.test_tail_set_twice-def"><a name="L1103"></a><tt class="py-lineno">1103</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_twice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_twice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_set_twice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_twice-expanded"><a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">        <tt id="link-1206" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1198', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1199" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1206', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1207" class="py-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-1199', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1200" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1207', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1208" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1200', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt id="link-1201" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1201', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1202" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1208', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt id="link-1209" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1209', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1210" class="py-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-1202', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1203" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1203', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">         </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1204" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1210', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1211" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1211', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">         </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1212" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1204', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1205" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1205', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1206" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1206', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1207" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1207', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1208" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1208', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1209" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1209', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1210" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1210', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;bar&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_tail_set_none"></a><div id="_ETreeTestCaseBase.test_tail_set_none-def"><a name="L1107"></a><tt class="py-lineno">1107</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_set_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_none-expanded"><a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">        <tt id="link-1211" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1212', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1213" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1213', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1214" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1214', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1215', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1216" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1216', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1217" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1217', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1218" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1218', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;bar&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_tail_set_none"></a><div id="_ETreeTestCaseBase.test_tail_set_none-def"><a name="L1115"></a><tt class="py-lineno">1115</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_set_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_set_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_set_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_set_none-expanded"><a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">        <tt id="link-1219" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1211', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1212" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1219', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1220" class="py-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-1212', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1213" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1220', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1221" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1213', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1214" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1221', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1222" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1214', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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">a</tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1215', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1216" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1216', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">            <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">a</tt><tt class="py-op">.</tt><tt id="link-1217" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1217', 'tail', 'link-38');">tail</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-name">self</tt><tt class="py-op">.</tt><tt id="link-1218" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1218', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1219" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1219', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">    <tt id="link-1220" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1220', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_extend'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_extend"></a><div id="_ETreeTestCaseBase.test_extend-def"><a name="L1118"></a><tt class="py-lineno">1118</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_extend-toggle" onclick="return toggle('_ETreeTestCaseBase.test_extend');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_extend-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_extend-expanded"><a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">        <tt id="link-1221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1221', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1222" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1222', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1223" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1223', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1224" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1224', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1225" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1225', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1226" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1226', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1227" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1227', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line"> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">    <tt id="link-1228" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1228', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_extend'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_extend"></a><div id="_ETreeTestCaseBase.test_extend-def"><a name="L1126"></a><tt class="py-lineno">1126</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_extend-toggle" onclick="return toggle('_ETreeTestCaseBase.test_extend');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_extend-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_extend-expanded"><a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt id="link-1229" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1229', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1230" class="py-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-1222', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1223" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1230', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1231" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1223', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">            <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1224" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1231', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">            <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1232" class="py-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-1224', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1225" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1225', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1226" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1226', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1227" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1232', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1233" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1233', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1234" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1234', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1235" 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-1227', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1228" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1228', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line"> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">        <tt id="link-1229" 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-1229', 'elements', 'link-1229');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</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">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1230" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1235', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-1236" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1236', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">        <tt id="link-1237" 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-1237', 'elements', 'link-1237');">elements</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1238" class="py-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-1230', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1231" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1238', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1239" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1231', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1232" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1239', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1240" 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-1232', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEXT%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1233" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1233', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">            <tt id="link-1234" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1234', 'elements', 'link-1229');">elements</a></tt><tt class="py-op">.</tt><tt id="link-1235" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1235', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">        <tt id="link-1236" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1236', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-1237" 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-1237', 'extend', 'link-1237');">extend</a></tt><tt class="py-op">(</tt><tt id="link-1238" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1238', 'elements', 'link-1229');">elements</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"> </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 class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">"a0"</tt><tt class="py-op">,</tt> <tt class="py-string">"a1"</tt><tt class="py-op">,</tt> <tt class="py-string">"a2"</tt><tt class="py-op">,</tt> <tt class="py-string">"test0"</tt><tt class="py-op">,</tt> <tt class="py-string">"test1"</tt><tt class="py-op">,</tt> <tt class="py-string">"test2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1239" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1240', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEXT%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-1241" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1241', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL%s"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">            <tt id="link-1242" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1242', 'elements', 'link-1237');">elements</a></tt><tt class="py-op">.</tt><tt id="link-1243" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1243', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line"> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">        <tt id="link-1244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1244', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1245" 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-1245', 'extend', 'link-1245');">extend</a></tt><tt class="py-op">(</tt><tt id="link-1246" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-1246', 'elements', 'link-1237');">elements</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">"a0"</tt><tt class="py-op">,</tt> <tt class="py-string">"a1"</tt><tt class="py-op">,</tt> <tt class="py-string">"a2"</tt><tt class="py-op">,</tt> <tt class="py-string">"test0"</tt><tt class="py-op">,</tt> <tt class="py-string">"test1"</tt><tt class="py-op">,</tt> <tt class="py-string">"test2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1247" 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-1239', 'tag', 'link-36');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1240" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1240', 'root', 'link-42');">root</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">"text0"</tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">,</tt> <tt class="py-string">"text2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1241" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1247', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1248" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1248', 'root', 'link-50');">root</a></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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">"text0"</tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">,</tt> <tt class="py-string">"text2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEXT2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1249" 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-1241', 'text', 'link-37');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1242" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1242', 'root', 'link-42');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">"tail0"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1243" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1243', 'tail', 'link-38');">tail</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1244', 'root', 'link-42');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_comment"></a><div id="_ETreeTestCaseBase.test_comment-def"><a name="L1144"></a><tt class="py-lineno">1144</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment-expanded"><a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">        <tt id="link-1245" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1249', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1250" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1250', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">"tail0"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">,</tt> <tt class="py-string">"tail2"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL0"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL1"</tt><tt class="py-op">,</tt> <tt class="py-string">"TAIL2"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1251" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1251', 'tail', 'link-46');">tail</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1252" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1252', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_comment"></a><div id="_ETreeTestCaseBase.test_comment-def"><a name="L1152"></a><tt class="py-lineno">1152</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment-expanded"><a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">        <tt id="link-1253" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1245', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1246" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1253', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1254" class="py-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-1246', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1247" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1254', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1255" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1247', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">        <tt id="link-1248" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1248', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1249" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1255', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line">        <tt id="link-1256" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1256', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1257" class="py-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-1249', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1250" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1250', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">        <tt id="link-1251" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1251', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1252" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1257', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1258" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1258', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">        <tt id="link-1259" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1259', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1260" class="py-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-1252', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1253" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1253', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1254" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1260', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1261" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1261', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1262" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1254', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1255" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1255', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-1256" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1256', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1257" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1262', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1263" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1263', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1264" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1264', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1265" 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-1257', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1258" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1258', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1259" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1265', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1266" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1266', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1267" 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-1259', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree &lt; 1.3 adds whitespace around comments</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">    <tt id="link-1260" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1260', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_comment_text"></a><div id="_ETreeTestCaseBase.test_comment_text-def"><a name="L1156"></a><tt class="py-lineno">1156</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_text-expanded"><a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">        <tt id="link-1261" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1267', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree &lt; 1.3 adds whitespace around comments</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">    <tt id="link-1268" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1268', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_comment_text"></a><div id="_ETreeTestCaseBase.test_comment_text-def"><a name="L1164"></a><tt class="py-lineno">1164</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_text-expanded"><a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">        <tt id="link-1269" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1261', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1262" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1269', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1270" class="py-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-1262', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1263" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1270', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1271" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1263', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt id="link-1264" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1264', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1265" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1271', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">        <tt id="link-1272" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1272', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1273" class="py-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-1265', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1266" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1266', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt id="link-1267" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1267', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1268" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1273', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1274" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1274', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt id="link-1275" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1275', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1276" class="py-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-1268', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1269" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1269', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">        <tt id="link-1270" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1270', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1271" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1276', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1277" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1277', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">        <tt id="link-1278" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1278', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1279" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1271', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1272" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1272', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1273" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1279', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1280" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1280', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1281" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1273', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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-name">a</tt><tt class="py-op">.</tt><tt id="link-1274" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1274', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-1275" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1275', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1276" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1281', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1282" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1282', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1283" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1283', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1284" 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-1276', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">            <tt id="link-1277" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1277', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--foo--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">            <tt id="link-1278" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1278', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1279" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1284', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">            <tt id="link-1285" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1285', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--foo--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">            <tt id="link-1286" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1286', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1287" 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-1279', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1280" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1287', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TEST"</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1288" 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-1280', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">            <tt id="link-1281" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1281', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--TEST--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">            <tt id="link-1282" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1282', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree &lt; 1.3 adds whitespace around comments</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">    <tt id="link-1283" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1283', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_whitespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_comment_whitespace"></a><div id="_ETreeTestCaseBase.test_comment_whitespace-def"><a name="L1179"></a><tt class="py-lineno">1179</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_whitespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_whitespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_whitespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_whitespace-expanded"><a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line">        <tt id="link-1284" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1288', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">            <tt id="link-1289" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1289', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--TEST--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">            <tt id="link-1290" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1290', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree &lt; 1.3 adds whitespace around comments</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">    <tt id="link-1291" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1291', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_comment_whitespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_comment_whitespace"></a><div id="_ETreeTestCaseBase.test_comment_whitespace-def"><a name="L1187"></a><tt class="py-lineno">1187</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_whitespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_whitespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_whitespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_whitespace-expanded"><a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">        <tt id="link-1292" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1284', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1285" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1292', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1293" class="py-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-1285', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1286" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1293', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1294" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1286', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt id="link-1287" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1287', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1288" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1294', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">        <tt id="link-1295" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1295', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1296" class="py-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-1288', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1289" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1289', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">        <tt id="link-1290" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1290', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1291" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1296', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1297" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1297', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">        <tt id="link-1298" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1298', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1299" class="py-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-1291', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1292" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1292', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">        <tt id="link-1293" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1293', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1294" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1299', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1300" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1300', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line">        <tt id="link-1301" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1301', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1302" class="py-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-1294', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1295" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1295', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1296" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1302', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1303" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1303', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1304" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1296', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1297" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1297', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-1298" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1298', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">' foo  '</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1299" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1304', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">a</tt><tt class="py-op">.</tt><tt id="link-1305" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1305', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-1306" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1306', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">' foo  '</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1307" 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-1299', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">' foo  '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">            <tt id="link-1300" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1300', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!-- foo  --&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">            <tt id="link-1301" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1301', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_comment_nonsense"></a><div id="_ETreeTestCaseBase.test_comment_nonsense-def"><a name="L1192"></a><tt class="py-lineno">1192</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_nonsense');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_nonsense-expanded"><a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">        <tt id="link-1302" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1302', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1303" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1307', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">' foo  '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">            <tt id="link-1308" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1308', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!-- foo  --&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">            <tt id="link-1309" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1309', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_comment_nonsense"></a><div id="_ETreeTestCaseBase.test_comment_nonsense-def"><a name="L1200"></a><tt class="py-lineno">1200</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_nonsense');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_nonsense-expanded"><a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">        <tt id="link-1310" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1310', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1311" class="py-name"><a title="lxml.etree
 lxml.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-1303', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1304" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1304', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1305" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1305', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1306" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1311', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1312" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1312', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1313" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1313', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1314" 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-1306', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1307" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1314', 'attrib', 'link-320');">attrib</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1315" 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-1307', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1308" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-1315', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1316" 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-1308', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1309" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1316', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1317" 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-1309', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">        <tt class="py-comment"># should not iterate</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_pi"></a><div id="_ETreeTestCaseBase.test_pi-def"><a name="L1204"></a><tt class="py-lineno">1204</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi-expanded"><a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt id="link-1310" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1317', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-comment"># should not iterate</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">c</tt><tt class="py-op">:</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_pi"></a><div id="_ETreeTestCaseBase.test_pi-def"><a name="L1212"></a><tt class="py-lineno">1212</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi-expanded"><a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">        <tt id="link-1318" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1310', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1311" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1318', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1319" class="py-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-1311', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1312" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1319', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1320" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1312', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt id="link-1313" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1313', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1314" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1320', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt id="link-1321" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1321', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1322" class="py-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-1314', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1315" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1315', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1316" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1322', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1323" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1323', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1324" class="py-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-1316', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1317" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1324', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line"> </tt>
+<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1325" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1317', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1318" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1318', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1319" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1325', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1326" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1326', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1327" 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-1319', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1320" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1320', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1321" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1321', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;?foo some more text?&gt;&lt;/a&gt;"</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_processinginstruction"></a><div id="_ETreeTestCaseBase.test_processinginstruction-def"><a name="L1216"></a><tt class="py-lineno">1216</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_processinginstruction-toggle" onclick="return toggle('_ETreeTestCaseBase.test_processinginstruction');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_processinginstruction-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_processinginstruction-expanded"><a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">        <tt id="link-1322" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1327', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1328" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1328', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1329" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1329', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;?foo some more text?&gt;&lt;/a&gt;"</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">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_processinginstruction"></a><div id="_ETreeTestCaseBase.test_processinginstruction-def"><a name="L1224"></a><tt class="py-lineno">1224</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_processinginstruction-toggle" onclick="return toggle('_ETreeTestCaseBase.test_processinginstruction');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_processinginstruction-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_processinginstruction-expanded"><a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">        <tt id="link-1330" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1322', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1323" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1330', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1331" class="py-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-1323', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1324" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1331', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1332" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1324', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt id="link-1325" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1325', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1326" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1332', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">        <tt id="link-1333" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1333', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1334" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1326', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1327" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1327', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1328" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1334', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1335" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1335', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1336" class="py-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-1328', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1329" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1329', 'PI', 'link-1329');">PI</a></tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line"> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1330" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1336', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1337" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1337', 'PI', 'link-1337');">PI</a></tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line"> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1338" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1330', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1331" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1331', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1332" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1338', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1339" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1339', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1340" 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-1332', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1333" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1333', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1334" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1334', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;?foo some more text?&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">                       <tt class="py-name">a</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="_ETreeTestCaseBase.test_pi_nonsense"></a><div id="_ETreeTestCaseBase.test_pi_nonsense-def"><a name="L1228"></a><tt class="py-lineno">1228</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi_nonsense');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_pi_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi_nonsense-expanded"><a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1335" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1340', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">)</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1341" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1341', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1342" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1342', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;?foo some more text?&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_pi_nonsense"></a><div id="_ETreeTestCaseBase.test_pi_nonsense-def"><a name="L1236"></a><tt class="py-lineno">1236</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_pi_nonsense-toggle" onclick="return toggle('_ETreeTestCaseBase.test_pi_nonsense');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_pi_nonsense-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_pi_nonsense-expanded"><a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1343" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1335', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">        <tt id="link-1336" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1336', 'pi', 'link-1336');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt id="link-1337" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1337', 'pi', 'link-1336');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1338" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1343', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">        <tt id="link-1344" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1344', 'pi', 'link-1344');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt id="link-1345" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1345', 'pi', 'link-1344');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1346" 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-1338', 'attrib', 'link-312');">attrib</a></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">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1339" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1339', 'pi', 'link-1336');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1340" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1346', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1347" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1347', 'pi', 'link-1344');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1348" 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-1340', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1341" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1341', 'pi', 'link-1336');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1342" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-1348', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1349" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1349', 'pi', 'link-1344');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1350" 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-1342', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1343" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1343', 'pi', 'link-1336');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1344" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-1350', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-1351" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1351', 'pi', 'link-1344');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1352" 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-1344', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1345" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1345', 'pi', 'link-1336');">pi</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">        <tt class="py-comment"># should not iterate</tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-1346" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1346', 'pi', 'link-1336');">pi</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem"></a><div id="_ETreeTestCaseBase.test_setitem-def"><a name="L1240"></a><tt class="py-lineno">1240</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem-expanded"><a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">        <tt id="link-1347" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1352', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1353" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1353', 'pi', 'link-1344');">pi</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">        <tt class="py-comment"># should not iterate</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt id="link-1354" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1354', 'pi', 'link-1344');">pi</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem"></a><div id="_ETreeTestCaseBase.test_setitem-def"><a name="L1248"></a><tt class="py-lineno">1248</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem-expanded"><a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">        <tt id="link-1355" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1347', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1348" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1355', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1356" class="py-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-1348', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1349" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1356', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1357" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1349', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">        <tt id="link-1350" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1350', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1351" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1357', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">        <tt id="link-1358" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1358', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1359" class="py-name"><a title="lxml.etree
 lxml.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-1351', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1352" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1352', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line"> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1353" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1359', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1360" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1360', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line"> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1361" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1353', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1354" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1354', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1355" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1361', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1362" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1362', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1363" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1355', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">            <tt class="py-name">c</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">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1356" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1356', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1357" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1357', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1358" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1358', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1359" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1359', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">                       <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_setitem2"></a><div id="_ETreeTestCaseBase.test_setitem2-def"><a name="L1256"></a><tt class="py-lineno">1256</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem2-expanded"><a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">        <tt id="link-1360" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1363', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1364" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1364', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1365" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1365', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1366" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1366', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1367" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1367', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">                       <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_setitem2"></a><div id="_ETreeTestCaseBase.test_setitem2-def"><a name="L1264"></a><tt class="py-lineno">1264</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem2-expanded"><a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">        <tt id="link-1368" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1360', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1361" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1368', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1369" class="py-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-1361', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1362" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1369', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1370" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1362', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">        <tt id="link-1363" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1363', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1364" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1370', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">        <tt id="link-1371" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1371', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1372" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1364', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1365" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1365', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1366" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1372', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1373" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1373', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line"> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1374" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1366', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">            <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1367" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1367', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">            <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1368" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1368', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">            <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1369" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1374', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">            <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1375" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1375', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">            <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1376" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1376', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">            <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1377" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1369', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1370" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1370', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1371" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1371', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">            <tt id="link-1372" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1372', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1373" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1373', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1374" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1374', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">                       <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem_replace"></a><div id="_ETreeTestCaseBase.test_setitem_replace-def"><a name="L1274"></a><tt class="py-lineno">1274</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_replace-expanded"><a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">        <tt id="link-1375" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1377', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1378" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1378', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1379" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1379', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">            <tt id="link-1380" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1380', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;d&gt;&lt;e&gt;&lt;/e&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1381" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1381', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1382" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1382', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">                       <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem_replace"></a><div id="_ETreeTestCaseBase.test_setitem_replace-def"><a name="L1282"></a><tt class="py-lineno">1282</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_replace-expanded"><a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">        <tt id="link-1383" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1375', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1376" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1383', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1384" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1376', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1377" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1384', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1385" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1377', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">        <tt id="link-1378" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1378', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1379" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1385', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">        <tt id="link-1386" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1386', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1387" class="py-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-1379', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1380" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1380', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line"> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1381" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1387', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1388" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1388', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1389" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1381', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">        <tt id="link-1382" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1382', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1383" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1389', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt id="link-1390" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1390', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1391" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1383', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1384" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1384', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1385" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1385', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem_indexerror"></a><div id="_ETreeTestCaseBase.test_setitem_indexerror-def"><a name="L1284"></a><tt class="py-lineno">1284</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_indexerror-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_indexerror');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem_indexerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_indexerror-expanded"><a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt id="link-1386" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1391', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1392" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1392', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1393" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1393', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem_indexerror"></a><div id="_ETreeTestCaseBase.test_setitem_indexerror-def"><a name="L1292"></a><tt class="py-lineno">1292</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_indexerror-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_indexerror');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem_indexerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_indexerror-expanded"><a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">        <tt id="link-1394" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1386', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1387" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1394', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1395" class="py-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-1387', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1388" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1395', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1396" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1388', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt id="link-1389" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1389', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1390" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1396', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">        <tt id="link-1397" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1397', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1398" class="py-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-1390', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1391" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1391', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line"> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1392" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1398', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1399" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1399', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1400" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1392', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1393" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1393', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt id="link-1394" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1400', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1401" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1401', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line"> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IndexError</tt><tt class="py-op">,</tt> <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt id="link-1402" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1394', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setitem_tail"></a><div id="_ETreeTestCaseBase.test_setitem_tail-def"><a name="L1293"></a><tt class="py-lineno">1293</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_tail-expanded"><a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">        <tt id="link-1395" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1402', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setitem_tail"></a><div id="_ETreeTestCaseBase.test_setitem_tail-def"><a name="L1301"></a><tt class="py-lineno">1301</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setitem_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setitem_tail-expanded"><a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">        <tt id="link-1403" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1395', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1396" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1403', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1404" class="py-name"><a title="lxml.etree
 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-1396', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1397" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1404', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1405" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1397', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt id="link-1398" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1398', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1399" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1405', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">        <tt id="link-1406" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1406', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1407" class="py-name"><a title="lxml.etree
 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-1399', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1400" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1400', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1401" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1407', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1408" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1408', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1409" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1401', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1402" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1402', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1403" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1403', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'B2'</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1404" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1409', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1410" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1410', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1411" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1411', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'B2'</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1412" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1404', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</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">c</tt><tt class="py-op">.</tt><tt id="link-1405" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1405', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
-<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
-<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-1406" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1406', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">            <tt id="link-1407" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1407', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</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-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_write"></a><div id="_ETreeTestCaseBase.test_tag_write-def"><a name="L1308"></a><tt class="py-lineno">1308</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_write-expanded"><a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">        <tt id="link-1408" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1412', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</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">c</tt><tt class="py-op">.</tt><tt id="link-1413" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1413', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line"> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">c</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1414" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1414', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">            <tt id="link-1415" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1415', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_write"></a><div id="_ETreeTestCaseBase.test_tag_write-def"><a name="L1316"></a><tt class="py-lineno">1316</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_write-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_write-expanded"><a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt id="link-1416" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1408', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1409" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1416', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1417" class="py-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-1409', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1410" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1417', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1418" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1410', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt id="link-1411" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1411', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1412" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1418', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">        <tt id="link-1419" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1419', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1420" class="py-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-1412', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1413" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1413', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1414" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1420', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1421" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1421', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1422" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1414', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1415" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1415', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1416" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1422', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1423" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1423', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line"> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1424" 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-1416', 'tag', 'link-36');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line"> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">            <tt class="py-string">'c'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1417" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1424', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
+<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">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">            <tt class="py-string">'c'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1425" 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-1417', 'tag', 'link-36');">tag</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="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1418" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1418', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">            <tt id="link-1419" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1419', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;b&gt;&lt;/b&gt;&lt;/c&gt;'</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">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_reset_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_ns-def"><a name="L1325"></a><tt class="py-lineno">1325</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_reset_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_ns-expanded"><a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">        <tt id="link-1420" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1425', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1426" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1426', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">            <tt id="link-1427" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1427', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;b&gt;&lt;/b&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_reset_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_ns-def"><a name="L1333"></a><tt class="py-lineno">1333</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_reset_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_ns-expanded"><a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">        <tt id="link-1428" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1420', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1421" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1428', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1429" class="py-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-1421', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1422" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1429', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1430" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1422', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">        <tt id="link-1423" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1423', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1424" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1430', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">        <tt id="link-1431" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1431', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1432" class="py-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-1424', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1425" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1425', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">        <tt id="link-1426" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1426', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1427" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1432', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1433" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1433', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line">        <tt id="link-1434" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1434', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1435" class="py-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-1427', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1428" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1428', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1429" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1435', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1436" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1436', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1437" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1429', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">        <tt class="py-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1430" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1430', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">        <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1431" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1431', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{a}b'</tt><tt class="py-op">,</tt>  <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1432" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1437', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">        <tt class="py-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1438" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1438', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">        <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1439" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1439', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{a}b'</tt><tt class="py-op">,</tt>  <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1440" 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-1432', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line">        <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1433" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1440', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line">        <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1441" 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-1433', 'tag', 'link-36');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt class="py-comment"># can't use C14N here!</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1434" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1441', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"> </tt>
+<a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">        <tt class="py-comment"># can't use C14N here!</tt> </tt>
+<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">b1</tt><tt class="py-op">.</tt><tt id="link-1442" 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-1434', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1435" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1435', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1436" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1436', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1437" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1437', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c'</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-1438" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1438', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_reset_root_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-def"><a name="L1343"></a><tt class="py-lineno">1343</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_root_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_root_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-expanded"><a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line">        <tt id="link-1439" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1442', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1443" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1443', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1444" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1444', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-1445" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1445', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c'</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt id="link-1446" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1446', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_reset_root_ns"></a><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-def"><a name="L1351"></a><tt class="py-lineno">1351</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_reset_root_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_reset_root_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_reset_root_ns-expanded"><a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">        <tt id="link-1447" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1439', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1440" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1447', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1448" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1440', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1441" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1448', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1449" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1441', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line">        <tt id="link-1442" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1442', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1443" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1449', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line">        <tt id="link-1450" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1450', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1451" class="py-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-1443', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1444" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1444', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">        <tt id="link-1445" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1445', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1446" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1451', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1452" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1452', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line">        <tt id="link-1453" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1453', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1454" class="py-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-1446', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1447" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1447', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line"> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1448" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1454', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1455" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1455', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1456" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1448', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}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-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1449" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1449', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">        <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1450" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1450', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1451" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1456', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">        <tt class="py-name">b1</tt> <tt class="py-op">=</tt> <tt id="link-1457" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1457', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">        <tt class="py-name">b2</tt> <tt class="py-op">=</tt> <tt id="link-1458" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1458', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1459" class="py-name"><a title="lxml.etree._Comment.tag
 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-1451', 'tag', 'link-36');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">            <tt class="py-string">'c'</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">a</tt><tt class="py-op">.</tt><tt id="link-1452" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1459', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">            <tt class="py-string">'c'</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">a</tt><tt class="py-op">.</tt><tt id="link-1460" 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-1452', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">        <tt class="py-comment"># can't use C14N here!</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt>  <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1453" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1460', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">        <tt class="py-comment"># can't use C14N here!</tt> </tt>
+<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt>  <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1461" 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-1453', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1454', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1455" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1455', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tag_str_subclass"></a><div id="_ETreeTestCaseBase.test_tag_str_subclass-def"><a name="L1362"></a><tt class="py-lineno">1362</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_str_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tag_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_str_subclass-expanded"><a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">        <tt id="link-1456" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1461', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1462" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1462', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1463" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1463', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tag_str_subclass"></a><div id="_ETreeTestCaseBase.test_tag_str_subclass-def"><a name="L1370"></a><tt class="py-lineno">1370</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tag_str_subclass-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tag_str_subclass');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tag_str_subclass-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tag_str_subclass-expanded"><a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt id="link-1464" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1456', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1457" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1464', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1465" class="py-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-1457', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1458" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1465', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1466" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1458', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1459" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1466', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">strTest</tt><tt class="py-op">(</tt><tt class="py-base-class">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"> </tt>
+<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1467" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1459', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1460" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1467', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1468" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1460', 'tag', 'link-36');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1461" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1461', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1462" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1462', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;TAG&gt;&lt;/TAG&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delitem"></a><div id="_ETreeTestCaseBase.test_delitem-def"><a name="L1373"></a><tt class="py-lineno">1373</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem-expanded"><a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt id="link-1463" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1468', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">strTest</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1469" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1469', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1470" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1470', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;TAG&gt;&lt;/TAG&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delitem"></a><div id="_ETreeTestCaseBase.test_delitem-def"><a name="L1381"></a><tt class="py-lineno">1381</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem-expanded"><a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt id="link-1471" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1463', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1464" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1471', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1472" class="py-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-1464', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1465" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1472', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1473" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1465', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt id="link-1466" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1466', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1467" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1473', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt id="link-1474" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1474', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1475" class="py-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-1467', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1468" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1468', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1469" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1475', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1476" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1476', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line"> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1477" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1469', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1470" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1470', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1471" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1471', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1472" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1472', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line"> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1473" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1473', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">            <tt id="link-1474" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1474', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;d&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1475" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1475', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">            <tt id="link-1476" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1476', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line"> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="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-1477" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1477', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">            <tt id="link-1478" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1478', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">        <tt class="py-comment"># move deleted element into other tree afterwards</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-1479" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1477', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1478" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1478', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1479" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1479', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1480" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1480', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line"> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1481" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1481', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">            <tt id="link-1482" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1482', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;d&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1483" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1483', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">            <tt id="link-1484" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1484', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="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-1485" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1485', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">            <tt id="link-1486" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1486', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">        <tt class="py-comment"># move deleted element into other tree afterwards</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">        <tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt id="link-1487" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1479', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'other'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">        <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-1480" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1480', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</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-1481" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1481', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">            <tt id="link-1482" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1482', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;other&gt;&lt;c&gt;&lt;/c&gt;&lt;/other&gt;'</tt><tt class="py-op">)</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">other</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">     </tt>
-<a name="_ETreeTestCaseBase.test_del_insert"></a><div id="_ETreeTestCaseBase.test_del_insert-def"><a name="L1403"></a><tt class="py-lineno">1403</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_insert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_insert-expanded"><a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">        <tt id="link-1483" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1487', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'other'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">        <tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-1488" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1488', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="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-1489" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1489', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">            <tt id="link-1490" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1490', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;other&gt;&lt;c&gt;&lt;/c&gt;&lt;/other&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">            <tt class="py-name">other</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">     </tt>
+<a name="_ETreeTestCaseBase.test_del_insert"></a><div id="_ETreeTestCaseBase.test_del_insert-def"><a name="L1411"></a><tt class="py-lineno">1411</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_insert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_insert-expanded"><a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">        <tt id="link-1491" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1483', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1484" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1491', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1492" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1484', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1485" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1492', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1493" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1485', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">        <tt id="link-1486" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1486', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1487" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1493', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">        <tt id="link-1494" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1494', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1495" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1487', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1488" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1488', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1489" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1495', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1496" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1496', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1497" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1489', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1490" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1490', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">        <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1491" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1491', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1492" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1492', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">        <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1493" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1493', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line"> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="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-1494" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1494', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">            <tt id="link-1495" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1495', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1496" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1496', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1497" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1497', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1498" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1498', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1499" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1499', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line"> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1500" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1500', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">            <tt id="link-1501" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1501', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1502" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1502', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1503" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1503', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1504" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1504', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1505" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1505', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1506" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1506', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1507" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1507', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">            <tt id="link-1508" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1508', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1509" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1509', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1510" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1510', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1511" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1511', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1512', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_del_setitem"></a><div id="_ETreeTestCaseBase.test_del_setitem-def"><a name="L1434"></a><tt class="py-lineno">1434</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setitem');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setitem-expanded"><a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt id="link-1513" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1497', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1498" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1498', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">        <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1499" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1499', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1500" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1500', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1501" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1501', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="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-1502" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1502', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">            <tt id="link-1503" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1503', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1504" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1504', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1505" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1505', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1506" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1506', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1507" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1507', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1508" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1508', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">            <tt id="link-1509" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1509', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">            <tt class="py-name">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-name">self</tt><tt class="py-op">.</tt><tt id="link-1510" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1510', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1511" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1511', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1512" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1512', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1513" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1513', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line"> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1514" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1514', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1515" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1515', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">            <tt id="link-1516" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1516', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1517" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1517', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1518" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1518', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1519" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1519', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1520', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_del_setitem"></a><div id="_ETreeTestCaseBase.test_del_setitem-def"><a name="L1442"></a><tt class="py-lineno">1442</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setitem-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setitem');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_setitem-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setitem-expanded"><a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">        <tt id="link-1521" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1513', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1514" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1521', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1522" class="py-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-1514', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1515" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1522', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1523" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1515', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt id="link-1516" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1516', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1517" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1523', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">        <tt id="link-1524" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1524', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1525" class="py-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-1517', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1518" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1518', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1519" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1525', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1526" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1526', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line"> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1527" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1519', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1520" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1520', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1521" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1521', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1522" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1522', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1523" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1523', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
-<a name="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 class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1524" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1524', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">            <tt id="link-1525" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1525', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1526" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1526', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1527" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1527', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1528" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1528', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1529" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1529', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_del_setslice"></a><div id="_ETreeTestCaseBase.test_del_setslice-def"><a name="L1453"></a><tt class="py-lineno">1453</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_del_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setslice-expanded"><a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">        <tt id="link-1530" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1527', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1528" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1528', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">        <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1529" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1529', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1530" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1530', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line">        <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1531" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1531', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt> </tt>
+<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1532" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1532', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line">            <tt id="link-1533" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1533', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1534" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1534', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1535" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1535', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1536" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1536', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1537" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1537', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_del_setslice"></a><div id="_ETreeTestCaseBase.test_del_setslice-def"><a name="L1461"></a><tt class="py-lineno">1461</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_del_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_del_setslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_del_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_del_setslice-expanded"><a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">        <tt id="link-1538" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1530', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1531" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1538', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1539" class="py-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-1531', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1532" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1539', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1540" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1532', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">        <tt id="link-1533" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1533', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1534" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1540', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">        <tt id="link-1541" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1541', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1542" class="py-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-1534', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1535" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1535', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1536" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1542', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1543" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1543', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line"> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1544" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1536', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1537" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1537', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">        <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1538" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1538', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1539" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1539', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">        <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1540" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1540', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">]</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1541" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1541', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">            <tt id="link-1542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1542', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1543" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1543', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1544', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1545" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1545', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1546" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1546', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_replace_slice_tail"></a><div id="_ETreeTestCaseBase.test_replace_slice_tail-def"><a name="L1472"></a><tt class="py-lineno">1472</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_replace_slice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_replace_slice_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_replace_slice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_replace_slice_tail-expanded"><a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt id="link-1547" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1544', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1545" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1545', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt class="py-name">bs</tt> <tt class="py-op">=</tt> <tt id="link-1546" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1546', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'bs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1547" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1547', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">        <tt class="py-name">cs</tt> <tt class="py-op">=</tt> <tt id="link-1548" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1548', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'cs'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">]</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1549" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1549', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">            <tt id="link-1550" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1550', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1551" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1551', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1552" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1552', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;bs&gt;&lt;/bs&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1553" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1553', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1554" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1554', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;cs&gt;&lt;/cs&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_replace_slice_tail"></a><div id="_ETreeTestCaseBase.test_replace_slice_tail-def"><a name="L1480"></a><tt class="py-lineno">1480</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_replace_slice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_replace_slice_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_replace_slice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_replace_slice_tail-expanded"><a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-1555" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1547', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1548" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1555', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1556" class="py-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-1548', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1549" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1556', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1557" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1549', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1550" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1557', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1558" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1550', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1551" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1551', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
-<a name="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-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line"> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1552" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1552', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1553" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1553', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice"></a><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-def"><a name="L1482"></a><tt class="py-lineno">1482</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-expanded"><a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt id="link-1554" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1558', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1559', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">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-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1560" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1560', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1561" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1561', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice"></a><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-def"><a name="L1490"></a><tt class="py-lineno">1490</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_merge_namespaced_subtree_as_slice-expanded"><a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">        <tt id="link-1562" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1554', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1555" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1562', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1563" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1555', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1556" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1563', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1564" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1556', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">        <tt id="link-1557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1557', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1558" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1564', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">        <tt id="link-1565" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1565', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1566" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1558', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1559', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">            <tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:baz="http://huhu"&gt;&lt;puh&gt;&lt;baz:bump1 /&gt;&lt;baz:bump2 /&gt;&lt;/puh&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">        <tt id="link-1560" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1560', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-1561" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1561', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-1562" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1562', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//puh'</tt><tt class="py-op">)</tt> <tt class="py-comment"># delete bar from hierarchy</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt class="py-comment"># previously, this lost a namespace declaration on bump2</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1563" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1566', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1567" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1567', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">            <tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:baz="http://huhu"&gt;&lt;puh&gt;&lt;baz:bump1 /&gt;&lt;baz:bump2 /&gt;&lt;/puh&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt id="link-1568" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1568', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-1569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1569', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-1570" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-1570', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//puh'</tt><tt class="py-op">)</tt> <tt class="py-comment"># delete bar from hierarchy</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-comment"># previously, this lost a namespace declaration on bump2</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1571" class="py-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-1563', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1564" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1564', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1565" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1565', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">        <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1566" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1571', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1572" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1572', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1573" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1573', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">        <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1574" class="py-name"><a title="lxml.etree
 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-1566', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1567" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1574', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1575" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1567', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'puh'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1568" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1575', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'puh'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1576" 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-1568', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump1'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1569" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1576', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump1'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1577" 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-1569', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump2'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1570" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1577', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://huhu}bump2'</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1578" 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-1570', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delitem_tail"></a><div id="_ETreeTestCaseBase.test_delitem_tail-def"><a name="L1496"></a><tt class="py-lineno">1496</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem_tail-expanded"><a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt id="link-1571" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1578', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delitem_tail"></a><div id="_ETreeTestCaseBase.test_delitem_tail-def"><a name="L1504"></a><tt class="py-lineno">1504</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delitem_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delitem_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delitem_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delitem_tail-expanded"><a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt id="link-1579" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1571', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1572" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1579', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1580" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1572', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1573" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1580', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1581" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1573', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1574" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1581', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</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">doc</tt> <tt class="py-op">=</tt> <tt id="link-1582" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1574', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1575" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1575', 'getroot', 'link-70');">getroot</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">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1576" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1576', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">            <tt id="link-1577" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1577', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_clear"></a><div id="_ETreeTestCaseBase.test_clear-def"><a name="L1506"></a><tt class="py-lineno">1506</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear-expanded"><a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt id="link-1578" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1582', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1583" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1583', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1584" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1584', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">            <tt id="link-1585" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1585', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_clear"></a><div id="_ETreeTestCaseBase.test_clear-def"><a name="L1514"></a><tt class="py-lineno">1514</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear-expanded"><a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt id="link-1586" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1578', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1579" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1586', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1587" class="py-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-1579', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1580" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1587', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1588" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1580', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">      </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1581" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1588', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">      </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1589" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1581', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1582" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1589', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1590" 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-1582', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1583" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1583', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1584" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1584', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1585" class="py-name"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1590', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1591" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1591', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1592" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1592', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1593" class="py-name"><a title="lxml.etree._Attrib.clear
 lxml.etree._Element.clear
-lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1585', 'clear', 'link-400');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1586" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1593', 'clear', 'link-408');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1594" 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-1586', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1587" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1587', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1588" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1594', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1595" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1595', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1596" 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-1588', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1589" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1596', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1597" 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-1589', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_clear_sub"></a><div id="_ETreeTestCaseBase.test_clear_sub-def"><a name="L1519"></a><tt class="py-lineno">1519</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_sub');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_clear_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_sub-expanded"><a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt id="link-1590" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1597', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_clear_sub"></a><div id="_ETreeTestCaseBase.test_clear_sub-def"><a name="L1527"></a><tt class="py-lineno">1527</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_sub');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_clear_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_sub-expanded"><a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt id="link-1598" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1590', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1591" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1598', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1599" class="py-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-1591', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1592" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1599', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1600" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1592', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt id="link-1593" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1593', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1594" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1600', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-1601" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1601', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1602" class="py-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-1594', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1595" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1595', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line"> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1596" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1602', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1603" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1603', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1604" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1596', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1597" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1604', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1605" 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-1597', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1598" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1598', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1599" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1599', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1600" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1600', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1601" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1601', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1602" class="py-name"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1605', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'foo'</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1606" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1606', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1607" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1607', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">,</tt> <tt class="py-string">'dag'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1608" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1608', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1609" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1609', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1610" 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-1602', 'clear', 'link-400');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1603" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1610', 'clear', 'link-408');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1611" 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-1603', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1604" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1604', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1605" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1611', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1612" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1612', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1613" 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-1605', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1606" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1613', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'hoi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1614" 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-1606', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1607" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1607', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1608" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1608', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1609" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1609', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1610" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1610', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;c&gt;&lt;/c&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">                       <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">     </tt>
-<a name="_ETreeTestCaseBase.test_clear_tail"></a><div id="_ETreeTestCaseBase.test_clear_tail-def"><a name="L1540"></a><tt class="py-lineno">1540</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_clear_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_tail-expanded"><a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">        <tt id="link-1611" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1614', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1615" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1615', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1616" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1616', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">                       <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1617" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1617', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-1618" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1618', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;c&gt;&lt;/c&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">                       <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">     </tt>
+<a name="_ETreeTestCaseBase.test_clear_tail"></a><div id="_ETreeTestCaseBase.test_clear_tail-def"><a name="L1548"></a><tt class="py-lineno">1548</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_clear_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_clear_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_clear_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_clear_tail-expanded"><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt id="link-1619" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1611', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1612" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1619', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1620" class="py-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-1612', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1613" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1620', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1621" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1613', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1614" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1621', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1622" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1614', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1615" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1615', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1616" class="py-name"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1622', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1623" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1623', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1624" 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-1616', 'clear', 'link-400');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1617" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1617', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">            <tt id="link-1618" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1618', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert"></a><div id="_ETreeTestCaseBase.test_insert-def"><a name="L1550"></a><tt class="py-lineno">1550</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert-expanded"><a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt id="link-1619" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1624', 'clear', 'link-408');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1625" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1625', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">            <tt id="link-1626" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1626', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert"></a><div id="_ETreeTestCaseBase.test_insert-def"><a name="L1558"></a><tt class="py-lineno">1558</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert-expanded"><a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">        <tt id="link-1627" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1619', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1620" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1627', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1628" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1620', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1621" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1628', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1629" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1621', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt id="link-1622" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1622', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1623" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1629', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt id="link-1630" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1630', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1631" class="py-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-1623', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1624" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1624', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1625" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1631', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1632" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1632', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1633" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1625', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1626" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1626', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1627" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1627', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1628" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1633', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1634" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1634', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1635" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1635', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1636" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1628', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1629" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1629', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line"> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1630" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1630', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">            <tt id="link-1631" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1631', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1636', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1637" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1637', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
 <a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1632" class="py-name"><a title="lxml.etree.Element
+<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">,</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1638" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1638', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">            <tt id="link-1639" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1639', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1640" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1632', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1633" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1633', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">,</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1634" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1634', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">            <tt id="link-1635" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1635', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;b&gt;&lt;/b&gt;&lt;e&gt;&lt;/e&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert_beyond_index"></a><div id="_ETreeTestCaseBase.test_insert_beyond_index-def"><a name="L1577"></a><tt class="py-lineno">1577</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_beyond_index-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_beyond_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert_beyond_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_beyond_index-expanded"><a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">        <tt id="link-1636" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1640', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1641" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1641', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">,</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1642" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1642', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">            <tt id="link-1643" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1643', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;d&gt;&lt;/d&gt;&lt;b&gt;&lt;/b&gt;&lt;e&gt;&lt;/e&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert_beyond_index"></a><div id="_ETreeTestCaseBase.test_insert_beyond_index-def"><a name="L1585"></a><tt class="py-lineno">1585</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_beyond_index-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_beyond_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert_beyond_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_beyond_index-expanded"><a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt id="link-1644" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1636', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1637" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1644', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1645" class="py-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-1637', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1638" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1645', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1646" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1638', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">        <tt id="link-1639" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1639', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1640" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1646', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">        <tt id="link-1647" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1647', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1648" class="py-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-1640', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1641" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1641', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1642" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1648', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1649" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1649', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line"> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1650" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1642', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'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-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1643" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1643', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1644" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1650', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1651" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1651', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1652" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1644', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1645" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1645', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1646" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1646', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">            <tt id="link-1647" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1647', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert_negative"></a><div id="_ETreeTestCaseBase.test_insert_negative-def"><a name="L1593"></a><tt class="py-lineno">1593</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_negative-expanded"><a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt id="link-1648" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1652', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1653" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1653', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1654" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1654', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">            <tt id="link-1655" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1655', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert_negative"></a><div id="_ETreeTestCaseBase.test_insert_negative-def"><a name="L1601"></a><tt class="py-lineno">1601</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_negative-expanded"><a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt id="link-1656" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1648', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1649" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1656', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1657" class="py-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-1649', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1650" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1657', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1658" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1650', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">        <tt id="link-1651" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1651', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1652" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1658', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">        <tt id="link-1659" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1659', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1660" class="py-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-1652', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1653" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1653', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<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 class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1654" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1660', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1661" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1661', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line"> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1662" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1654', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1655" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1655', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1656" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1656', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line"> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1657" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1662', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1663" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1663', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1664" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1664', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1665" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1657', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1658" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1658', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">            <tt class="py-name">d</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">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1659" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1659', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">            <tt id="link-1660" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1660', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;d&gt;&lt;/d&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_insert_tail"></a><div id="_ETreeTestCaseBase.test_insert_tail-def"><a name="L1610"></a><tt class="py-lineno">1610</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_insert_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_tail-expanded"><a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt id="link-1661" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1665', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1666" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1666', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">            <tt class="py-name">d</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">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1667" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1667', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">            <tt id="link-1668" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1668', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;d&gt;&lt;/d&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_insert_tail"></a><div id="_ETreeTestCaseBase.test_insert_tail-def"><a name="L1618"></a><tt class="py-lineno">1618</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_insert_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_insert_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_insert_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_insert_tail-expanded"><a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">        <tt id="link-1669" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1661', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1662" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1669', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1670" class="py-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-1662', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1663" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1670', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1671" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1663', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">        <tt id="link-1664" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1664', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1665" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1671', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">        <tt id="link-1672" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1672', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1673" class="py-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-1665', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1666" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1666', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line"> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1667" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1673', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1674" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1674', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1675" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1667', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1668" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1668', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1669" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1675', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</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">b</tt> <tt class="py-op">=</tt> <tt id="link-1676" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1676', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1677" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1669', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1670" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1670', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1671" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1671', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1672" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1672', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">            <tt id="link-1673" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1673', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;C2&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_remove"></a><div id="_ETreeTestCaseBase.test_remove-def"><a name="L1625"></a><tt class="py-lineno">1625</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove-expanded"><a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt id="link-1674" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1677', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1678" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1678', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'C2'</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1679" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1679', 'insert', 'link-6');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">)</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1680" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1680', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">            <tt id="link-1681" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1681', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;C2&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</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">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_remove"></a><div id="_ETreeTestCaseBase.test_remove-def"><a name="L1633"></a><tt class="py-lineno">1633</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove-expanded"><a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">        <tt id="link-1682" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1674', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1675" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1682', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1683" class="py-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-1675', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1676" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1683', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1684" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1676', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">        <tt id="link-1677" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1677', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1678" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1684', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">        <tt id="link-1685" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1685', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1686" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1678', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1679" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1679', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1680" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1686', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1687" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1687', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1688" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1680', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1681" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1681', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1682" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1682', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1683" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1688', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1689" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1689', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1690" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1690', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1691" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1683', 'remove', 'link-1683');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1684" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1684', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">            <tt id="link-1685" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1685', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_remove_ns"></a><div id="_ETreeTestCaseBase.test_remove_ns-def"><a name="L1641"></a><tt class="py-lineno">1641</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_ns-expanded"><a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">        <tt id="link-1686" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1691', 'remove', 'link-1691');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">            <tt class="py-name">c</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">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1692" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1692', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">            <tt id="link-1693" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1693', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_remove_ns"></a><div id="_ETreeTestCaseBase.test_remove_ns-def"><a name="L1649"></a><tt class="py-lineno">1649</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_ns-expanded"><a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt id="link-1694" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1686', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1687" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1694', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1695" class="py-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-1687', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1688" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1695', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1696" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1688', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">        <tt id="link-1689" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1689', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1690" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1696', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">        <tt id="link-1697" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1697', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1698" class="py-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-1690', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1691" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1691', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1692" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1698', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1699" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1699', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line"> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1700" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1692', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1693" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1693', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1694" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1694', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1695" class="py-name"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1700', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1701" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1701', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1702" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1702', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test}c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1703" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1695', 'remove', 'link-1683');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1696" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1696', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">            <tt id="link-1697" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1697', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:a xmlns:ns0="http://test"&gt;&lt;ns0:c&gt;&lt;/ns0:c&gt;&lt;/ns0:a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1698" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1698', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">            <tt id="link-1699" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1699', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:b xmlns:ns0="http://test"&gt;&lt;/ns0:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_remove_nonexisting"></a><div id="_ETreeTestCaseBase.test_remove_nonexisting-def"><a name="L1657"></a><tt class="py-lineno">1657</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_nonexisting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_nonexisting');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove_nonexisting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_nonexisting-expanded"><a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt id="link-1700" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1703', 'remove', 'link-1691');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1704" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1704', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">            <tt id="link-1705" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1705', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:a xmlns:ns0="http://test"&gt;&lt;ns0:c&gt;&lt;/ns0:c&gt;&lt;/ns0:a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1706" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1706', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">            <tt id="link-1707" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1707', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:b xmlns:ns0="http://test"&gt;&lt;/ns0:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_remove_nonexisting"></a><div id="_ETreeTestCaseBase.test_remove_nonexisting-def"><a name="L1665"></a><tt class="py-lineno">1665</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_nonexisting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_nonexisting');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove_nonexisting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_nonexisting-expanded"><a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">        <tt id="link-1708" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1700', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1701" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1708', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1709" class="py-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-1701', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1702" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1709', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1710" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1702', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">        <tt id="link-1703" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1703', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1704" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1710', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">        <tt id="link-1711" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1711', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1712" class="py-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-1704', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1705" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1705', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1706" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1712', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1713', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1714" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1706', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1707" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1707', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1708" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1708', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1709" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1714', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1715" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1715', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1716" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1716', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1717" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1709', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1710" class="py-name"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1717', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1718" 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-1710', 'remove', 'link-1683');">remove</a></tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_remove_tail"></a><div id="_ETreeTestCaseBase.test_remove_tail-def"><a name="L1668"></a><tt class="py-lineno">1668</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_remove_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_tail-expanded"><a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt id="link-1711" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1718', 'remove', 'link-1691');">remove</a></tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_remove_tail"></a><div id="_ETreeTestCaseBase.test_remove_tail-def"><a name="L1676"></a><tt class="py-lineno">1676</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_remove_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_remove_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_remove_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_remove_tail-expanded"><a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">        <tt id="link-1719" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1711', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1712" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1719', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1720" class="py-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-1712', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1720', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1721" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1713', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt id="link-1714" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1714', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1715" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1721', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">        <tt id="link-1722" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1722', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1723" class="py-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-1715', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1716" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1716', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1717" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1723', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1724" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1724', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1725" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1717', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1718" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1718', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1719" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1719', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b2'</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1720" class="py-name"><a title="lxml.etree._Element.remove
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1725', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1726" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1726', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1727" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1727', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b2'</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1728" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1720', 'remove', 'link-1683');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1721" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1721', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">            <tt id="link-1722" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1722', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b2'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1723" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1723', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._test_getchildren"></a><div id="_ETreeTestCaseBase._test_getchildren-def"><a name="L1681"></a><tt class="py-lineno">1681</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_getchildren-toggle" onclick="return toggle('_ETreeTestCaseBase._test_getchildren');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren">_test_getchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._test_getchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_getchildren-expanded"><a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt id="link-1724" class="py-name"><a title="lxml.etree.Element
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-1728', 'remove', 'link-1691');">remove</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1729" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1729', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">            <tt id="link-1730" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1730', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b2'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1731" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1731', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._test_getchildren"></a><div id="_ETreeTestCaseBase._test_getchildren-def"><a name="L1689"></a><tt class="py-lineno">1689</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_getchildren-toggle" onclick="return toggle('_ETreeTestCaseBase._test_getchildren');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren">_test_getchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._test_getchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_getchildren-expanded"><a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt id="link-1732" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1724', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1725" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1732', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1733" class="py-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-1725', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1726" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1733', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1734" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1726', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">        <tt id="link-1727" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1727', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1728" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1734', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">        <tt id="link-1735" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1735', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1736" class="py-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-1728', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1729" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1729', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1730" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1736', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1737" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1737', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line"> </tt>
+<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1738" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1730', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1731" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1731', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1732" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1732', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1733" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1733', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1734" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1734', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1735" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1735', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">            <tt id="link-1736" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1736', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d&gt;&lt;/d&gt;&lt;/b&gt;&lt;c&gt;&lt;e&gt;&lt;/e&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1737" class="py-name" targets="Method lxml.etree._Element.getchildren()=lxml.etree._Element-class.html#getchildren,Method lxml.objectify.ObjectifiedElement.getchildren()=lxml.objectify.ObjectifiedElement-class.html#getchildren"><a title="lxml.etree._Element.getchildren
-lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1737', 'getchildren', 'link-1737');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1738" class="py-name"><a title="lxml.etree._Element.getchildren
-lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1738', 'getchildren', 'link-1737');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1739" class="py-name"><a title="lxml.etree._Element.getchildren
-lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1739', 'getchildren', 'link-1737');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_makeelement"></a><div id="_ETreeTestCaseBase.test_makeelement-def"><a name="L1703"></a><tt class="py-lineno">1703</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_makeelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_makeelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_makeelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_makeelement-expanded"><a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">        <tt id="link-1740" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1738', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1739" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1739', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1740" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1740', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1741" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1741', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1742" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1742', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1743" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1743', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">            <tt id="link-1744" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1744', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d&gt;&lt;/d&gt;&lt;/b&gt;&lt;c&gt;&lt;e&gt;&lt;/e&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1745" class="py-name" targets="Method lxml.etree._Element.getchildren()=lxml.etree._Element-class.html#getchildren,Method lxml.objectify.ObjectifiedElement.getchildren()=lxml.objectify.ObjectifiedElement-class.html#getchildren"><a title="lxml.etree._Element.getchildren
+lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1745', 'getchildren', 'link-1745');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1746" class="py-name"><a title="lxml.etree._Element.getchildren
+lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1746', 'getchildren', 'link-1745');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1747" class="py-name"><a title="lxml.etree._Element.getchildren
+lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-1747', 'getchildren', 'link-1745');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_makeelement"></a><div id="_ETreeTestCaseBase.test_makeelement-def"><a name="L1711"></a><tt class="py-lineno">1711</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_makeelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_makeelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_makeelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_makeelement-expanded"><a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">        <tt id="link-1748" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1740', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1741" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1748', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1749" class="py-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-1741', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1742" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1749', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1750" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1742', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1743" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1750', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1751" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1743', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1744" 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-1744', 'makeelement', 'link-1744');">makeelement</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'hoi'</tt><tt class="py-op">:</tt><tt class="py-string">'dag'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1745" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1745', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line">            <tt id="link-1746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1746', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c hoi="dag"&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">    <tt id="link-1747" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1747', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_iter'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_iter"></a><div id="_ETreeTestCaseBase.test_iter-def"><a name="L1713"></a><tt class="py-lineno">1713</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iter-expanded"><a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt id="link-1748" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1751', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1752" 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-1752', 'makeelement', 'link-1752');">makeelement</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'hoi'</tt><tt class="py-op">:</tt><tt class="py-string">'dag'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1753" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1753', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line">            <tt id="link-1754" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1754', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c hoi="dag"&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">    <tt id="link-1755" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-1755', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_iter'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_iter"></a><div id="_ETreeTestCaseBase.test_iter-def"><a name="L1721"></a><tt class="py-lineno">1721</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iter-expanded"><a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">        <tt id="link-1756" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1748', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1749" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1756', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1757" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1749', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1750" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1757', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1758" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1750', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">        <tt id="link-1751" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1751', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1752" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1758', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">        <tt id="link-1759" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1759', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1760" class="py-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-1752', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1753" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1753', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"> </tt>
-<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1754" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1760', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1761" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1761', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line"> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1762" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1754', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1755" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1755', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1756" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1756', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1757" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1757', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1758" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1758', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line"> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1759" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1759', 'iter', 'link-546');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1760" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1760', 'iter', 'link-546');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator"></a><div id="_ETreeTestCaseBase.test_getiterator-def"><a name="L1730"></a><tt class="py-lineno">1730</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator-expanded"><a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt id="link-1761" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1762', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1763" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1763', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1764" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1764', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1765" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1765', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1766" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1766', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"> </tt>
+<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1767" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1767', 'iter', 'link-554');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1768" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-1768', 'iter', 'link-554');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator"></a><div id="_ETreeTestCaseBase.test_getiterator-def"><a name="L1738"></a><tt class="py-lineno">1738</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator-expanded"><a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line">        <tt id="link-1769" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1761', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1762" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1769', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1770" class="py-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-1762', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1770', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1771" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1763', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">        <tt id="link-1764" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1764', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1765" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1771', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt id="link-1772" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1772', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1773" class="py-name"><a title="lxml.etree
 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-1765', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1766" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1766', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1767" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1773', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1774" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1774', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line"> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1775" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1767', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1768" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1768', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1769" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1769', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1770" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1770', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1771" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1771', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1772" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1772', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1773" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1773', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_empty"></a><div id="_ETreeTestCaseBase.test_getiterator_empty-def"><a name="L1747"></a><tt class="py-lineno">1747</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_empty-expanded"><a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">        <tt id="link-1774" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1775', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1776" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1776', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1777" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1777', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1778" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1778', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1779" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1779', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
+<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1780" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1780', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1781" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1781', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_empty"></a><div id="_ETreeTestCaseBase.test_getiterator_empty-def"><a name="L1755"></a><tt class="py-lineno">1755</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_empty-expanded"><a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">        <tt id="link-1782" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1774', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1775" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1782', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1783" class="py-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-1775', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1776" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1783', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1784" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1776', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">        <tt id="link-1777" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1777', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1778" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1784', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">        <tt id="link-1785" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1785', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1786" class="py-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-1778', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1779" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1779', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1780" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1786', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1787" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1787', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1788" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1780', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1781" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1781', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1782" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1782', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1783" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1783', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1784" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1784', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1785" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1785', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1786" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1786', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1787" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1787', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_getiterator_filter-def"><a name="L1767"></a><tt class="py-lineno">1767</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter-expanded"><a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">        <tt id="link-1788" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1788', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1789" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1789', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1790" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1790', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1791" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1791', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1792" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1792', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line"> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1793" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1793', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1794" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1794', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'none'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1795" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1795', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_getiterator_filter-def"><a name="L1775"></a><tt class="py-lineno">1775</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter-expanded"><a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt id="link-1796" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1788', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1789" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1796', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1797" class="py-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-1789', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1790" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1797', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1798" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1790', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">        <tt id="link-1791" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1791', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1792" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1798', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">        <tt id="link-1799" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1799', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1800" class="py-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-1792', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1793" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1793', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line"> </tt>
-<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1794" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1800', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1801" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1801', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line"> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1802" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1794', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1795" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1795', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1796" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1796', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1797" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1797', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1798" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1798', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line"> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1799" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1799', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-1800" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1800', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1801" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1801', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1802" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1802', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_all"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_all-def"><a name="L1788"></a><tt class="py-lineno">1788</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-expanded"><a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">        <tt id="link-1803" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1802', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1803" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1803', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1804" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1804', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1805" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1805', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1806" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1806', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1807" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1807', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-1808" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1808', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1809" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1809', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1810" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1810', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_all"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_all-def"><a name="L1796"></a><tt class="py-lineno">1796</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_all-expanded"><a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line">        <tt id="link-1811" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1803', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1804" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1811', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1812" class="py-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-1804', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1805" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1812', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1813" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1805', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">        <tt id="link-1806" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1806', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1807" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1813', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">        <tt id="link-1814" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1814', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1815" class="py-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-1807', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1808" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1808', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line"> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1809" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1815', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1816" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1816', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1817" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1809', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1810" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1810', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1811" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1811', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1812" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1812', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1813" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1813', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1814" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1814', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_comment"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-def"><a name="L1802"></a><tt class="py-lineno">1802</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-expanded"><a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt id="link-1815" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1817', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1818" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1818', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1819" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1819', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1820" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1820', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1821" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1821', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line"> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1822" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1822', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_comment"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-def"><a name="L1810"></a><tt class="py-lineno">1810</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_comment-expanded"><a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">        <tt id="link-1823" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1815', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1816" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1823', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1824" class="py-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-1816', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1817" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1824', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1825" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1817', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">        <tt id="link-1818" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1818', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1819" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1825', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">        <tt id="link-1826" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1826', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1827" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1819', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1820" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1820', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt id="link-1821" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1821', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1822" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1827', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1828" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1828', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">        <tt id="link-1829" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1829', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1830" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1822', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1823" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1823', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1824" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1830', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1831" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1831', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line"> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1832" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1824', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1825" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1825', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">        <tt class="py-name">comment_b</tt> <tt class="py-op">=</tt> <tt id="link-1826" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1826', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1827" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1827', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line"> </tt>
-<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1828" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1828', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1829" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1829', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line"> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt class="py-name">comment_a</tt> <tt class="py-op">=</tt> <tt id="link-1830" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1830', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1831" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1831', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line"> </tt>
-<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">,</tt> <tt class="py-name">comment_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1832" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1832', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1833" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1833', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line"> </tt>
-<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1834" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1834', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1835" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1835', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_pi"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-def"><a name="L1827"></a><tt class="py-lineno">1827</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-expanded"><a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">        <tt id="link-1836" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1832', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1833" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1833', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">        <tt class="py-name">comment_b</tt> <tt class="py-op">=</tt> <tt id="link-1834" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1834', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1835" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1835', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line"> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1836" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1836', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1837" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1837', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line"> </tt>
+<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">        <tt class="py-name">comment_a</tt> <tt class="py-op">=</tt> <tt id="link-1838" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1838', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1839" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1839', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">comment_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line"> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">,</tt> <tt class="py-name">comment_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1840', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1841" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1841', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line"> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">comment_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1842" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1842', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1843" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1843', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_pi"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-def"><a name="L1835"></a><tt class="py-lineno">1835</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_pi-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_pi-expanded"><a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line">        <tt id="link-1844" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1836', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1837" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1844', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1845" class="py-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-1837', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1838" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1845', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1838', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">        <tt id="link-1839" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1839', 'PI', 'link-1329');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1846', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">        <tt id="link-1847" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1847', 'PI', 'link-1337');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1848" class="py-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-1840', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">        <tt id="link-1841" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1841', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1842" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1848', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
+<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line">        <tt id="link-1849" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1849', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-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-1842', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1843" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1843', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line"> </tt>
-<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1844" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1850', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1851" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1851', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line"> </tt>
+<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1852" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1844', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1845" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1845', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line">        <tt class="py-name">pi_b</tt> <tt class="py-op">=</tt> <tt id="link-1846" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1846', 'PI', 'link-1329');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1847" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1847', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"> </tt>
-<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1848" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1848', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1849" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1849', 'PI', 'link-1329');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line"> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">        <tt class="py-name">pi_a</tt> <tt class="py-op">=</tt> <tt id="link-1850" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1850', 'PI', 'link-1329');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1851" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1851', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line"> </tt>
-<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">,</tt> <tt class="py-name">pi_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1852" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1852', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1853" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1853', 'PI', 'link-1329');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line"> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1854" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1854', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1855" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1855', 'PI', 'link-1329');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_with_text-def"><a name="L1852"></a><tt class="py-lineno">1852</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_with_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_with_text-expanded"><a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">        <tt id="link-1856" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1852', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1853" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1853', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">        <tt class="py-name">pi_b</tt> <tt class="py-op">=</tt> <tt id="link-1854" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1854', 'PI', 'link-1337');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1855" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1855', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line"> </tt>
+<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1856" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1856', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1857" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1857', 'PI', 'link-1337');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line"> </tt>
+<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line">        <tt class="py-name">pi_a</tt> <tt class="py-op">=</tt> <tt id="link-1858" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1858', 'PI', 'link-1337');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1859" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1859', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">pi_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line"> </tt>
+<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">,</tt> <tt class="py-name">pi_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1860" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1860', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1861" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1861', 'PI', 'link-1337');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line"> </tt>
+<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">pi_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1862" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1862', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-1863" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1863', 'PI', 'link-1337');">PI</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_with_text-def"><a name="L1860"></a><tt class="py-lineno">1860</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_with_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_with_text-expanded"><a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt id="link-1864" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1856', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1857" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1864', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1857', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1858" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1865', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1866" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1858', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">        <tt id="link-1859" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1859', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1860" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1866', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt id="link-1867" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1867', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1868" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1860', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1861" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1861', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line"> </tt>
-<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1862" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1868', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1869" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1869', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line"> </tt>
+<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1870" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1862', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1863" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1870', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1871" 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-1863', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
-<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1864" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1864', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1871', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
+<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1872" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1872', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1873" 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-1865', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
-<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1866" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1866', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
-<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1867" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1867', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1868" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1873', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
+<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1874" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1874', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1875" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1875', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1876" 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-1868', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1869" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1869', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
-<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1870" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1870', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1871" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1876', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1877" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1877', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
+<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1878" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1878', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1879" 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-1871', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
-<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1872" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1872', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
-<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1873" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1873', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1874" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1879', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1880" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1880', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
+<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1881" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1881', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1882" 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-1874', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
-<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1875', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
-<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line"> </tt>
-<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1876" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1876', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertEqual(</tt> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">        <tt class="py-comment">#    [d],</tt> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line">        <tt class="py-comment">#    list(d.getiterator()))</tt> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getiterator_filter_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-def"><a name="L1878"></a><tt class="py-lineno">1878</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_with_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-expanded"><a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt id="link-1877" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1882', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
+<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1883" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1883', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
+<a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line"> </tt>
+<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1884" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1884', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertEqual(</tt> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-comment">#    [d],</tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt class="py-comment">#    list(d.getiterator()))</tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getiterator_filter_with_text"></a><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-def"><a name="L1886"></a><tt class="py-lineno">1886</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getiterator_filter_with_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getiterator_filter_with_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getiterator_filter_with_text-expanded"><a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line">        <tt id="link-1885" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1877', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1878" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1885', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1886" class="py-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-1878', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1879" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1886', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1879', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">        <tt id="link-1880" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1880', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1881" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1887', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">        <tt id="link-1888" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1888', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1889" class="py-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-1881', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1882" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1882', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line"> </tt>
-<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1883" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1889', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1890', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line"> </tt>
+<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1891" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1883', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1884" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1891', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1892" 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-1884', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
-<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1885" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1885', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1886" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1892', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'a'</tt> </tt>
+<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1893" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1893', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1894" 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-1886', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
-<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1887', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1888" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1888', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1889" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1894', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b'</tt> </tt>
+<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1895" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1895', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'b1'</tt> </tt>
+<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1896" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1896', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1897" 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-1889', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
-<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1890', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
-<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1891" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1891', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1892" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1897', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c'</tt> </tt>
+<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1898" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1898', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'c1'</tt> </tt>
+<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1899" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1899', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1900" 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-1892', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
-<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1893" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1893', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
-<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1894" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1894', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1895" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1900', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d'</tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1901" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1901', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'d1'</tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1902" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1902', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1903" 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-1895', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
-<a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1896" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1896', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
-<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line"> </tt>
-<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1897" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1897', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-1898" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1898', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1899" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1899', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt>    </tt>
-<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1900" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1900', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice"></a><div id="_ETreeTestCaseBase.test_getslice-def"><a name="L1908"></a><tt class="py-lineno">1908</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice-expanded"><a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">        <tt id="link-1901" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1903', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e'</tt> </tt>
+<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1904" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1904', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'e1'</tt> </tt>
+<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line"> </tt>
+<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1905" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1905', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-1906" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1906', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1907" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1907', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt>    </tt>
+<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-1908" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1908', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice"></a><div id="_ETreeTestCaseBase.test_getslice-def"><a name="L1916"></a><tt class="py-lineno">1916</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice-expanded"><a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">        <tt id="link-1909" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1901', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1902" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1909', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1910" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1902', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1903" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1910', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1911" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1903', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt id="link-1904" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1904', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1905" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1911', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">        <tt id="link-1912" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1912', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1913" class="py-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-1905', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1906" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1906', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line"> </tt>
-<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1907" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1913', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1914" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1914', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line"> </tt>
+<a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1915" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1907', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1908" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1908', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1909" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1909', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1910" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1910', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line"> </tt>
-<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">10</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice_negative"></a><div id="_ETreeTestCaseBase.test_getslice_negative-def"><a name="L1933"></a><tt class="py-lineno">1933</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_negative-expanded"><a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line">        <tt id="link-1911" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1915', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1916" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1916', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1917" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1917', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1918" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1918', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line"> </tt>
+<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">10</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">:</tt><tt class="py-number">12</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice_negative"></a><div id="_ETreeTestCaseBase.test_getslice_negative-def"><a name="L1941"></a><tt class="py-lineno">1941</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_negative-expanded"><a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">        <tt id="link-1919" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1911', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1912" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1919', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1920" class="py-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-1912', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1913" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1920', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1921" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1913', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line">        <tt id="link-1914" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1914', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1915" class="py-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-1915', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1916" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1916', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line"> </tt>
-<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1917" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1921', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt id="link-1922" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1922', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1923" class="py-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-1923', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1924" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1924', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line"> </tt>
+<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1925" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1917', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1918" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1918', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1919" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1919', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1920" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1920', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line"> </tt>
-<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice_step"></a><div id="_ETreeTestCaseBase.test_getslice_step-def"><a name="L1958"></a><tt class="py-lineno">1958</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_step-expanded"><a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">        <tt id="link-1921" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1925', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1926" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1926', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1927" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1927', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1928', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line"> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1960"></a><tt class="py-lineno">1960</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice_step"></a><div id="_ETreeTestCaseBase.test_getslice_step-def"><a name="L1966"></a><tt class="py-lineno">1966</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_step-expanded"><a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">        <tt id="link-1929" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1921', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1922" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1929', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1930" class="py-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-1922', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1923" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1930', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1931" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1923', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L1960"></a><tt class="py-lineno">1960</tt>  <tt class="py-line">        <tt id="link-1924" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1924', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1925" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1931', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">        <tt id="link-1932" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1932', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1933" class="py-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-1925', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1926" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1926', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line"> </tt>
-<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1927" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1933', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1934" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1934', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line"> </tt>
+<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1935" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1927', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1928', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1929" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1929', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1930" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1930', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1931" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1931', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line"> </tt>
-<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1972"></a><tt class="py-lineno">1972</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_getslice_text"></a><div id="_ETreeTestCaseBase.test_getslice_text-def"><a name="L1984"></a><tt class="py-lineno">1984</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_getslice_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_text-expanded"><a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt id="link-1932" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1935', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1936" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1936', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1972"></a><tt class="py-lineno">1972</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1937" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1937', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1938" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1938', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1939" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1939', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line"> </tt>
+<a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_getslice_text"></a><div id="_ETreeTestCaseBase.test_getslice_text-def"><a name="L1992"></a><tt class="py-lineno">1992</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_getslice_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_getslice_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_getslice_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_getslice_text-expanded"><a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line">        <tt id="link-1940" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1932', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1933" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1940', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1941" class="py-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-1933', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1934" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1941', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1942" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1934', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line">         </tt>
-<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;B1&lt;c&gt;C&lt;/c&gt;C1&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1935" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1942', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">         </tt>
+<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;B1&lt;c&gt;C&lt;/c&gt;C1&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1943" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1935', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1936" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1936', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_comment_getitem_getslice"></a><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-def"><a name="L2002"></a><tt class="py-lineno">2002</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_getitem_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_getitem_getslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-expanded"><a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">        <tt id="link-1937" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1943', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1944" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1944', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_comment_getitem_getslice"></a><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-def"><a name="L2010"></a><tt class="py-lineno">2010</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_comment_getitem_getslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_comment_getitem_getslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_comment_getitem_getslice-expanded"><a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">        <tt id="link-1945" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1937', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1938" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1945', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1946" class="py-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-1938', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1939" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1946', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1947" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1939', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">        <tt id="link-1940" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1940', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1941" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1947', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">        <tt id="link-1948" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1948', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1949" class="py-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-1941', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1942" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1942', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">        <tt id="link-1943" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1943', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1944" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1949', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1950" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1950', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line">        <tt id="link-1951" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1951', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1952" class="py-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-1944', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1945" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1945', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line"> </tt>
-<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1946" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1952', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1953" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1953', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line"> </tt>
+<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1954" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1946', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1947" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1947', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">        <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt id="link-1948" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1948', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1949" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1949', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">foo</tt><tt class="py-op">)</tt> </tt>
-<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1950" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1950', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line">            <tt class="py-name">foo</tt><tt class="py-op">,</tt> </tt>
-<a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-1951" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1954', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1955" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1955', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line">        <tt class="py-name">foo</tt> <tt class="py-op">=</tt> <tt id="link-1956" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1956', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1957" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1957', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">foo</tt><tt class="py-op">)</tt> </tt>
+<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1958" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1958', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">foo</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">            <tt class="py-name">foo</tt><tt class="py-op">,</tt> </tt>
+<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">new</tt> <tt class="py-op">=</tt> <tt id="link-1959" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1951', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">            <tt class="py-name">new</tt><tt class="py-op">,</tt> </tt>
-<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1952" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1952', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">            <tt id="link-1953" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1953', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;new&gt;&lt;/new&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_delslice"></a><div id="_ETreeTestCaseBase.test_delslice-def"><a name="L2026"></a><tt class="py-lineno">2026</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice-expanded"><a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line">        <tt id="link-1954" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1959', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">            <tt class="py-name">new</tt><tt class="py-op">,</tt> </tt>
+<a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-1960', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">            <tt id="link-1961" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1961', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;new&gt;&lt;/new&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_delslice"></a><div id="_ETreeTestCaseBase.test_delslice-def"><a name="L2034"></a><tt class="py-lineno">2034</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice-expanded"><a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line">        <tt id="link-1962" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1954', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1955" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1962', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1963" class="py-name"><a title="lxml.etree
 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-1955', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1956" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1963', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1964" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1956', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">        <tt id="link-1957" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1957', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1958" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1964', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">        <tt id="link-1965" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1965', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.etree
 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-1958', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1959" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1959', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line"> </tt>
-<a name="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1960" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1966', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1967" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1967', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line"> </tt>
+<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1968" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1960', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1961" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1961', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1962" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1962', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1963" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1963', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1964" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1964', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line"> </tt>
-<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
-<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_negative1"></a><div id="_ETreeTestCaseBase.test_delslice_negative1-def"><a name="L2041"></a><tt class="py-lineno">2041</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_negative1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative1-expanded"><a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line">        <tt id="link-1965" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1968', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1969" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1969', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1970" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1970', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1971" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1971', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1972" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1972', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line"> </tt>
+<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_negative1"></a><div id="_ETreeTestCaseBase.test_delslice_negative1-def"><a name="L2049"></a><tt class="py-lineno">2049</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_negative1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative1-expanded"><a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line">        <tt id="link-1973" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1965', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1973', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1974" class="py-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-1966', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1967" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1974', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1975" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1967', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">        <tt id="link-1968" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1968', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1969" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1975', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line">        <tt id="link-1976" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1976', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1977" class="py-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-1969', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1970" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1970', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line"> </tt>
-<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1971" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1977', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1978" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1978', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line"> </tt>
+<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1979" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1971', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1972" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1972', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1973" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1973', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1974" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1974', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1975" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1975', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line"> </tt>
-<a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_negative2-def"><a name="L2056"></a><tt class="py-lineno">2056</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative2-expanded"><a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line">        <tt id="link-1976" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1979', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1980" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1980', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1981" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1981', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1982" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1982', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1983" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1983', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line"> </tt>
+<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2061"></a><tt class="py-lineno">2061</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_negative2-def"><a name="L2064"></a><tt class="py-lineno">2064</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_negative2-expanded"><a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line">        <tt id="link-1984" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1976', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1977" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1984', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1985" class="py-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-1977', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1978" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1985', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1986" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1978', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line">        <tt id="link-1979" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1979', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1980" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1986', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">        <tt id="link-1987" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1987', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1988" class="py-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-1980', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1981" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1981', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line"> </tt>
-<a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1982" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1988', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1989" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1989', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line"> </tt>
+<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1990" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1982', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2061"></a><tt class="py-lineno">2061</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1983" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1983', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1984" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1984', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1985" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1985', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2064"></a><tt class="py-lineno">2064</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1986" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1986', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line"> </tt>
-<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_step"></a><div id="_ETreeTestCaseBase.test_delslice_step-def"><a name="L2071"></a><tt class="py-lineno">2071</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step-expanded"><a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">        <tt id="link-1987" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1990', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1991" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1991', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1992" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1992', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1993" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1993', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1994" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1994', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line"> </tt>
+<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_step"></a><div id="_ETreeTestCaseBase.test_delslice_step-def"><a name="L2079"></a><tt class="py-lineno">2079</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step-expanded"><a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line">        <tt id="link-1995" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1987', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1988" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1995', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1996" class="py-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-1988', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1989" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1996', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1997" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1989', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">        <tt id="link-1990" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1990', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1991" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1997', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">        <tt id="link-1998" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1998', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1999" class="py-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-1991', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1992" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1992', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line"> </tt>
-<a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1993" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1999', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2000" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2000', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line"> </tt>
+<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2001" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1993', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1994" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1994', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1995" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1995', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1996" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1996', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1997" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1997', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line"> </tt>
-<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_step_negative"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative-def"><a name="L2086"></a><tt class="py-lineno">2086</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative-expanded"><a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line">        <tt id="link-1998" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2001', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2002" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2002', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2003" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2003', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2004" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2004', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2005" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2005', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line"> </tt>
+<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_step_negative"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative-def"><a name="L2094"></a><tt class="py-lineno">2094</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative-expanded"><a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">        <tt id="link-2006" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1998', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1999" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2006', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2007" class="py-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-1999', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2000" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2007', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2008" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2000', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">        <tt id="link-2001" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2001', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2002" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2008', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">        <tt id="link-2009" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2009', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2010" class="py-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-2002', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2003" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2003', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line"> </tt>
-<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2004" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2010', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2011', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line"> </tt>
+<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2012" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2004', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2005" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2005', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2006" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2006', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2007" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2007', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2008" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2008', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line"> </tt>
-<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_step_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative2-def"><a name="L2101"></a><tt class="py-lineno">2101</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-expanded"><a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt id="link-2009" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2012', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2013" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2013', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2014" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2014', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2015" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2015', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2016" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2016', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line"> </tt>
+<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_step_negative2"></a><div id="_ETreeTestCaseBase.test_delslice_step_negative2-def"><a name="L2109"></a><tt class="py-lineno">2109</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_step_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_step_negative2-expanded"><a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">        <tt id="link-2017" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2009', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2010" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2017', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2018" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2010', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2018', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2019" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2011', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line">        <tt id="link-2012" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2012', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2013" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2019', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt id="link-2020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2020', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2021" class="py-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-2013', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2014" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2014', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line"> </tt>
-<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2015" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2021', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2022" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2022', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line"> </tt>
+<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2023" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2015', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2016" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2016', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2017" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2017', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2018" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2018', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2019" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2019', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line"> </tt>
-<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_child_tail"></a><div id="_ETreeTestCaseBase.test_delslice_child_tail-def"><a name="L2116"></a><tt class="py-lineno">2116</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_child_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_child_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_child_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_child_tail-expanded"><a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt id="link-2020" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2023', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2024" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2024', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2025" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2025', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2026" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2026', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2027" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2027', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line"> </tt>
+<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_child_tail"></a><div id="_ETreeTestCaseBase.test_delslice_child_tail-def"><a name="L2124"></a><tt class="py-lineno">2124</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_child_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_child_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_child_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_child_tail-expanded"><a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">        <tt id="link-2028" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2020', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2021" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2028', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2029" class="py-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-2021', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2022" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2029', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2030" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2022', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;d&gt;&lt;/d&gt;D2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2023" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2030', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;d&gt;&lt;/d&gt;D2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2031" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2023', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2024" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2024', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
-<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2025" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2025', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">            <tt id="link-2026" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2026', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_tail"></a><div id="_ETreeTestCaseBase.test_delslice_tail-def"><a name="L2126"></a><tt class="py-lineno">2126</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_tail-expanded"><a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line">        <tt id="link-2027" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2031', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2032" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2032', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2033" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2033', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">            <tt id="link-2034" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2034', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_tail"></a><div id="_ETreeTestCaseBase.test_delslice_tail-def"><a name="L2134"></a><tt class="py-lineno">2134</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_tail-expanded"><a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">        <tt id="link-2035" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2027', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2035', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2036" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2028', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2029" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2036', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2037" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2029', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2030" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2037', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2038" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2030', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2031" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2031', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
-<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line"> </tt>
-<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line"> </tt>
-<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2032" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2032', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2033" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2033', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_delslice_memory"></a><div id="_ETreeTestCaseBase.test_delslice_memory-def"><a name="L2136"></a><tt class="py-lineno">2136</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_memory-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_memory');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_delslice_memory-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_memory-expanded"><a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt class="py-comment"># this could trigger a crash</tt> </tt>
-<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">        <tt id="link-2034" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2038', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2039" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2039', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt class="py-name">a</tt> </tt>
+<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line"> </tt>
+<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line"> </tt>
+<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"B2"</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2040" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2040', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"C2"</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2041" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2041', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_delslice_memory"></a><div id="_ETreeTestCaseBase.test_delslice_memory-def"><a name="L2144"></a><tt class="py-lineno">2144</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_delslice_memory-toggle" onclick="return toggle('_ETreeTestCaseBase.test_delslice_memory');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_delslice_memory-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_delslice_memory-expanded"><a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">        <tt class="py-comment"># this could trigger a crash</tt> </tt>
+<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">        <tt id="link-2042" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2034', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2035" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2042', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2043" class="py-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-2035', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2036" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2043', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2036', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">        <tt id="link-2037" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2037', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2038" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2044', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line">        <tt id="link-2045" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2045', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2046" class="py-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-2038', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2039" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2039', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2040" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2046', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2047" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2047', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2048" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2040', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2041" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2041', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2042" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2042', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">b</tt> <tt class="py-comment"># no more reference to b</tt> </tt>
-<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2043" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2048', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2049" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2049', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2050" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2050', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">b</tt> <tt class="py-comment"># no more reference to b</tt> </tt>
+<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2051" 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-2043', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_setslice"></a><div id="_ETreeTestCaseBase.test_setslice-def"><a name="L2147"></a><tt class="py-lineno">2147</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice-expanded"><a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">        <tt id="link-2044" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2051', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_setslice"></a><div id="_ETreeTestCaseBase.test_setslice-def"><a name="L2155"></a><tt class="py-lineno">2155</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice-expanded"><a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">        <tt id="link-2052" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2044', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2045" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2052', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2053" class="py-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-2045', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2046" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2053', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2054" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2046', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">        <tt id="link-2047" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2047', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2048" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2054', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">        <tt id="link-2055" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2055', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2056" class="py-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-2048', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2049" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2049', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line"> </tt>
-<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2050" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2056', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2057" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2057', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line"> </tt>
+<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2058" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2050', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2051" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2051', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2052" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2052', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2053" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2053', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line"> </tt>
-<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2054" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2058', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2059" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2059', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2060" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2060', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2061" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2061', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line"> </tt>
+<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2062" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2054', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2055" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2062', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2063" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2055', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2056" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2063', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2064" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2056', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line"> </tt>
-<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all"></a><div id="_ETreeTestCaseBase.test_setslice_all-def"><a name="L2166"></a><tt class="py-lineno">2166</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all-expanded"><a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">        <tt id="link-2057" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2064', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line"> </tt>
+<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all"></a><div id="_ETreeTestCaseBase.test_setslice_all-def"><a name="L2174"></a><tt class="py-lineno">2174</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all-expanded"><a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt id="link-2065" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2057', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2058" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2065', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2066" class="py-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-2058', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2059" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2066', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2067" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2059', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">        <tt id="link-2060" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2060', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2061" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2067', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">        <tt id="link-2068" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2068', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2069" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2061', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2062" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2062', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line"> </tt>
-<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2063" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2069', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2070" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2070', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line"> </tt>
+<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2071" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2063', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2064" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2064', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2065" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2065', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line"> </tt>
-<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2066" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2071', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2072" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2072', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2073" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2073', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line"> </tt>
+<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2074" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2066', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2067" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2074', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2075" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2067', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2068" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2075', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2076" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2068', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line"> </tt>
-<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_empty"></a><div id="_ETreeTestCaseBase.test_setslice_all_empty-def"><a name="L2184"></a><tt class="py-lineno">2184</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_empty-expanded"><a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">        <tt id="link-2069" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2076', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line"> </tt>
+<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_empty"></a><div id="_ETreeTestCaseBase.test_setslice_all_empty-def"><a name="L2192"></a><tt class="py-lineno">2192</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_empty-expanded"><a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">        <tt id="link-2077" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2069', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2070" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2077', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2078" class="py-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-2070', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2071" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2078', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2079" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2071', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">        <tt id="link-2072" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2072', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2073" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2079', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">        <tt id="link-2080" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2080', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2081" class="py-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-2073', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2074" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2074', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line"> </tt>
-<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2075" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2081', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2082" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2082', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line"> </tt>
+<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2083" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2075', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line"> </tt>
-<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2076" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2083', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line"> </tt>
+<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2084" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2076', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2077" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2084', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2085" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2077', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2078" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2085', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2078', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line"> </tt>
-<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace-def"><a name="L2200"></a><tt class="py-lineno">2200</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace-expanded"><a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">        <tt id="link-2079" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2086', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line"> </tt>
+<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace-def"><a name="L2208"></a><tt class="py-lineno">2208</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace-expanded"><a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">        <tt id="link-2087" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2079', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2087', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2088" class="py-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-2080', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2088', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2089" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2081', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">        <tt id="link-2082" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2082', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2083" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2089', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt id="link-2090" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2090', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2091" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2083', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2084', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line"> </tt>
-<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2085" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2091', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2092" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2092', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line"> </tt>
+<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2093" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2085', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2086', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2087" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2087', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2088" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2088', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line"> </tt>
-<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt> </tt>
-<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-def"><a name="L2215"></a><tt class="py-lineno">2215</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-expanded"><a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">        <tt id="link-2089" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2093', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2094" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2094', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2095" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2095', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2096" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2096', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line"> </tt>
+<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt> </tt>
+<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-def"><a name="L2223"></a><tt class="py-lineno">2223</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed-expanded"><a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">        <tt id="link-2097" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2089', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2090" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2097', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2098" class="py-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-2090', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2091" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2098', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2099" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2091', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">        <tt id="link-2092" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2092', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2093" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2099', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">        <tt id="link-2100" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2100', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2101" class="py-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-2093', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2094" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2094', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line"> </tt>
-<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2095" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2101', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2102" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2102', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line"> </tt>
+<a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2103" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2095', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2096" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2096', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2097" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2097', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2098" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2098', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line"> </tt>
-<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
-<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-def"><a name="L2230"></a><tt class="py-lineno">2230</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-expanded"><a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">        <tt id="link-2099" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2103', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2104" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2104', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2105" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2105', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2106" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2106', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line"> </tt>
+<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
+<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-def"><a name="L2238"></a><tt class="py-lineno">2238</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns1-expanded"><a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt id="link-2107" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2099', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2100" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2107', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2108" class="py-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-2100', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2101" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2108', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2109" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2101', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt id="link-2102" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2102', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2103" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2109', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">        <tt id="link-2110" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2110', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2111" class="py-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-2103', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2104" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2104', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line"> </tt>
-<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2105" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2111', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2112" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2112', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line"> </tt>
+<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2113" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2105', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2106" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2106', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2107" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2107', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2108', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line"> </tt>
-<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
-<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2109" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2113', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2114" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2114', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2115', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2116" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2116', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line"> </tt>
+<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
+<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'{ns}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2117" 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-2109', 'tag', 'link-36');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line"> </tt>
-<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2110" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2117', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line"> </tt>
+<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns3}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns2}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns1}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2118" 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-2110', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2111" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2118', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2119" 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-2111', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-def"><a name="L2252"></a><tt class="py-lineno">2252</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-expanded"><a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">        <tt id="link-2112" class="py-name"><a title="lxml.etree.Element
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2119', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2"></a><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-def"><a name="L2260"></a><tt class="py-lineno">2260</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_all_replace_reversed_ns2-expanded"><a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">        <tt id="link-2120" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2112', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2113" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2120', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2121" class="py-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-2113', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2121', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2114', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line">        <tt id="link-2115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2115', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2116" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2122', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">        <tt id="link-2123" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2123', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2124" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2116', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2117', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line"> </tt>
-<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2118" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2118', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2119" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2119', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2120" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2120', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2121" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2121', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line"> </tt>
-<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
-<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2124', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2125" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2125', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line"> </tt>
+<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2126" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2126', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{ns}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2127" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2127', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2128" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2128', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2129" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2129', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">:</tt> <tt class="py-string">'test'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line"> </tt>
+<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt> </tt>
+<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'{ns3}d'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns2}c'</tt><tt class="py-op">,</tt> <tt class="py-string">'{ns1}b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2130" 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-2122', 'tag', 'link-36');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line"> </tt>
-<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2123" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2130', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line"> </tt>
+<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">[</tt><tt class="py-string">'{ns}a3'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a2'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'{ns}a1'</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2280"></a><tt class="py-lineno">2280</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2131" 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-2123', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2124" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2131', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2132" 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-2124', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_end"></a><div id="_ETreeTestCaseBase.test_setslice_end-def"><a name="L2274"></a><tt class="py-lineno">2274</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end-expanded"><a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">        <tt id="link-2125" class="py-name"><a title="lxml.etree.Element
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2132', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">a</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_end"></a><div id="_ETreeTestCaseBase.test_setslice_end-def"><a name="L2282"></a><tt class="py-lineno">2282</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end-expanded"><a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt id="link-2133" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2125', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2126" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2133', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2134" class="py-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-2126', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2127" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2134', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2135" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2127', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">        <tt id="link-2128" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2128', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2129" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2135', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line">        <tt id="link-2136" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2136', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2137" class="py-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-2129', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2130" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2130', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line"> </tt>
-<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2131" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2137', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2138" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2138', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line"> </tt>
+<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2139" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2131', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2132" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2132', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2280"></a><tt class="py-lineno">2280</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2133', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line"> </tt>
-<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2134" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2139', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2140" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2140', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2141" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2141', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line"> </tt>
+<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2142" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2134', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2135" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2142', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2143" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2135', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2136" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2143', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2144" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2136', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">        <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt id="link-2137" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2144', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line">        <tt class="py-name">h</tt> <tt class="py-op">=</tt> <tt id="link-2145" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2137', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line"> </tt>
-<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
-<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">99</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line"> </tt>
-<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">]</tt> </tt>
-<a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_single"></a><div id="_ETreeTestCaseBase.test_setslice_single-def"><a name="L2299"></a><tt class="py-lineno">2299</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_single-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_single');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_single-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_single-expanded"><a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">        <tt id="link-2138" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2145', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'h'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line"> </tt>
+<a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
+<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">99</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line"> </tt>
+<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">]</tt> </tt>
+<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2304"></a><tt class="py-lineno">2304</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">h</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_single"></a><div id="_ETreeTestCaseBase.test_setslice_single-def"><a name="L2307"></a><tt class="py-lineno">2307</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_single-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_single');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_single-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_single-expanded"><a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt id="link-2146" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2138', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2139" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2146', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2147" class="py-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-2139', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2140" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2147', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2148" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2140', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">        <tt id="link-2141" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2141', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2142" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2148', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line">        <tt id="link-2149" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2149', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2150" class="py-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-2142', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2143" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2143', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line"> </tt>
-<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2144" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2150', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2151', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line"> </tt>
+<a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2152" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2144', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2304"></a><tt class="py-lineno">2304</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2145" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2145', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2146" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2146', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line"> </tt>
-<a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2147" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2152', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2312"></a><tt class="py-lineno">2312</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2153" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2153', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2154" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2154', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line"> </tt>
+<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2155" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2147', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2148" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2155', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2156" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2148', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line"> </tt>
-<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt> </tt>
-<a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2312"></a><tt class="py-lineno">2312</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line"> </tt>
-<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
-<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_tail"></a><div id="_ETreeTestCaseBase.test_setslice_tail-def"><a name="L2322"></a><tt class="py-lineno">2322</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_tail-expanded"><a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">        <tt id="link-2149" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2156', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line"> </tt>
+<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">]</tt> </tt>
+<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line"> </tt>
+<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt> </tt>
+<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_tail"></a><div id="_ETreeTestCaseBase.test_setslice_tail-def"><a name="L2330"></a><tt class="py-lineno">2330</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_tail-expanded"><a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">        <tt id="link-2157" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2149', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2150" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2157', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2158" class="py-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-2150', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2158', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2159" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2151', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line">        <tt id="link-2152" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2159', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt id="link-2160" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2152', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2153" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2160', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2153', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2154" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2161', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2162" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2154', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;d&gt;&lt;/d&gt;D2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2155" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2162', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;c&gt;&lt;/c&gt;C2&lt;d&gt;&lt;/d&gt;D2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-2163" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2155', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2156" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2156', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2157" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2163', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-2164" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2164', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2165" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2157', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2158" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2165', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2166" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2158', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2159" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2166', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2167" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2159', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">        <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-2160" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2160', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X2'</tt> </tt>
-<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt class="py-name">y</tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2161', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Y2'</tt> </tt>
-<a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">        <tt class="py-name">z</tt><tt class="py-op">.</tt><tt id="link-2162" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2162', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Z2'</tt> </tt>
-<a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt> </tt>
-<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2163" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2163', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">            <tt id="link-2164" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2164', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;x&gt;&lt;/x&gt;X2&lt;y&gt;&lt;/y&gt;Y2&lt;z&gt;&lt;/z&gt;Z2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_negative"></a><div id="_ETreeTestCaseBase.test_setslice_negative-def"><a name="L2339"></a><tt class="py-lineno">2339</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative-expanded"><a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">        <tt id="link-2165" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2167', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line">        <tt class="py-name">x</tt><tt class="py-op">.</tt><tt id="link-2168" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2168', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X2'</tt> </tt>
+<a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">        <tt class="py-name">y</tt><tt class="py-op">.</tt><tt id="link-2169" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2169', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Y2'</tt> </tt>
+<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt class="py-name">z</tt><tt class="py-op">.</tt><tt id="link-2170" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2170', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Z2'</tt> </tt>
+<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt> </tt>
+<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2171" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2171', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">            <tt id="link-2172" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2172', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;B2&lt;x&gt;&lt;/x&gt;X2&lt;y&gt;&lt;/y&gt;Y2&lt;z&gt;&lt;/z&gt;Z2&lt;e&gt;&lt;/e&gt;E2&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_negative"></a><div id="_ETreeTestCaseBase.test_setslice_negative-def"><a name="L2347"></a><tt class="py-lineno">2347</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative-expanded"><a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt id="link-2173" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2165', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2166" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2173', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2174" class="py-name"><a title="lxml.etree
 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-2166', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2167" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2174', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2175" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2167', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt id="link-2168" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2168', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2169" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2175', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">        <tt id="link-2176" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2176', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2177" class="py-name"><a title="lxml.etree
 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-2169', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2170" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2170', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line"> </tt>
-<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2171" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2177', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2178" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2178', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line"> </tt>
+<a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2179" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2171', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2172" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2172', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2173" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2173', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2174" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2174', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line"> </tt>
-<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2175" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2179', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2180', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2181" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2181', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2182', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line"> </tt>
+<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2183" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2175', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2176" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2183', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2184" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2176', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line"> </tt>
-<a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_negative2"></a><div id="_ETreeTestCaseBase.test_setslice_negative2-def"><a name="L2356"></a><tt class="py-lineno">2356</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative2-expanded"><a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt id="link-2177" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2184', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line"> </tt>
+<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_negative2"></a><div id="_ETreeTestCaseBase.test_setslice_negative2-def"><a name="L2364"></a><tt class="py-lineno">2364</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_negative2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_negative2-expanded"><a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">        <tt id="link-2185" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2177', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2178" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2185', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2186" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2178', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2179" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2186', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2187" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2179', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">        <tt id="link-2180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2180', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2181" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2187', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt id="link-2188" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2188', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2189" class="py-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-2181', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2182', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line"> </tt>
-<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2183" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2189', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2190" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2190', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line"> </tt>
+<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2191" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2183', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2184" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2184', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2185" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2185', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2186" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2186', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line"> </tt>
-<a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2187" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2191', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2192" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2192', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2193" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2193', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2194" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2194', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line"> </tt>
+<a name="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2195" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2187', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2188" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2195', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2196" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2188', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line"> </tt>
-<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_setslice_end"></a><div id="_ETreeTestCaseBase.test_setslice_end-def"><a name="L2373"></a><tt class="py-lineno">2373</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end-expanded"><a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">        <tt id="link-2189" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2196', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line"> </tt>
+<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2379"></a><tt class="py-lineno">2379</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_setslice_end"></a><div id="_ETreeTestCaseBase.test_setslice_end-def"><a name="L2381"></a><tt class="py-lineno">2381</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_end-expanded"><a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line">        <tt id="link-2197" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2189', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2190" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2197', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2198" class="py-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-2190', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2191" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2198', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2199" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2191', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">        <tt id="link-2192" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2192', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2193" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2199', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt id="link-2200" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2200', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2201" class="py-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-2193', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2194" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2194', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line"> </tt>
-<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2195" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2201', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2202" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2202', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line"> </tt>
+<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2203" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2195', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2196" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2196', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2379"></a><tt class="py-lineno">2379</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2197" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2197', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2198" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2198', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line"> </tt>
-<a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2199" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2203', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2204" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2204', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2205" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2205', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2206" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2206', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line"> </tt>
+<a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2207" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2199', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2200" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2207', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2208" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2200', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2201" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2208', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2209" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2201', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line"> </tt>
-<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_setslice_empty"></a><div id="_ETreeTestCaseBase.test_setslice_empty-def"><a name="L2392"></a><tt class="py-lineno">2392</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_setslice_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_empty-expanded"><a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">        <tt id="link-2202" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2209', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line"> </tt>
+<a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2396"></a><tt class="py-lineno">2396</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_setslice_empty"></a><div id="_ETreeTestCaseBase.test_setslice_empty-def"><a name="L2400"></a><tt class="py-lineno">2400</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_setslice_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_setslice_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_setslice_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_setslice_empty-expanded"><a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">        <tt id="link-2210" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2202', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2203" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2210', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2211" class="py-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-2203', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2204" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2211', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2212" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2204', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line"> </tt>
-<a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2205" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2212', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line"> </tt>
+<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2213" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2205', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2396"></a><tt class="py-lineno">2396</tt>  <tt class="py-line"> </tt>
-<a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2206" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2213', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line"> </tt>
+<a name="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2214" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2206', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2207" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2214', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2215" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2207', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line"> </tt>
-<a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt> </tt>
-<a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tail_elementtree_root"></a><div id="_ETreeTestCaseBase.test_tail_elementtree_root-def"><a name="L2405"></a><tt class="py-lineno">2405</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_elementtree_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_elementtree_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-expanded"><a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt id="link-2208" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2215', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line"> </tt>
+<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt> </tt>
+<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tail_elementtree_root"></a><div id="_ETreeTestCaseBase.test_tail_elementtree_root-def"><a name="L2413"></a><tt class="py-lineno">2413</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tail_elementtree_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tail_elementtree_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tail_elementtree_root-expanded"><a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line">        <tt id="link-2216" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2208', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2209" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2216', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2217" class="py-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-2209', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2210" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2217', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2218" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2210', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line">        <tt id="link-2211" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2218', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line">        <tt id="link-2219" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2211', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2212" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2219', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2220" class="py-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-2212', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2213" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2220', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2221" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2213', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line"> </tt>
-<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2214" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2221', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line"> </tt>
+<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2222" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2214', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2215" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2215', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A2'</tt> </tt>
-<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2216" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2222', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2223" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2223', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'A2'</tt> </tt>
+<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2224" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2216', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'A2'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2217', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_elementtree_getiterator"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator-def"><a name="L2415"></a><tt class="py-lineno">2415</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-expanded"><a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">        <tt id="link-2218" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2224', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'A2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2225', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_elementtree_getiterator"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator-def"><a name="L2423"></a><tt class="py-lineno">2423</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator-expanded"><a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">        <tt id="link-2226" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2218', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2219" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2226', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2227" class="py-name"><a title="lxml.etree
 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-2219', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2220" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2227', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2220', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line">        <tt id="link-2221" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2221', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2222" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2228', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line">        <tt id="link-2229" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2229', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2230" class="py-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-2222', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2223" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2223', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt id="link-2224" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2230', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2231" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2231', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2426"></a><tt class="py-lineno">2426</tt>  <tt class="py-line">        <tt id="link-2232" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2224', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2232', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2233" class="py-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-2225', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2226" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2233', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2234" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2226', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">         </tt>
-<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2227" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2234', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">         </tt>
+<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2235" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2227', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2228" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2228', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2229" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2229', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2230" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2230', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2231" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2231', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2232" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2235', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2236" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2236', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2430"></a><tt class="py-lineno">2430</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2237" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2237', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2238" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2238', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2239" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2239', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2240" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2232', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2426"></a><tt class="py-lineno">2426</tt>  <tt class="py-line">         </tt>
-<a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2233" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2233', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2430"></a><tt class="py-lineno">2430</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_elementtree_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-def"><a name="L2431"></a><tt class="py-lineno">2431</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator_filter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-expanded"><a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">        <tt id="link-2234" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2240', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">         </tt>
+<a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2241" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2241', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_elementtree_getiterator_filter"></a><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-def"><a name="L2439"></a><tt class="py-lineno">2439</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_getiterator_filter');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_getiterator_filter-expanded"><a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">        <tt id="link-2242" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2234', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2235" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2242', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2243" class="py-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-2235', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2236" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2243', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2244" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2236', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line">        <tt id="link-2237" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2237', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2238" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2244', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line">        <tt id="link-2245" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2245', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2246" class="py-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-2238', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2239" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2239', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">        <tt id="link-2240" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2246', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2247" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2247', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2442"></a><tt class="py-lineno">2442</tt>  <tt class="py-line">        <tt id="link-2248" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2240', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2241" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2248', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2249" class="py-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-2241', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2242" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2249', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2250" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2242', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2243" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2250', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2251" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2243', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2244" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2244', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2245" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2245', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2246" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2246', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2247" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2247', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2248" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2251', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2252" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2252', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2253" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2253', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2254" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2254', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2255" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2255', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2256" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2248', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line">         </tt>
-<a name="L2442"></a><tt class="py-lineno">2442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2249" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2249', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2250" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2250', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2251" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2251', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_access"></a><div id="_ETreeTestCaseBase.test_ns_access-def"><a name="L2450"></a><tt class="py-lineno">2450</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_access-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access-expanded"><a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt id="link-2252" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2256', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">         </tt>
+<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2257" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2257', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2258" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2258', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2259" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2259', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_access"></a><div id="_ETreeTestCaseBase.test_ns_access-def"><a name="L2458"></a><tt class="py-lineno">2458</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_access-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access-expanded"><a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line">        <tt id="link-2260" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2252', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2260', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2261" class="py-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-2253', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2254" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2261', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2262" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2254', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">        <tt id="link-2255" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2255', 'ns', 'link-2255');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x:a xmlns:x="%s"&gt;&lt;x:b&gt;&lt;/x:b&gt;&lt;/x:a&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-2256" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2256', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2257" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2262', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line">        <tt id="link-2263" class="py-name" targets="Variable lxml.cssselect.ns=lxml.cssselect-module.html#ns"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2263', 'ns', 'link-2263');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x:a xmlns:x="%s"&gt;&lt;x:b&gt;&lt;/x:b&gt;&lt;/x:a&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-2264" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2264', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2265" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2257', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2258" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2258', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2259" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2259', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2260" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2265', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2266" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2266', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2267" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2267', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2268" 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-2260', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2261" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2261', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2262" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2268', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2269" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2269', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2270" 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-2262', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_access2"></a><div id="_ETreeTestCaseBase.test_ns_access2-def"><a name="L2461"></a><tt class="py-lineno">2461</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_access2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access2-expanded"><a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt id="link-2263" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2270', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_access2"></a><div id="_ETreeTestCaseBase.test_ns_access2-def"><a name="L2469"></a><tt class="py-lineno">2469</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_access2-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_access2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_access2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_access2-expanded"><a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt id="link-2271" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2263', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2271', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2272" class="py-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-2264', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2265" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2272', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2273" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2265', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">        <tt id="link-2266" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2266', 'ns', 'link-2255');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x:a xmlns:x="%s" xmlns:y="%s"&gt;&lt;x:b&gt;&lt;/x:b&gt;&lt;y:b&gt;&lt;/y:b&gt;&lt;/x:a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2267" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2267', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2268" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2273', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">        <tt id="link-2274" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2274', 'ns', 'link-2263');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;x:a xmlns:x="%s" xmlns:y="%s"&gt;&lt;x:b&gt;&lt;/x:b&gt;&lt;y:b&gt;&lt;/y:b&gt;&lt;/x:a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2275" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2275', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2276" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2268', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2269" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2269', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2270" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2270', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2271" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2276', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2277" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2277', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2278" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2278', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2279" 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-2271', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2272" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2272', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">                          <tt class="py-name">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-2273" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2279', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2280" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2280', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">                          <tt class="py-name">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-2281" 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-2273', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2274" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2281', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2282" 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-2274', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_setting"></a><div id="_ETreeTestCaseBase.test_ns_setting-def"><a name="L2475"></a><tt class="py-lineno">2475</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_setting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_setting');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_setting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_setting-expanded"><a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt id="link-2275" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2282', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2482"></a><tt class="py-lineno">2482</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_setting"></a><div id="_ETreeTestCaseBase.test_ns_setting-def"><a name="L2483"></a><tt class="py-lineno">2483</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_setting-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_setting');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_setting-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_setting-expanded"><a name="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line">        <tt id="link-2283" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2275', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2283', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name"><a title="lxml.etree
 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-2276', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2277" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2284', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2285" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2277', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt id="link-2278" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2278', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2279" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2285', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt id="link-2286" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2286', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree
 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-2279', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2280" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2280', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">        <tt id="link-2281" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2281', 'ns', 'link-2255');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2282" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2287', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2288" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2288', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt id="link-2289" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2289', 'ns', 'link-2263');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2290" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2282', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2283" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2283', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2284" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2284', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2482"></a><tt class="py-lineno">2482</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2285" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2285', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2286" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2286', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2287" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2287', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2288" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2290', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2291" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2291', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2489"></a><tt class="py-lineno">2489</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2292" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2292', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2293" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2293', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2294" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2294', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2295" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2295', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2296" 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-2288', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2289" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2296', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2297" 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-2289', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2290" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2290', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line">                          <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2291" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2297', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2298" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2298', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2496"></a><tt class="py-lineno">2496</tt>  <tt class="py-line">                          <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2299" 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-2291', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2489"></a><tt class="py-lineno">2489</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2292" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2292', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2293" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2299', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2300" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2300', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2301" 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-2293', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2294" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2301', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line">                          <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2302" 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-2294', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2295" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2295', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">                          <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2296" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2302', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}c'</tt> <tt class="py-op">%</tt> <tt id="link-2303" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2303', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">                          <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2304" 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-2296', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_tag_parse"></a><div id="_ETreeTestCaseBase.test_ns_tag_parse-def"><a name="L2496"></a><tt class="py-lineno">2496</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_tag_parse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_tag_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_tag_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_tag_parse-expanded"><a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">        <tt id="link-2297" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2304', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_tag_parse"></a><div id="_ETreeTestCaseBase.test_ns_tag_parse-def"><a name="L2504"></a><tt class="py-lineno">2504</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_tag_parse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_tag_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_tag_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_tag_parse-expanded"><a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">        <tt id="link-2305" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2297', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2305', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2306" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2298', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2299" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2306', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2307" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2299', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">        <tt id="link-2300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2300', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2301" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2307', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt id="link-2308" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2308', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2309" class="py-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-2301', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2302', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line">        <tt id="link-2303" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2309', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2310" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2310', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">        <tt id="link-2311" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2303', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2304" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2311', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2312" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2304', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2312', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2305', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line"> </tt>
-<a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">        <tt id="link-2306" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2306', 'ns', 'link-2255');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="%s" xmlns:x="%s"&gt;&lt;x:b&gt;&lt;/x:b&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2307" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2307', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2308" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2313', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line"> </tt>
+<a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt id="link-2314" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2314', 'ns', 'link-2263');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="%s" xmlns:x="%s"&gt;&lt;x:b&gt;&lt;/x:b&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2315" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2315', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-2316" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2308', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line"> </tt>
-<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2309" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2309', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2310" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2310', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2311" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2316', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2513"></a><tt class="py-lineno">2513</tt>  <tt class="py-line"> </tt>
+<a name="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt id="link-2317" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2317', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt id="link-2318" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2318', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2319" 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-2311', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
-<a name="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2312" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2319', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> </tt>
+<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2320" 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-2312', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2313" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2313', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2314" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2320', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}b'</tt> <tt class="py-op">%</tt> <tt id="link-2321" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2321', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2322" 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-2314', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2513"></a><tt class="py-lineno">2513</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_attr"></a><div id="_ETreeTestCaseBase.test_ns_attr-def"><a name="L2514"></a><tt class="py-lineno">2514</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_attr-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_attr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_attr-expanded"><a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt id="link-2315" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2322', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_attr"></a><div id="_ETreeTestCaseBase.test_ns_attr-def"><a name="L2522"></a><tt class="py-lineno">2522</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_attr-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_attr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_attr-expanded"><a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">        <tt id="link-2323" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2315', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2323', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2324" class="py-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-2316', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2317" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2324', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2325" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2317', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line">        <tt id="link-2318" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2318', 'ns', 'link-2255');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
-<a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
-<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2319" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2325', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt id="link-2326" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2326', 'ns', 'link-2263');">ns</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/1'</tt> </tt>
+<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-name">ns2</tt> <tt class="py-op">=</tt> <tt class="py-string">'http://xml.infrae.com/2'</tt> </tt>
+<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2327" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2319', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2320" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2320', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2321" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2321', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2322" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2322', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">            <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2323" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2327', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2328" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2328', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2329" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2329', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-string">'Foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2330', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">            <tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2331" 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-2323', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2324" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2324', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">            <tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2325" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2331', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}foo'</tt> <tt class="py-op">%</tt> <tt id="link-2332" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2332', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">            <tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2333" 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-2325', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2326', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line">                <tt id="link-2327" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2327', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:ns0="%s" xmlns:ns1="%s" ns0:foo="Foo" ns1:bar="Bar"&gt;&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2328" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2328', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">                <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-2329" class="py-name"><a title="exceptions.AssertionError" class="py-name" href="#" onclick="return doclink('link-2329', 'AssertionError', 'link-680');">AssertionError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2330', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">                <tt id="link-2331" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2331', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:ns0="%s" xmlns:ns1="%s" ns1:foo="Foo" ns0:bar="Bar"&gt;&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt id="link-2332" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2332', 'ns', 'link-2255');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line">                <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_move"></a><div id="_ETreeTestCaseBase.test_ns_move-def"><a name="L2536"></a><tt class="py-lineno">2536</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_move-expanded"><a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">        <tt id="link-2333" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2333', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}bar'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2334" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2334', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">                <tt id="link-2335" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2335', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:ns0="%s" xmlns:ns1="%s" ns0:foo="Foo" ns1:bar="Bar"&gt;&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-2336" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2336', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">,</tt> <tt class="py-name">ns2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">                <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-2337" class="py-name"><a title="exceptions.AssertionError" class="py-name" href="#" onclick="return doclink('link-2337', 'AssertionError', 'link-688');">AssertionError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2338" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2338', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line">                <tt id="link-2339" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2339', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:ns0="%s" xmlns:ns1="%s" ns1:foo="Foo" ns0:bar="Bar"&gt;&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">ns2</tt><tt class="py-op">,</tt> <tt id="link-2340" class="py-name"><a title="lxml.cssselect.ns" class="py-name" href="#" onclick="return doclink('link-2340', 'ns', 'link-2263');">ns</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">                <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_move"></a><div id="_ETreeTestCaseBase.test_ns_move-def"><a name="L2544"></a><tt class="py-lineno">2544</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_move-expanded"><a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line">        <tt id="link-2341" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2333', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2334" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2341', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2342" class="py-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-2334', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2335" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2342', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2343" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2335', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2336" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2343', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2344" class="py-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-2336', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2337" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2344', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2345" 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-2337', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">            <tt id="link-2338" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2338', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="http://a.b.c"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line"> </tt>
-<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt id="link-2339" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2339', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2340" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2340', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
-<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">        <tt class="py-comment"># removing the originating document could cause a crash/error before</tt> </tt>
-<a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line">        <tt class="py-comment"># as namespace is not moved along with it</tt> </tt>
-<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt> </tt>
-<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://a.b.c}baz'</tt><tt class="py-op">,</tt> <tt class="py-name">two</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2341" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2345', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">            <tt id="link-2346" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2346', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="http://a.b.c"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line"> </tt>
+<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt id="link-2347" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2347', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2348', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
+<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line">        <tt class="py-comment"># removing the originating document could cause a crash/error before</tt> </tt>
+<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line">        <tt class="py-comment"># as namespace is not moved along with it</tt> </tt>
+<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt> </tt>
+<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{http://a.b.c}baz'</tt><tt class="py-op">,</tt> <tt class="py-name">two</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2349" 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-2341', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring-def"><a name="L2549"></a><tt class="py-lineno">2549</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-expanded"><a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">        <tt id="link-2342" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2342', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2343" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2349', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring-def"><a name="L2557"></a><tt class="py-lineno">2557</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring-expanded"><a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line">        <tt id="link-2350" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2350', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2351" class="py-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-2343', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2344" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2344', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">        <tt id="link-2345" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2345', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2346" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2351', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2352" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2352', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt id="link-2353" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2353', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2354" class="py-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-2346', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2347" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2354', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2347', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line">            <tt id="link-2348" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2348', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="http://a.b.c"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2349" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2349', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line"> </tt>
-<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2350" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2350', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2351" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2351', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">                            <tt id="link-2352" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2352', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2353" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2353', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring_default"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-def"><a name="L2559"></a><tt class="py-lineno">2559</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-expanded"><a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">        <tt id="link-2354" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2354', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2355', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">            <tt id="link-2356" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2356', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="http://a.b.c"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2357" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2357', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line"> </tt>
+<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2358', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2359" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2359', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">                            <tt id="link-2360" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2360', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2361" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2361', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring_default"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-def"><a name="L2567"></a><tt class="py-lineno">2567</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_default-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_default-expanded"><a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">        <tt id="link-2362" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2362', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2363" class="py-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-2355', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2356" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2356', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt id="link-2357" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2357', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2363', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2364" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2364', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line">        <tt id="link-2365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2365', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2366" class="py-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-2358', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2359" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2366', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2359', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">            <tt id="link-2360" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2360', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns="http://a.b.c"&gt;&lt;baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2361" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2361', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line"> </tt>
-<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2362" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2362', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2363" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2363', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">                            <tt id="link-2364" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2364', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2365" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2365', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring_root"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-def"><a name="L2569"></a><tt class="py-lineno">2569</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-expanded"><a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">        <tt id="link-2366" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2366', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2367', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">            <tt id="link-2368" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2368', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns="http://a.b.c"&gt;&lt;baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2369', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line"> </tt>
+<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2370', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2371" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2371', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">                            <tt id="link-2372" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2372', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2373" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2373', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring_root"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-def"><a name="L2577"></a><tt class="py-lineno">2577</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_root-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_root-expanded"><a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">        <tt id="link-2374" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2374', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2375" class="py-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-2367', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2368" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2368', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">        <tt id="link-2369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2369', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2375', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2376', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">        <tt id="link-2377" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2377', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2378" class="py-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-2370', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2371" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2378', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2379" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2371', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">            <tt id="link-2372" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2372', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns:ns="http://a.b.c"&gt;&lt;bar&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2373', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line"> </tt>
-<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2374" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2374', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2375" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2375', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">                            <tt id="link-2376" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2376', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line"> </tt>
-<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2377" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2377', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_ns_decl_tostring_element"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-def"><a name="L2580"></a><tt class="py-lineno">2580</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-expanded"><a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line">        <tt id="link-2378" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2379', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line">            <tt id="link-2380" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2380', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns:ns="http://a.b.c"&gt;&lt;bar&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2381" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2381', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line"> </tt>
+<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2382" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2382', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2383" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2383', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">                            <tt id="link-2384" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2384', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line"> </tt>
+<a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2385" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2385', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_ns_decl_tostring_element"></a><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-def"><a name="L2588"></a><tt class="py-lineno">2588</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_ns_decl_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_ns_decl_tostring_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_ns_decl_tostring_element-expanded"><a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt id="link-2386" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2378', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2379" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2386', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2387" class="py-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-2379', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2387', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2388" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2380', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line">        <tt id="link-2381" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2381', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2382" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2388', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">        <tt id="link-2389" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2389', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2390" class="py-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-2382', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2383" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2383', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line"> </tt>
-<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">        <tt id="link-2384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2384', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2385" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2390', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2391', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line"> </tt>
+<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">        <tt id="link-2392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2392', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2393" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2385', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"foo"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line">        <tt class="py-name">bar</tt> <tt class="py-op">=</tt> <tt id="link-2386" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2386', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2387" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2387', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}bar"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2388" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2388', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">bar</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}baz"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line"> </tt>
-<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2389', 'findall', 'link-962');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2390" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2390', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">                            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2393', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"foo"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line">        <tt class="py-name">bar</tt> <tt class="py-op">=</tt> <tt id="link-2394" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2394', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2395" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2395', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}bar"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt id="link-2396" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2396', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">bar</tt><tt class="py-op">,</tt> <tt class="py-string">"{http://a.b.c}baz"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line"> </tt>
+<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line">        <tt class="py-name">nsdecl</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2397" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2397', 'findall', 'link-970');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2398" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2398', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"xmlns(?::[a-z0-9]+)?=[\"']([^\"']+)[\"']"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line">                            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2399" class="py-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-2391', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2392" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2392', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line"> </tt>
-<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2393" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2393', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_xmlns_move"></a><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-def"><a name="L2593"></a><tt class="py-lineno">2593</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_xmlns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_xmlns_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-expanded"><a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">        <tt id="link-2394" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2399', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2400" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2400', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line"> </tt>
+<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-2401" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2401', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"http://a.b.c"</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">nsdecl</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_xmlns_move"></a><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-def"><a name="L2601"></a><tt class="py-lineno">2601</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_xmlns_move-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_xmlns_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_xmlns_move-expanded"><a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">        <tt id="link-2402" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2394', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2395" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2402', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2403" class="py-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-2395', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2396" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2403', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2396', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line"> </tt>
-<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line">        <tt id="link-2397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2397', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2398" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2404', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line"> </tt>
+<a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line">        <tt id="link-2405" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2405', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2406" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2398', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'element'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line"> </tt>
-<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line">        <tt class="py-name">subelement</tt> <tt class="py-op">=</tt> <tt id="link-2399" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2406', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'element'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line"> </tt>
+<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">        <tt class="py-name">subelement</tt> <tt class="py-op">=</tt> <tt id="link-2407" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2399', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'subelement'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">                             <tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2400" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2407', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'subelement'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line">                             <tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2408" 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-2400', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">            <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line">            <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2401" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2408', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line">            <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">            <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2409" 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-2401', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line"> </tt>
-<a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">        <tt id="link-2402" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2402', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-2403" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2403', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">)</tt> </tt>
-<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2409', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line"> </tt>
+<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line">        <tt id="link-2410" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2410', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2411', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">)</tt> </tt>
+<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2412" 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-2404', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt> <tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2412', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt> <tt class="py-op">:</tt> <tt class="py-string">"foo"</tt><tt class="py-op">}</tt><tt class="py-op">.</tt><tt id="link-2413" 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-2405', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2413', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2414" 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-2406', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2407" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2414', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-2415" 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-2407', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">            <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">            <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2415', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line">            <tt class="py-string">"foo"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2620"></a><tt class="py-lineno">2620</tt>  <tt class="py-line">            <tt class="py-name">subelement</tt><tt class="py-op">.</tt><tt id="link-2416" 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-2408', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_namespaces_after_serialize"></a><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-def"><a name="L2614"></a><tt class="py-lineno">2614</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_namespaces_after_serialize-toggle" onclick="return toggle('_ETreeTestCaseBase.test_namespaces_after_serialize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-expanded"><a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt id="link-2409" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2416', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/XML/1998/namespace}id"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_namespaces_after_serialize"></a><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-def"><a name="L2622"></a><tt class="py-lineno">2622</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_namespaces_after_serialize-toggle" onclick="return toggle('_ETreeTestCaseBase.test_namespaces_after_serialize');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_namespaces_after_serialize-expanded"><a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line">        <tt id="link-2417" 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-2409', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2410" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2417', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2418" class="py-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-2410', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2418', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2419" 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-2411', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">        <tt id="link-2412" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2412', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2413" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2419', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">        <tt id="link-2420" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2420', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2421" class="py-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-2413', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2414" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2414', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line"> </tt>
-<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt id="link-2415" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2421', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2422', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line"> </tt>
+<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt id="link-2423" 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-2415', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2620"></a><tt class="py-lineno">2620</tt>  <tt class="py-line">            <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">.</tt><tt id="link-2416" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2416', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line"> </tt>
-<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line">        <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt id="link-2417" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2423', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line">            <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">.</tt><tt id="link-2424" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2424', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line"> </tt>
+<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt id="link-2425" 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-2417', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt> <tt id="link-2418" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2418', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2419" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2419', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt id="link-2420" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2425', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt> <tt id="link-2426" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2426', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2427" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2427', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">parsed</tt><tt class="py-op">.</tt><tt id="link-2428" 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-2420', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-def"><a name="L2626"></a><tt class="py-lineno">2626</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-expanded"><a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line">        <tt id="link-2421" class="py-name"><a title="lxml.etree.fromstring
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2428', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-def"><a name="L2634"></a><tt class="py-lineno">2634</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip-expanded"><a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line">        <tt id="link-2429" 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-2421', 'fromstring', 'link-787');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2429', 'fromstring', 'link-795');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2430" class="py-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-2422', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2423" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2430', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2431" 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-2423', 'fromstring', 'link-787');">fromstring</a></tt> </tt>
-<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line">        <tt id="link-2424" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2424', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2425" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2431', 'fromstring', 'link-795');">fromstring</a></tt> </tt>
+<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line">        <tt id="link-2432" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2432', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2433" class="py-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-2425', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2426" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2426', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line"> </tt>
-<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt id="link-2427" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2427', 'xml', 'link-2427');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2428" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2428', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="%s" xmlns:x="%s"&gt;&lt;el x:a="test" /&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line">                <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line">        <tt id="link-2429" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2429', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2430" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2433', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2434" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2434', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line"> </tt>
+<a name="L2638"></a><tt class="py-lineno">2638</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">        <tt id="link-2435" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2435', 'xml', 'link-2435');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2436" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2436', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="%s" xmlns:x="%s"&gt;&lt;el x:a="test" /&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line">                <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line">        <tt id="link-2437" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2437', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2438" 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-2430', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2431" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2431', 'xml', 'link-2427');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2432" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2432', 'root', 'link-42');">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-2433" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2438', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2439" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2439', 'xml', 'link-2435');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2440" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2440', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2441" 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-2433', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line"> </tt>
-<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line">        <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2434" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2434', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2435', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2436" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2436', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2638"></a><tt class="py-lineno">2638</tt>  <tt class="py-line"> </tt>
-<a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2437" class="py-name"><a title="lxml.etree.fromstring
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2441', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line"> </tt>
+<a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line">        <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2442" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2442', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2443" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2443', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2645"></a><tt class="py-lineno">2645</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2444" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2444', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-line"> </tt>
+<a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2445" 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-2437', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2438" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2445', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2446" 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-2438', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-def"><a name="L2642"></a><tt class="py-lineno">2642</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-expanded"><a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line">        <tt id="link-2439" class="py-name"><a title="lxml.etree.fromstring
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2446', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced"></a><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-def"><a name="L2650"></a><tt class="py-lineno">2650</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-toggle" onclick="return toggle('_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_attribute_namespace_roundtrip_replaced-expanded"><a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line">        <tt id="link-2447" 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-2439', 'fromstring', 'link-787');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2440" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2447', 'fromstring', 'link-795');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2448" class="py-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-2440', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2441" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2448', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2449" 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-2441', 'fromstring', 'link-787');">fromstring</a></tt> </tt>
-<a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line">        <tt id="link-2442" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2442', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2443" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2449', 'fromstring', 'link-795');">fromstring</a></tt> </tt>
+<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line">        <tt id="link-2450" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2450', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2451" class="py-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-2443', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2444" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2444', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2645"></a><tt class="py-lineno">2645</tt>  <tt class="py-line"> </tt>
-<a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line">        <tt id="link-2445" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2445', 'xml', 'link-2427');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2446" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2446', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="%s" xmlns:x="%s"&gt;&lt;el x:a="test" /&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">                <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line">        <tt id="link-2447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2447', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2448" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2451', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2452" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2452', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line"> </tt>
+<a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2655"></a><tt class="py-lineno">2655</tt>  <tt class="py-line">        <tt id="link-2453" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2453', 'xml', 'link-2435');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2454', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="%s" xmlns:x="%s"&gt;&lt;el x:a="test" /&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L2656"></a><tt class="py-lineno">2656</tt>  <tt class="py-line">                <tt class="py-name">ns_href</tt><tt class="py-op">,</tt><tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">        <tt id="link-2455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2455', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2456" 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-2448', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2449" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2449', 'xml', 'link-2427');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2450" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2450', 'root', 'link-42');">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-2451" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2456', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2457" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2457', 'xml', 'link-2435');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2458', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2459" 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-2451', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line"> </tt>
-<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line">        <tt id="link-2452" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2452', 'root', 'link-42');">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-2453" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2453', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line"> </tt>
-<a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line">        <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2454" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2454', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2455" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2455', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2655"></a><tt class="py-lineno">2655</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2456" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2456', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2656"></a><tt class="py-lineno">2656</tt>  <tt class="py-line"> </tt>
-<a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2457" class="py-name"><a title="lxml.etree.fromstring
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2459', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line"> </tt>
+<a name="L2660"></a><tt class="py-lineno">2660</tt>  <tt class="py-line">        <tt id="link-2460" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2460', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2461', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-string">'TEST'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line"> </tt>
+<a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line">        <tt class="py-name">xml2</tt> <tt class="py-op">=</tt> <tt id="link-2462" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2462', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2463', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2464" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2464', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">':a='</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xml2</tt><tt class="py-op">,</tt> <tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line"> </tt>
+<a name="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2465" 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-2457', 'fromstring', 'link-787');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2458" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2465', 'fromstring', 'link-795');">fromstring</a></tt><tt class="py-op">(</tt><tt class="py-name">xml2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2466" 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-2458', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line"> </tt>
-<a name="L2660"></a><tt class="py-lineno">2660</tt>  <tt class="py-line">    <tt id="link-2459" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2459', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_register_namespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_register_namespace"></a><div id="_ETreeTestCaseBase.test_register_namespace-def"><a name="L2661"></a><tt class="py-lineno">2661</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_register_namespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_register_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_register_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_register_namespace-expanded"><a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line">        <tt class="py-comment"># ET 1.3+</tt> </tt>
-<a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line">        <tt id="link-2460" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2466', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}a'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line"> </tt>
+<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line">    <tt id="link-2467" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2467', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_register_namespace'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_register_namespace"></a><div id="_ETreeTestCaseBase.test_register_namespace-def"><a name="L2669"></a><tt class="py-lineno">2669</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_register_namespace-toggle" onclick="return toggle('_ETreeTestCaseBase.test_register_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_register_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_register_namespace-expanded"><a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line">        <tt class="py-comment"># ET 1.3+</tt> </tt>
+<a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line">        <tt id="link-2468" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2460', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2468', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2469" class="py-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-2461', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2462" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2469', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2470" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2462', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line">        <tt id="link-2463" 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-2463', 'prefix', 'link-2463');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TESTPREFIX'</tt> </tt>
-<a name="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line">        <tt id="link-2464" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2464', 'namespace', 'link-2464');">namespace</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://seriously.unknown/namespace/URI'</tt> </tt>
-<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line"> </tt>
-<a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2465" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2470', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">        <tt id="link-2471" 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-2471', 'prefix', 'link-2471');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TESTPREFIX'</tt> </tt>
+<a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line">        <tt id="link-2472" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2472', 'namespace', 'link-2472');">namespace</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://seriously.unknown/namespace/URI'</tt> </tt>
+<a name="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line"> </tt>
+<a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2473" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2465', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2466" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2466', 'namespace', 'link-2464');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2467" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2467', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:test xmlns:ns0="%s"&gt;&lt;/ns0:test&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-2468" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2468', 'namespace', 'link-2464');">namespace</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2469" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2469', '_writeElement', 'link-781');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line"> </tt>
-<a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2470" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2473', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2474" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2474', 'namespace', 'link-2472');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2475" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2475', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:test xmlns:ns0="%s"&gt;&lt;/ns0:test&gt;'</tt> <tt class="py-op">%</tt> <tt id="link-2476" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2476', 'namespace', 'link-2472');">namespace</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2477', '_writeElement', 'link-789');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line"> </tt>
+<a name="L2679"></a><tt class="py-lineno">2679</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2478" class="py-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-2470', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2471" class="py-name" targets="Method lxml.etree.XPathElementEvaluator.register_namespace()=lxml.etree.XPathElementEvaluator-class.html#register_namespace,Function lxml.etree.register_namespace()=lxml.etree-module.html#register_namespace"><a title="lxml.etree.XPathElementEvaluator.register_namespace
-lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2471', 'register_namespace', 'link-2471');">register_namespace</a></tt><tt class="py-op">(</tt><tt id="link-2472" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2472', 'prefix', 'link-2463');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2473" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2473', 'namespace', 'link-2464');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2474" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2478', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2479" class="py-name" targets="Method lxml.etree.XPathElementEvaluator.register_namespace()=lxml.etree.XPathElementEvaluator-class.html#register_namespace,Function lxml.etree.register_namespace()=lxml.etree-module.html#register_namespace"><a title="lxml.etree.XPathElementEvaluator.register_namespace
+lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2479', 'register_namespace', 'link-2479');">register_namespace</a></tt><tt class="py-op">(</tt><tt id="link-2480" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2480', 'prefix', 'link-2471');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2481" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2481', 'namespace', 'link-2472');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2482" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2474', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2475" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2475', 'namespace', 'link-2464');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2476" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2476', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;%s:test xmlns:%s="%s"&gt;&lt;/%s:test&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line">            <tt id="link-2477" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2477', 'prefix', 'link-2463');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2478" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2478', 'prefix', 'link-2463');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2479" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2479', 'namespace', 'link-2464');">namespace</a></tt><tt class="py-op">,</tt> <tt id="link-2480" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2480', 'prefix', 'link-2463');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2481" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2481', '_writeElement', 'link-781');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line"> </tt>
-<a name="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2482" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2482', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}test'</tt> <tt class="py-op">%</tt> <tt id="link-2483" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2483', 'namespace', 'link-2472');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2484" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2484', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;%s:test xmlns:%s="%s"&gt;&lt;/%s:test&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line">            <tt id="link-2485" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2485', 'prefix', 'link-2471');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2486" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2486', 'prefix', 'link-2471');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-2487" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2487', 'namespace', 'link-2472');">namespace</a></tt><tt class="py-op">,</tt> <tt id="link-2488" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2488', 'prefix', 'link-2471');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2489', '_writeElement', 'link-789');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line"> </tt>
+<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2490" class="py-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-2482', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2483" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
-lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2483', 'register_namespace', 'link-2471');">register_namespace</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ns25'</tt><tt class="py-op">,</tt> <tt id="link-2484" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2484', 'namespace', 'link-2464');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tostring"></a><div id="_ETreeTestCaseBase.test_tostring-def"><a name="L2679"></a><tt class="py-lineno">2679</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring-expanded"><a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">        <tt id="link-2485" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2485', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2486" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2490', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2491" class="py-name"><a title="lxml.etree.XPathElementEvaluator.register_namespace
+lxml.etree.register_namespace" class="py-name" href="#" onclick="return doclink('link-2491', 'register_namespace', 'link-2479');">register_namespace</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ns25'</tt><tt class="py-op">,</tt> <tt id="link-2492" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-2492', 'namespace', 'link-2472');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tostring"></a><div id="_ETreeTestCaseBase.test_tostring-def"><a name="L2687"></a><tt class="py-lineno">2687</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring-expanded"><a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line">        <tt id="link-2493" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2493', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2494" class="py-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-2486', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2487', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">        <tt id="link-2488" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2494', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2495" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2495', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">        <tt id="link-2496" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2488', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2496', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2497" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2489', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2490" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2497', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2498" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2490', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line">        <tt id="link-2491" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2491', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2492" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2498', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line">        <tt id="link-2499" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2499', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2500" class="py-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-2492', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2493" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2493', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">         </tt>
-<a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2494" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2500', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2501" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2501', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line">         </tt>
+<a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2502" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2494', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2495" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2495', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2496" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2496', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line">         </tt>
-<a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2497" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2497', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">                          <tt id="link-2498" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2498', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2499" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2499', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_tostring_element"></a><div id="_ETreeTestCaseBase.test_tostring_element-def"><a name="L2691"></a><tt class="py-lineno">2691</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element-expanded"><a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line">        <tt id="link-2500" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2500', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2501" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2502', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2503" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2503', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2504" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2504', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">         </tt>
+<a name="L2696"></a><tt class="py-lineno">2696</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2505" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2505', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line">                          <tt id="link-2506" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2506', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2507" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2507', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_tostring_element"></a><div id="_ETreeTestCaseBase.test_tostring_element-def"><a name="L2699"></a><tt class="py-lineno">2699</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element-expanded"><a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line">        <tt id="link-2508" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2508', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2509" class="py-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-2501', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2502', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">        <tt id="link-2503" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2509', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2510" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2510', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2701"></a><tt class="py-lineno">2701</tt>  <tt class="py-line">        <tt id="link-2511" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2503', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2504" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2511', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2512" class="py-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-2504', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2512', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2513" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2505', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">        <tt id="link-2506" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2506', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2507" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2513', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">        <tt id="link-2514" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2514', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2515" class="py-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-2507', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2508" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2508', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">         </tt>
-<a name="L2696"></a><tt class="py-lineno">2696</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2509" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2515', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2516" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2516', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">         </tt>
+<a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2517" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2509', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2510" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2510', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2511" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2511', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2512" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2512', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2513" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2513', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2701"></a><tt class="py-lineno">2701</tt>  <tt class="py-line">                          <tt id="link-2514" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2514', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2515" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2515', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2516" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2516', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">                          <tt id="link-2517" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2517', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2518" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2518', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_tostring_element_tail"></a><div id="_ETreeTestCaseBase.test_tostring_element_tail-def"><a name="L2705"></a><tt class="py-lineno">2705</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element_tail-expanded"><a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line">        <tt id="link-2519" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2519', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2520" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2517', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2705"></a><tt class="py-lineno">2705</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2518" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2518', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2519" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2519', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2520" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2520', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2521" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2521', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line">                          <tt id="link-2522" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2522', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2523" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2523', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2524" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2524', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">                          <tt id="link-2525" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-2525', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-2526" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2526', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_tostring_element_tail"></a><div id="_ETreeTestCaseBase.test_tostring_element_tail-def"><a name="L2713"></a><tt class="py-lineno">2713</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_element_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_element_tail-expanded"><a name="L2714"></a><tt class="py-lineno">2714</tt>  <tt class="py-line">        <tt id="link-2527" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2527', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2520', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2521" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2521', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line">        <tt id="link-2522" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2528', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2529" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2529', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line">        <tt id="link-2530" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2522', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2523" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2530', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2531" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2523', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2524" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2531', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2524', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line">        <tt id="link-2525" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2525', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2526" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2532', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt id="link-2533" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2533', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2534" class="py-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-2526', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2527" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2527', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line">         </tt>
-<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2528" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2534', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2535" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2535', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line">         </tt>
+<a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2536" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2528', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2529" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2529', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2530" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2530', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2713"></a><tt class="py-lineno">2713</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2531" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2531', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2714"></a><tt class="py-lineno">2714</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2532', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line"> </tt>
-<a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2533" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2533', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2534" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2534', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b/&gt;Foo'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line">                     <tt id="link-2535" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2535', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2536" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2536', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line"> </tt>
-<a name="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">    <tt id="link-2537" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2537', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_tostring_method_html"></a><div id="_ETreeTestCaseBase.test_tostring_method_html-def"><a name="L2720"></a><tt class="py-lineno">2720</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_html-expanded"><a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line">        <tt id="link-2538" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2538', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2536', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2537" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2537', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2538" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2538', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2539" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2539', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2722"></a><tt class="py-lineno">2722</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2540" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2540', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line"> </tt>
+<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2541" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2541', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2542', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b/&gt;Foo'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">                     <tt id="link-2543" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2543', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt id="link-2544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2544', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line"> </tt>
+<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">    <tt id="link-2545" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2545', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_html'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_tostring_method_html"></a><div id="_ETreeTestCaseBase.test_tostring_method_html-def"><a name="L2728"></a><tt class="py-lineno">2728</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_html-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_method_html-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_html-expanded"><a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">        <tt id="link-2546" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2546', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2547" class="py-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-2539', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2540" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2540', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2722"></a><tt class="py-lineno">2722</tt>  <tt class="py-line">        <tt id="link-2541" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2547', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2548" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2548', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line">        <tt id="link-2549" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2541', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2542" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2549', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2550" class="py-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-2542', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2543" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2550', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2551" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2543', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">        <tt id="link-2544" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2544', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2545" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2551', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2731"></a><tt class="py-lineno">2731</tt>  <tt class="py-line">        <tt id="link-2552" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2552', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2553" class="py-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-2545', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2546" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2546', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">         </tt>
-<a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">        <tt id="link-2547" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2553', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2554" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2554', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">         </tt>
+<a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line">        <tt id="link-2555" 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-2547', 'html', 'link-1049');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-2548" class="py-name"><a title="lxml.etree.Element
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2555', 'html', 'link-1057');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-2556" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2548', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line">        <tt id="link-2549" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2549', 'body', 'link-1051');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-2550" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2550', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2551" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2556', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">        <tt id="link-2557" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2557', 'body', 'link-1059');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-2558" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2558', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2559" 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-2551', 'html', 'link-1049');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-2552" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2552', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2553" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2553', 'body', 'link-1051');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line">        <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-2554" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2559', 'html', 'link-1057');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2735"></a><tt class="py-lineno">2735</tt>  <tt class="py-line">        <tt class="py-name">p</tt> <tt class="py-op">=</tt> <tt id="link-2560" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2560', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-2561" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-2561', 'body', 'link-1059');">body</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line">        <tt class="py-name">p</tt><tt class="py-op">.</tt><tt id="link-2562" 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-2554', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
-<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">        <tt id="link-2555" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2555', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2556" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2556', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
-<a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line"> </tt>
-<a name="L2731"></a><tt class="py-lineno">2731</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2557" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2557', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;p&gt;html&lt;br&gt;test&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">                          <tt id="link-2558" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2558', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2559" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2562', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"html"</tt> </tt>
+<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt id="link-2563" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2563', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">p</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2564" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2564', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"test"</tt> </tt>
+<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line"> </tt>
+<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2565" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2565', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;p&gt;html&lt;br&gt;test&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line">                          <tt id="link-2566" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2566', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2567" 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-2559', 'html', 'link-1049');">html</a></tt><tt class="py-op">,</tt> <tt id="link-2560" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2560', 'method', 'link-1062');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line"> </tt>
-<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">    <tt id="link-2561" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2561', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_tostring_method_text"></a><div id="_ETreeTestCaseBase.test_tostring_method_text-def"><a name="L2735"></a><tt class="py-lineno">2735</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_tostring_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_text-expanded"><a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line">        <tt id="link-2562" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2562', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.etree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-2567', 'html', 'link-1057');">html</a></tt><tt class="py-op">,</tt> <tt id="link-2568" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2568', 'method', 'link-1070');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2741"></a><tt class="py-lineno">2741</tt>  <tt class="py-line"> </tt>
+<a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">    <tt id="link-2569" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2569', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_tostring_method_text'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_tostring_method_text"></a><div id="_ETreeTestCaseBase.test_tostring_method_text-def"><a name="L2743"></a><tt class="py-lineno">2743</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_tostring_method_text-toggle" onclick="return toggle('_ETreeTestCaseBase.test_tostring_method_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_tostring_method_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_tostring_method_text-expanded"><a name="L2744"></a><tt class="py-lineno">2744</tt>  <tt class="py-line">        <tt id="link-2570" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2570', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2571" class="py-name"><a title="lxml.etree
 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-2563', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2564" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2564', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt id="link-2565" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2571', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2572" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2572', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">        <tt id="link-2573" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2565', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2566" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2573', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2574" class="py-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-2566', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2567" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2574', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2575" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2567', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">        <tt id="link-2568" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2568', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2569" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2575', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line">        <tt id="link-2576" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2576', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2577" class="py-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-2569', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2570" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2570', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">         </tt>
-<a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2571" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2577', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2578" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2578', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line">         </tt>
+<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2579" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2571', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2741"></a><tt class="py-lineno">2741</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2572" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2579', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2580" 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-2572', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2573" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2573', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2574" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2574', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2744"></a><tt class="py-lineno">2744</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2575" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2580', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2581" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2581', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L2751"></a><tt class="py-lineno">2751</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2582" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2582', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2583" 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-2575', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2576" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2576', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2577" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2577', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2578" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2583', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2584" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2584', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2585" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2585', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2586" 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-2578', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">         </tt>
-<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2579" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2579', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line">                          <tt id="link-2580" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2580', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2581" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2581', 'method', 'link-1062');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2751"></a><tt class="py-lineno">2751</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse"></a><div id="_ETreeTestCaseBase.test_iterparse-def"><a name="L2752"></a><tt class="py-lineno">2752</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse-expanded"><a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line">        <tt id="link-2582" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2582', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2583" class="py-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-2583', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2584" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2584', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line"> </tt>
-<a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2585" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2585', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">                          <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2586" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2586', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">        <tt id="link-2587" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2587', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2588" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2588', 'root', 'link-42');">root</a></tt> </tt>
-<a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2762"></a><tt class="py-lineno">2762</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2589" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2589', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2590" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2590', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2591" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2591', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_file"></a><div id="_ETreeTestCaseBase.test_iterparse_file-def"><a name="L2765"></a><tt class="py-lineno">2765</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_file-expanded"><a name="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line">        <tt id="link-2592" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2592', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2593" class="py-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-2593', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2594" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2594', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2595" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2595', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2596" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2596', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test.xml"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">                          <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2597', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2771"></a><tt class="py-lineno">2771</tt>  <tt class="py-line">        <tt id="link-2598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2598', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2599" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2599', 'root', 'link-42');">root</a></tt> </tt>
-<a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2773"></a><tt class="py-lineno">2773</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2600" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2600', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2601" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2601', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_start"></a><div id="_ETreeTestCaseBase.test_iterparse_start-def"><a name="L2776"></a><tt class="py-lineno">2776</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start-expanded"><a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">        <tt id="link-2602" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2602', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2603" class="py-name"><a title="lxml.etree
-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-2603', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2604" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2604', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2778"></a><tt class="py-lineno">2778</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line"> </tt>
-<a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2605" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2605', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">        <tt id="link-2606" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2606', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2607" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2607', 'root', 'link-42');">root</a></tt> </tt>
-<a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2784"></a><tt class="py-lineno">2784</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2608" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2608', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2609" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2609', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2610" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2610', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_start_end"></a><div id="_ETreeTestCaseBase.test_iterparse_start_end-def"><a name="L2787"></a><tt class="py-lineno">2787</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start_end-expanded"><a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">        <tt id="link-2611" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2611', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2612" class="py-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-2612', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2613" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2613', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line"> </tt>
-<a name="L2791"></a><tt class="py-lineno">2791</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2614" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2614', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2792"></a><tt class="py-lineno">2792</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">        <tt id="link-2615" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2615', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2616" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2616', 'root', 'link-42');">root</a></tt> </tt>
-<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2617" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2617', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2618" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2618', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2619', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2620" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2620', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2621" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2621', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2622" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2622', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_clear"></a><div id="_ETreeTestCaseBase.test_iterparse_clear-def"><a name="L2799"></a><tt class="py-lineno">2799</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_clear-expanded"><a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt id="link-2623" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2623', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2624" class="py-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-2624', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2625" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2625', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2802"></a><tt class="py-lineno">2802</tt>  <tt class="py-line"> </tt>
-<a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2626" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2626', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2627" class="py-name"><a title="lxml.etree._Attrib.clear
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2586', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line">         </tt>
+<a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2587" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2587', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABTAILCtail'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">                          <tt id="link-2588" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2588', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2589" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-2589', 'method', 'link-1070');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse"></a><div id="_ETreeTestCaseBase.test_iterparse-def"><a name="L2760"></a><tt class="py-lineno">2760</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse-expanded"><a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line">        <tt id="link-2590" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2590', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2591" class="py-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-2591', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2592" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2592', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2762"></a><tt class="py-lineno">2762</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line"> </tt>
+<a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2593" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2593', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2765"></a><tt class="py-lineno">2765</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line">                          <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2594" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2594', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt id="link-2595" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2595', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2596" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2596', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2597', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2598', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2599" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2599', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2771"></a><tt class="py-lineno">2771</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_file"></a><div id="_ETreeTestCaseBase.test_iterparse_file-def"><a name="L2773"></a><tt class="py-lineno">2773</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_file-expanded"><a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">        <tt id="link-2600" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2600', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2601" class="py-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-2601', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2602" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2602', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2603" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2603', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2604" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2604', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test.xml"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">                          <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2605" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2605', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2778"></a><tt class="py-lineno">2778</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">        <tt id="link-2606" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2606', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2607" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2607', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2608" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2608', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2609" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2609', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_start"></a><div id="_ETreeTestCaseBase.test_iterparse_start-def"><a name="L2784"></a><tt class="py-lineno">2784</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start-expanded"><a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">        <tt id="link-2610" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2610', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2611" class="py-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-2611', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2612" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2612', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line"> </tt>
+<a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2613" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2613', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line">        <tt id="link-2614" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2614', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2615" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2615', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2791"></a><tt class="py-lineno">2791</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2792"></a><tt class="py-lineno">2792</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2616" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2616', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2617" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2617', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2618" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2618', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_start_end"></a><div id="_ETreeTestCaseBase.test_iterparse_start_end-def"><a name="L2795"></a><tt class="py-lineno">2795</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_start_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_start_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_start_end-expanded"><a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">        <tt id="link-2619" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2619', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2620" class="py-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-2620', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2621" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2621', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line"> </tt>
+<a name="L2799"></a><tt class="py-lineno">2799</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2622" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2622', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line">        <tt id="link-2623" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2623', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2624', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2802"></a><tt class="py-lineno">2802</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2625" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2625', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2626" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2626', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2627" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2627', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-2628" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2628', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2629', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-2630" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2630', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_clear"></a><div id="_ETreeTestCaseBase.test_iterparse_clear-def"><a name="L2807"></a><tt class="py-lineno">2807</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_clear-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_clear-expanded"><a name="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line">        <tt id="link-2631" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2631', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2632" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2632', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2633', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2809"></a><tt class="py-lineno">2809</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line"> </tt>
+<a name="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2634" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2634', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2635" 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-2627', 'clear', 'link-400');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line"> </tt>
-<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">        <tt id="link-2628" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2628', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2629', 'root', 'link-42');">root</a></tt> </tt>
-<a name="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> </tt>
-<a name="L2809"></a><tt class="py-lineno">2809</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2630" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2630', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_large"></a><div id="_ETreeTestCaseBase.test_iterparse_large-def"><a name="L2811"></a><tt class="py-lineno">2811</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_large-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_large');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_large-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_large-expanded"><a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line">        <tt id="link-2631" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2631', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2632" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2632', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2633', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">        <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">=</tt> <tt class="py-number">12345</tt> </tt>
-<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;%s&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;test&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-name">CHILD_COUNT</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line"> </tt>
-<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">        <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-2634" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2634', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2818"></a><tt class="py-lineno">2818</tt>  <tt class="py-line">            <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-<a name="L2819"></a><tt class="py-lineno">2819</tt>  <tt class="py-line">            <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_attrib_ns"></a><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-def"><a name="L2822"></a><tt class="py-lineno">2822</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_attrib_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_attrib_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-expanded"><a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line">        <tt id="link-2635" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2635', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2636" class="py-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-2636', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2637', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2824"></a><tt class="py-lineno">2824</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://ns1/"&gt;&lt;b&gt;&lt;c xmlns="http://ns2/"/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line"> </tt>
-<a name="L2826"></a><tt class="py-lineno">2826</tt>  <tt class="py-line">        <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{http://testns/}bla'</tt> </tt>
-<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2638" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2638', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L2830"></a><tt class="py-lineno">2830</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-2639" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2639', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
-<a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
-<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2640" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-2635', 'clear', 'link-408');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line"> </tt>
+<a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line">        <tt id="link-2636" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2636', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2637', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> </tt>
+<a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2638', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2818"></a><tt class="py-lineno">2818</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_large"></a><div id="_ETreeTestCaseBase.test_iterparse_large-def"><a name="L2819"></a><tt class="py-lineno">2819</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_large-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_large');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_large-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_large-expanded"><a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line">        <tt id="link-2639" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2639', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2640" class="py-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-2640', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2641" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2641', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line">        <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">=</tt> <tt class="py-number">12345</tt> </tt>
+<a name="L2822"></a><tt class="py-lineno">2822</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;%s&lt;/a&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;test&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-name">CHILD_COUNT</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line"> </tt>
+<a name="L2824"></a><tt class="py-lineno">2824</tt>  <tt class="py-line">        <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-2642" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2642', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2826"></a><tt class="py-lineno">2826</tt>  <tt class="py-line">            <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">            <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">CHILD_COUNT</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_attrib_ns"></a><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-def"><a name="L2830"></a><tt class="py-lineno">2830</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_attrib_ns-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_attrib_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_attrib_ns-expanded"><a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">        <tt id="link-2643" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2643', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2644" class="py-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-2644', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2645" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2645', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://ns1/"&gt;&lt;b&gt;&lt;c xmlns="http://ns2/"/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line"> </tt>
+<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">        <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{http://testns/}bla'</tt> </tt>
+<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-2646" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2646', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-2647" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2647', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
+<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2648" 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-2640', 'tag', 'link-36');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'{http://ns1/}a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line">                    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2641" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2641', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line"> </tt>
-<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">             <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line"> </tt>
-<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">        <tt id="link-2642" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2642', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2643" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2643', 'root', 'link-42');">root</a></tt> </tt>
-<a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2842"></a><tt class="py-lineno">2842</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">            <tt id="link-2644" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2644', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-2645" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2648', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'{http://ns1/}a'</tt><tt class="py-op">:</tt> </tt>
+<a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line">                    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2649" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2649', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2842"></a><tt class="py-lineno">2842</tt>  <tt class="py-line"> </tt>
+<a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">             <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line"> </tt>
+<a name="L2848"></a><tt class="py-lineno">2848</tt>  <tt class="py-line">        <tt id="link-2650" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2650', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-2651" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2651', 'root', 'link-50');">root</a></tt> </tt>
+<a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2850"></a><tt class="py-lineno">2850</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line">            <tt id="link-2652" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2652', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2653" 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-2645', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">            <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">            <tt id="link-2646" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2646', 'root', 'link-42');">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-2647" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2653', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line">            <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line">            <tt id="link-2654" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2654', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2655" 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-2647', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_getiterator"></a><div id="_ETreeTestCaseBase.test_iterparse_getiterator-def"><a name="L2848"></a><tt class="py-lineno">2848</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-expanded"><a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">        <tt id="link-2648" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2648', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2649" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2655', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_getiterator"></a><div id="_ETreeTestCaseBase.test_iterparse_getiterator-def"><a name="L2856"></a><tt class="py-lineno">2856</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_getiterator-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_getiterator-expanded"><a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line">        <tt id="link-2656" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2656', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2657" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2649', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2650" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2650', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2850"></a><tt class="py-lineno">2850</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line"> </tt>
-<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-2651" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2651', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">.</tt><tt id="link-2652" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2652', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2653" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2653', 'getiterator', 'link-1772');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2856"></a><tt class="py-lineno">2856</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2858"></a><tt class="py-lineno">2858</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_move_elements"></a><div id="_ETreeTestCaseBase.test_iterparse_move_elements-def"><a name="L2859"></a><tt class="py-lineno">2859</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_move_elements-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_move_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-expanded"><a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line">        <tt id="link-2654" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2654', 'iterparse', 'link-2582');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2655" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2657', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2658" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2658', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2858"></a><tt class="py-lineno">2858</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2859"></a><tt class="py-lineno">2859</tt>  <tt class="py-line"> </tt>
+<a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line">        <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-2659" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2659', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2660', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-2661" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2661', 'getiterator', 'link-1780');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2866"></a><tt class="py-lineno">2866</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_move_elements"></a><div id="_ETreeTestCaseBase.test_iterparse_move_elements-def"><a name="L2867"></a><tt class="py-lineno">2867</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_move_elements-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_move_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_move_elements-expanded"><a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">        <tt id="link-2662" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2662', 'iterparse', 'link-2590');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2663" class="py-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-2655', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2656" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2656', 'iterparse', 'link-2582');">iterparse</a></tt> </tt>
-<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line"> </tt>
-<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt> <tt class="py-keyword">in</tt> <tt id="link-2657" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2663', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2664" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2664', 'iterparse', 'link-2590');">iterparse</a></tt> </tt>
+<a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line"> </tt>
+<a name="L2871"></a><tt class="py-lineno">2871</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">node</tt> <tt class="py-keyword">in</tt> <tt id="link-2665" class="py-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-2657', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2658" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2658', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">pass</tt> </tt>
-<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line"> </tt>
-<a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line">        <tt id="link-2659" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2659', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2660" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2665', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2666" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2666', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> <tt class="py-keyword">pass</tt> </tt>
+<a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line"> </tt>
+<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt id="link-2667" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2667', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2668" class="py-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-2660', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2661" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2668', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2669" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2661', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new_root'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2866"></a><tt class="py-lineno">2866</tt>  <tt class="py-line">        <tt id="link-2662" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2662', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line"> </tt>
-<a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2669', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'new_root'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">        <tt id="link-2670" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2670', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">node</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line"> </tt>
+<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2671" 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-2663', 'tag', 'link-36');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2664" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2664', 'root', 'link-42');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2871"></a><tt class="py-lineno">2871</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_iterparse_cdata"></a><div id="_ETreeTestCaseBase.test_iterparse_cdata-def"><a name="L2872"></a><tt class="py-lineno">2872</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_iterparse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_cdata-expanded"><a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt id="link-2665" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2665', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2666" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2671', 'tag', 'link-44');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2672" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2672', 'root', 'link-50');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_iterparse_cdata"></a><div id="_ETreeTestCaseBase.test_iterparse_cdata-def"><a name="L2880"></a><tt class="py-lineno">2880</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_iterparse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_iterparse_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_iterparse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_iterparse_cdata-expanded"><a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line">        <tt id="link-2673" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2673', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2674" class="py-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-2666', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2667', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">        <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2674', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2675', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2883"></a><tt class="py-lineno">2883</tt>  <tt class="py-line">        <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2676" class="py-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-2668', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2669" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2669', 'iterparse', 'link-2582');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2670" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2676', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2677', 'iterparse', 'link-2590');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2884"></a><tt class="py-lineno">2884</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2678" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2670', 'text', 'link-37');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt><tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">context</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line"> </tt>
-<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2671" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2671', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;test&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">                          <tt id="link-2672" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2672', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">.</tt><tt id="link-2673" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2673', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file"></a><div id="_ETreeTestCaseBase.test_parse_file-def"><a name="L2882"></a><tt class="py-lineno">2882</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file-expanded"><a name="L2883"></a><tt class="py-lineno">2883</tt>  <tt class="py-line">        <tt id="link-2674" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2678', 'text', 'link-45');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt><tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">context</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line"> </tt>
+<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2679" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2679', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;test&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">                          <tt id="link-2680" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2680', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">.</tt><tt id="link-2681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2681', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file"></a><div id="_ETreeTestCaseBase.test_parse_file-def"><a name="L2890"></a><tt class="py-lineno">2890</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file-expanded"><a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt id="link-2682" 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-2674', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2682', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2683" class="py-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-2675', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2676" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2683', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2684" 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-2676', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2884"></a><tt class="py-lineno">2884</tt>  <tt class="py-line">        <tt class="py-comment"># from file</tt> </tt>
-<a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2677" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2684', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line">        <tt class="py-comment"># from file</tt> </tt>
+<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2685" 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-2677', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2678" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2678', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2679" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2679', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">            <tt id="link-2680" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2680', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2681" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2681', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_nonexistent"></a><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-def"><a name="L2890"></a><tt class="py-lineno">2890</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_nonexistent-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_nonexistent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-expanded"><a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt id="link-2682" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2685', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2686" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2686', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2687', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">            <tt id="link-2688" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2688', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2689" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2689', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_nonexistent"></a><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-def"><a name="L2898"></a><tt class="py-lineno">2898</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_nonexistent-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_nonexistent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_nonexistent-expanded"><a name="L2899"></a><tt class="py-lineno">2899</tt>  <tt class="py-line">        <tt id="link-2690" 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-2682', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2683" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2690', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2691" class="py-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-2683', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2684" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2691', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2692" 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-2684', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt id="link-2685" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2692', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt id="link-2693" 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-2685', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">,</tt> <tt id="link-2686" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2686', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'notthere.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt>   </tt>
-</div><a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_error_none"></a><div id="_ETreeTestCaseBase.test_parse_error_none-def"><a name="L2894"></a><tt class="py-lineno">2894</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_error_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_none-expanded"><a name="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">        <tt id="link-2687" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2693', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">,</tt> <tt id="link-2694" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2694', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'notthere.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt>   </tt>
+</div><a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_error_none"></a><div id="_ETreeTestCaseBase.test_parse_error_none-def"><a name="L2902"></a><tt class="py-lineno">2902</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_none-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_error_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_none-expanded"><a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt id="link-2695" 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-2687', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2688" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2695', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2696" class="py-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-2688', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2689" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2696', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2697" 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-2689', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-2690" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2697', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-2698" 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-2690', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line"> </tt>
-<a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">    <tt id="link-2691" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2691', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_error"></a><div id="_ETreeTestCaseBase.test_parse_error-def"><a name="L2899"></a><tt class="py-lineno">2899</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error-expanded"><a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">        <tt class="py-comment"># ET &lt; 1.3 raises ExpatError</tt> </tt>
-<a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line">        <tt id="link-2692" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2698', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line"> </tt>
+<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line">    <tt id="link-2699" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2699', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_error"></a><div id="_ETreeTestCaseBase.test_parse_error-def"><a name="L2907"></a><tt class="py-lineno">2907</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error-expanded"><a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line">        <tt class="py-comment"># ET &lt; 1.3 raises ExpatError</tt> </tt>
+<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line">        <tt id="link-2700" 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-2692', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2693" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2700', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2701" class="py-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-2693', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2694" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2701', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2702" 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-2694', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2902"></a><tt class="py-lineno">2902</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2695" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2702', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2703" 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-2695', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2696" 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-2696', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line"> </tt>
-<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line">    <tt id="link-2697" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2697', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error_from_file'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_error_from_file"></a><div id="_ETreeTestCaseBase.test_parse_error_from_file-def"><a name="L2907"></a><tt class="py-lineno">2907</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_from_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_from_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_error_from_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_from_file-expanded"><a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line">        <tt id="link-2698" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2703', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2704" 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-2704', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line"> </tt>
+<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line">    <tt id="link-2705" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2705', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_error_from_file'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_error_from_file"></a><div id="_ETreeTestCaseBase.test_parse_error_from_file-def"><a name="L2915"></a><tt class="py-lineno">2915</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_error_from_file-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_error_from_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_error_from_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_error_from_file-expanded"><a name="L2916"></a><tt class="py-lineno">2916</tt>  <tt class="py-line">        <tt id="link-2706" 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-2698', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2699" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2706', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2707" class="py-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-2699', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2700" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2707', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2708" 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-2700', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line">        <tt class="py-comment"># from file</tt> </tt>
-<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2701" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2701', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2702" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2708', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">        <tt class="py-comment"># from file</tt> </tt>
+<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2709" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2709', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2710" 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-2702', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2703" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2703', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_object"></a><div id="_ETreeTestCaseBase.test_parse_file_object-def"><a name="L2914"></a><tt class="py-lineno">2914</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_object-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object-expanded"><a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line">        <tt id="link-2704" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2710', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2711', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2921"></a><tt class="py-lineno">2921</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_object"></a><div id="_ETreeTestCaseBase.test_parse_file_object-def"><a name="L2922"></a><tt class="py-lineno">2922</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_object-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object-expanded"><a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line">        <tt id="link-2712" 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-2704', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2705" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2712', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2713" class="py-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-2705', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2706" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2713', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2714" 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-2706', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2916"></a><tt class="py-lineno">2916</tt>  <tt class="py-line">        <tt class="py-comment"># from file object</tt> </tt>
-<a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2707" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2707', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2708" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2714', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2924"></a><tt class="py-lineno">2924</tt>  <tt class="py-line">        <tt class="py-comment"># from file object</tt> </tt>
+<a name="L2925"></a><tt class="py-lineno">2925</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2715" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2715', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2716" 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-2708', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2709" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2709', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2710" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2710', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2921"></a><tt class="py-lineno">2921</tt>  <tt class="py-line">            <tt id="link-2711" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2711', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2712" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2712', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_stringio"></a><div id="_ETreeTestCaseBase.test_parse_stringio-def"><a name="L2924"></a><tt class="py-lineno">2924</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_stringio');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_stringio-expanded"><a name="L2925"></a><tt class="py-lineno">2925</tt>  <tt class="py-line">        <tt id="link-2713" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2716', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2717" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2717', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2718" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2718', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">            <tt id="link-2719" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2719', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2720', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_stringio"></a><div id="_ETreeTestCaseBase.test_parse_stringio-def"><a name="L2932"></a><tt class="py-lineno">2932</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_stringio');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_stringio-expanded"><a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line">        <tt id="link-2721" 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-2713', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2714" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2721', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2722" class="py-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-2714', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2715" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2722', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2723" 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-2715', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2716" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2723', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2724" 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-2716', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2717" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2717', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2718" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2718', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">            <tt id="link-2719" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2719', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2720', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2932"></a><tt class="py-lineno">2932</tt>  <tt class="py-line">           <tt class="py-op">)</tt> </tt>
-</div><a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_cdata"></a><div id="_ETreeTestCaseBase.test_parse_cdata-def"><a name="L2934"></a><tt class="py-lineno">2934</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_cdata-expanded"><a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">        <tt id="link-2721" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2721', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2724', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2725" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2725', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2937"></a><tt class="py-lineno">2937</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2726" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2726', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line">            <tt id="link-2727" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2727', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2728" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2728', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">           <tt class="py-op">)</tt> </tt>
+</div><a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_cdata"></a><div id="_ETreeTestCaseBase.test_parse_cdata-def"><a name="L2942"></a><tt class="py-lineno">2942</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_cdata-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_cdata-expanded"><a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line">        <tt id="link-2729" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2729', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2730" class="py-name"><a title="lxml.etree
 lxml.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-2722', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2723', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line">        <tt id="link-2724" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2724', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2725" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2730', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2731" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2731', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">        <tt id="link-2732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2732', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2733" class="py-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-2725', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2726" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2733', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2734" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2726', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2727" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2727', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2937"></a><tt class="py-lineno">2937</tt>  <tt class="py-line"> </tt>
-<a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2728" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2728', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-2729" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2734', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2735" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2735', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line"> </tt>
+<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-2736" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2736', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-2737" 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-2729', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2730" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2730', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;test&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">                          <tt id="link-2731" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2731', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2732', 'root', 'link-42');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_with_encoding"></a><div id="_ETreeTestCaseBase.test_parse_with_encoding-def"><a name="L2942"></a><tt class="py-lineno">2942</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_with_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_with_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_with_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_with_encoding-expanded"><a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line">        <tt class="py-comment"># this can fail in libxml2 &lt;= 2.6.22</tt> </tt>
-<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">        <tt id="link-2733" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2737', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2738" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2738', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;test&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">                          <tt id="link-2739" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2739', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2740" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2740', 'root', 'link-50');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_with_encoding"></a><div id="_ETreeTestCaseBase.test_parse_with_encoding-def"><a name="L2950"></a><tt class="py-lineno">2950</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_with_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_with_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_with_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_with_encoding-expanded"><a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line">        <tt class="py-comment"># this can fail in libxml2 &lt;= 2.6.22</tt> </tt>
+<a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line">        <tt id="link-2741" 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-2733', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2734" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2741', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2742" class="py-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-2734', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2735" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2742', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2743" 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-2735', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2736" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2743', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2744" 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-2736', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;&lt;html/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2737" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2737', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-2738" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2738', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">                       <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2739" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2739', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding"></a><div id="_ETreeTestCaseBase.test_encoding-def"><a name="L2949"></a><tt class="py-lineno">2949</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding-expanded"><a name="L2950"></a><tt class="py-lineno">2950</tt>  <tt class="py-line">        <tt id="link-2740" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2744', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;&lt;html/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2745" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2745', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt><tt id="link-2746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2746', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line">                       <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2747" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2747', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding"></a><div id="_ETreeTestCaseBase.test_encoding-def"><a name="L2957"></a><tt class="py-lineno">2957</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding-expanded"><a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line">        <tt id="link-2748" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2740', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2741" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2748', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2749" class="py-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-2741', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2742" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2749', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2750" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2742', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line"> </tt>
-<a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2743" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2750', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line"> </tt>
+<a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2751" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2743', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2751', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2752" 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-2744', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2745" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2745', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2746" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2746', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line">            <tt id="link-2747" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2747', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_exact"></a><div id="_ETreeTestCaseBase.test_encoding_exact-def"><a name="L2958"></a><tt class="py-lineno">2958</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_exact-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_exact');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_exact-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_exact-expanded"><a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line">        <tt id="link-2748" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2752', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2753" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2753', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2754" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2754', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">            <tt id="link-2755" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2755', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2965"></a><tt class="py-lineno">2965</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_exact"></a><div id="_ETreeTestCaseBase.test_encoding_exact-def"><a name="L2966"></a><tt class="py-lineno">2966</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_exact-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_exact');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_exact-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_exact-expanded"><a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">        <tt id="link-2756" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2748', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2749" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2756', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2757" class="py-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-2749', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2750" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2757', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2750', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">        <tt id="link-2751" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2758', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line">        <tt id="link-2759" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2751', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2752" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2759', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2760" class="py-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-2752', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2753" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2760', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2761" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2753', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line"> </tt>
-<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2754" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2761', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line"> </tt>
+<a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2762" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2754', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2762', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2763" 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-2755', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2756" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2756', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">         </tt>
-<a name="L2965"></a><tt class="py-lineno">2965</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="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2757" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2757', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2758', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2759" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2759', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2760" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2760', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line">                          <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2761" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2761', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2762" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2762', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2763" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2763', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_encoding-def"><a name="L2971"></a><tt class="py-lineno">2971</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_encoding-expanded"><a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">        <tt id="link-2764" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2763', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2764" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2764', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">         </tt>
+<a name="L2973"></a><tt class="py-lineno">2973</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="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2765" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2765', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2766', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2767" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2767', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2768" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2768', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line">                          <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2769', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2770" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2770', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2771" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2771', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_encoding-def"><a name="L2979"></a><tt class="py-lineno">2979</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_encoding-expanded"><a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt id="link-2772" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2764', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2765" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2772', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2773" class="py-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-2765', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2773', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2774" 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-2766', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line">        <tt class="py-comment"># from file</tt> </tt>
-<a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2767" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2774', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">        <tt class="py-comment"># from file</tt> </tt>
+<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2775" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2767', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2768" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2768', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2769', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line">            <tt id="link-2770" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2770', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2771" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2771', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parse_file_object_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-def"><a name="L2979"></a><tt class="py-lineno">2979</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-expanded"><a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt id="link-2772" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2775', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2776" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2776', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2777" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2777', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line">            <tt id="link-2778" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2778', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2779" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2779', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parse_file_object_encoding"></a><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-def"><a name="L2987"></a><tt class="py-lineno">2987</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_file_object_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_file_object_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_file_object_encoding-expanded"><a name="L2988"></a><tt class="py-lineno">2988</tt>  <tt class="py-line">        <tt id="link-2780" 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-2772', 'parse', 'link-2409');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2773" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2780', 'parse', 'link-2417');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2781" class="py-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-2773', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2774" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2781', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2782" 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-2774', 'parse', 'link-2409');">parse</a></tt> </tt>
-<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">        <tt class="py-comment"># from file object</tt> </tt>
-<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2775" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2775', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2776" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2782', 'parse', 'link-2417');">parse</a></tt> </tt>
+<a name="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line">        <tt class="py-comment"># from file object</tt> </tt>
+<a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-2783" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2783', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test-string.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2784" 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-2776', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2777" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2777', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2778" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2778', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">            <tt id="link-2779" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2779', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2780" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2780', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2988"></a><tt class="py-lineno">2988</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_8bit_latin1"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-def"><a name="L2989"></a><tt class="py-lineno">2989</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_latin1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_latin1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-expanded"><a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line">        <tt id="link-2781" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2784', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-2785', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2786" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-2786', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">            <tt id="link-2787" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2787', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2788" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2788', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_8bit_latin1"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-def"><a name="L2997"></a><tt class="py-lineno">2997</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_latin1-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_latin1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_latin1-expanded"><a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-line">        <tt id="link-2789" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2781', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2782" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2789', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2790" class="py-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-2782', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2783" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2790', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2791" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2783', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line">        <tt id="link-2784" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2791', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt id="link-2792" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2784', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2792', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2793" class="py-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-2785', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2786" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2793', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2794" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2786', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line"> </tt>
-<a name="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2787" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2794', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line"> </tt>
+<a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2795" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2787', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2788" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2795', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3002"></a><tt class="py-lineno">3002</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2796" 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-2788', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2789" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2789', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line"> </tt>
-<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2997"></a><tt class="py-lineno">2997</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2790" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2790', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2791" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2791', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2792" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2792', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line">        <tt class="py-name">declaration</tt> <tt class="py-op">=</tt> <tt id="link-2793" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2793', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?xml version=\'1.0\' encoding=\'iso-8859-1\'?&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2794" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration" class="py-name" href="#" onclick="return doclink('link-2794', 'assertEncodingDeclaration', 'link-2794');">assertEncodingDeclaration</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-2795" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2795', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3002"></a><tt class="py-lineno">3002</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt id="link-2796" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2796', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2797" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2797', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2798" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2798', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2799" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2799', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2800" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2800', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line"> </tt>
-<a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line">    <tt id="link-2801" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2801', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_explicit'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-def"><a name="L3007"></a><tt class="py-lineno">3007</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_explicit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-expanded"><a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line">        <tt id="link-2802" 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-2802', 'XMLParser', 'link-2802');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2803" class="py-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-2803', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2804" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2804', 'XMLParser', 'link-2802');">XMLParser</a></tt> </tt>
-<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line"> </tt>
-<a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line">        <tt id="link-2805" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2796', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2797" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2797', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line"> </tt>
+<a name="L3004"></a><tt class="py-lineno">3004</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="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2798" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2798', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2799" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2799', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-2800" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2800', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3007"></a><tt class="py-lineno">3007</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line">        <tt class="py-name">declaration</tt> <tt class="py-op">=</tt> <tt id="link-2801" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2801', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?xml version=\'1.0\' encoding=\'iso-8859-1\'?&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2802" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertEncodingDeclaration" class="py-name" href="#" onclick="return doclink('link-2802', 'assertEncodingDeclaration', 'link-2802');">assertEncodingDeclaration</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-2803" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2803', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt id="link-2804" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2804', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2805" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2805', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2806" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2806', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2807" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2807', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3011"></a><tt class="py-lineno">3011</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2808" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2808', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line"> </tt>
+<a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">    <tt id="link-2809" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2809', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_explicit'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-def"><a name="L3015"></a><tt class="py-lineno">3015</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_explicit');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_explicit-expanded"><a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">        <tt id="link-2810" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2810', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2811', 'XMLParser', 'link-34');">XMLParser</a></tt> </tt>
+<a name="L3017"></a><tt class="py-lineno">3017</tt>  <tt class="py-line"> </tt>
+<a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line">        <tt id="link-2812" 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-2805', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2806" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2806', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3011"></a><tt class="py-lineno">3011</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2807" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2807', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt id="link-2808" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2812', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2813" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2813', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3019"></a><tt class="py-lineno">3019</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2814" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2814', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt id="link-2815" 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-2808', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line"> </tt>
-<a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2809" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2815', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line"> </tt>
+<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2816" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2809', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2810" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2810', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2816', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2817', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2818" class="py-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-2811', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2812" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2818', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2819" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2812', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line">                          <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line"> </tt>
-<a name="L3017"></a><tt class="py-lineno">3017</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-2813" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2819', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">                          <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line"> </tt>
+<a name="L3025"></a><tt class="py-lineno">3025</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-2820" class="py-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-2813', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2814" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2820', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2821" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2814', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line">                                <tt id="link-2815" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2815', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2816" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2816', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3019"></a><tt class="py-lineno">3019</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2817', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2818" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2821', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">                                <tt id="link-2822" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2822', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2823" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2823', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2824" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2824', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2825" 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-2818', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2819" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2825', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2826" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2819', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line"> </tt>
-<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line">    <tt id="link-2820" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2820', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_override"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-def"><a name="L3023"></a><tt class="py-lineno">3023</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-expanded"><a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line">        <tt id="link-2821" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2821', 'XMLParser', 'link-2802');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2822" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2822', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2823" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2823', 'XMLParser', 'link-2802');">XMLParser</a></tt> </tt>
-<a name="L3025"></a><tt class="py-lineno">3025</tt>  <tt class="py-line"> </tt>
-<a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">        <tt id="link-2824" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2826', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line"> </tt>
+<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">    <tt id="link-2827" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-2827', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parse_encoding_8bit_override'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parse_encoding_8bit_override"></a><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-def"><a name="L3031"></a><tt class="py-lineno">3031</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parse_encoding_8bit_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parse_encoding_8bit_override-expanded"><a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line">        <tt id="link-2828" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2828', 'XMLParser', 'link-34');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2829" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2829', 'XMLParser', 'link-34');">XMLParser</a></tt> </tt>
+<a name="L3033"></a><tt class="py-lineno">3033</tt>  <tt class="py-line"> </tt>
+<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt id="link-2830" 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-2824', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2825" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2825', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt id="link-2826" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2826', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2827" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2827', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-2828" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2830', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2831" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2831', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt id="link-2832" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2832', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2833" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2833', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-2834" 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-2828', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line">                      <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line"> </tt>
-<a name="L3031"></a><tt class="py-lineno">3031</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2829" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2834', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line">                      <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line"> </tt>
+<a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2835" class="py-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-2829', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2830" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2830', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2831" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2835', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2836" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-2836', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3040"></a><tt class="py-lineno">3040</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2837" class="py-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-2831', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2832" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2837', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2838" 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-2832', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3033"></a><tt class="py-lineno">3033</tt>  <tt class="py-line">                          <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line"> </tt>
-<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2833" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2838', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line">                          <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line"> </tt>
+<a name="L3043"></a><tt class="py-lineno">3043</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-2839" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2833', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2839', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2840" class="py-name"><a title="lxml.etree._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-2834', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">                                <tt id="link-2835" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2835', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2836" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2836', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2837" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2837', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2838" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2840', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line">                                <tt id="link-2841" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-2841', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-2842" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2842', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3045"></a><tt class="py-lineno">3045</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2843" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2843', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3046"></a><tt class="py-lineno">3046</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2844" 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-2838', 'text', 'link-37');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2839" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2844', 'text', 'link-45');">text</a></tt><tt class="py-op">,</tt> <tt id="link-2845" 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-2839', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._test_wrong_unicode_encoding"></a><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-def"><a name="L3040"></a><tt class="py-lineno">3040</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_wrong_unicode_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase._test_wrong_unicode_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-expanded"><a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line">        <tt class="py-comment"># raise error on wrong encoding declaration in unicode strings</tt> </tt>
-<a name="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt id="link-2840" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2845', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3047"></a><tt class="py-lineno">3047</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._test_wrong_unicode_encoding"></a><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-def"><a name="L3048"></a><tt class="py-lineno">3048</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_wrong_unicode_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase._test_wrong_unicode_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_wrong_unicode_encoding-expanded"><a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line">        <tt class="py-comment"># raise error on wrong encoding declaration in unicode strings</tt> </tt>
+<a name="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line">        <tt id="link-2846" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2840', 'XML', 'link-254');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2841" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2846', 'XML', 'link-262');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2847" class="py-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-2841', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2847', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2848" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2842', 'XML', 'link-254');">XML</a></tt> </tt>
-<a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">        <tt class="py-name">test_utf</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2843" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2843', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
-<a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line">                    <tt id="link-2844" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2844', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3045"></a><tt class="py-lineno">3045</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2845" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2848', 'XML', 'link-262');">XML</a></tt> </tt>
+<a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt class="py-name">test_utf</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2849" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2849', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
+<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">                    <tt id="link-2850" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2850', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2851" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2845', 'XML', 'link-254');">XML</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_utf</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3046"></a><tt class="py-lineno">3046</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_write_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-def"><a name="L3047"></a><tt class="py-lineno">3047</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_write_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_write_default_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-expanded"><a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">        <tt id="link-2846" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2851', 'XML', 'link-262');">XML</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_utf</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_write_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-def"><a name="L3055"></a><tt class="py-lineno">3055</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_write_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_write_default_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_write_default_encoding-expanded"><a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line">        <tt id="link-2852" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2846', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2847" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2852', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2853" class="py-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-2847', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2848" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2853', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2854" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2848', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line">        <tt id="link-2849" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2854', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt id="link-2855" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2849', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2850" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2855', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2856" class="py-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-2850', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2851" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2856', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2857" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2851', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line"> </tt>
-<a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2852" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2857', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line"> </tt>
+<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2858" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2852', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2853" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2858', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2859" 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-2853', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2854" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2854', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">         </tt>
-<a name="L3054"></a><tt class="py-lineno">3054</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="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2855" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2859', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2860" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2860', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line">         </tt>
+<a name="L3062"></a><tt class="py-lineno">3062</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="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2861" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2855', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2856" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2856', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt id="link-2857" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2857', 'data', 'link-1035');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2858" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2858', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2859" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2859', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2860" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2860', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">            <tt id="link-2861" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2861', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ASCII'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">            <tt id="link-2862" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2862', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring"></a><div id="_ETreeTestCaseBase.test_encoding_tostring-def"><a name="L3062"></a><tt class="py-lineno">3062</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring-expanded"><a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">        <tt id="link-2863" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2861', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2862" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-2862', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3065"></a><tt class="py-lineno">3065</tt>  <tt class="py-line">        <tt id="link-2863" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2863', 'data', 'link-1043');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2864" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2864', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2865" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2865', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt id="link-2866" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2866', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3067"></a><tt class="py-lineno">3067</tt>  <tt class="py-line">            <tt id="link-2867" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2867', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ASCII'</tt><tt class="py-op">,</tt> <tt class="py-string">'xmlcharrefreplace'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">            <tt id="link-2868" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-2868', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring"></a><div id="_ETreeTestCaseBase.test_encoding_tostring-def"><a name="L3070"></a><tt class="py-lineno">3070</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring-expanded"><a name="L3071"></a><tt class="py-lineno">3071</tt>  <tt class="py-line">        <tt id="link-2869" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2863', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2864" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2869', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2870" class="py-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-2864', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2865" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2870', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2871" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2865', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line">        <tt id="link-2866" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2866', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2867" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2871', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt id="link-2872" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2872', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2873" class="py-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-2867', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2868', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L3065"></a><tt class="py-lineno">3065</tt>  <tt class="py-line"> </tt>
-<a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2869" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2873', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2874" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2874', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line"> </tt>
+<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2875" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2869', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3067"></a><tt class="py-lineno">3067</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2870" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2875', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2876" 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-2870', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2871" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2871', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2872" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2872', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">                         <tt id="link-2873" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2873', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2874" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2874', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_unknown"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-def"><a name="L3071"></a><tt class="py-lineno">3071</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-expanded"><a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt id="link-2875" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2876', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2877" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2877', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2878" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2878', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&#248;k p&#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">                         <tt id="link-2879" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2879', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-2880" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2880', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_unknown"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-def"><a name="L3079"></a><tt class="py-lineno">3079</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_unknown-expanded"><a name="L3080"></a><tt class="py-lineno">3080</tt>  <tt class="py-line">        <tt id="link-2881" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2875', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2876" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2881', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2882" class="py-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-2876', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2877" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2882', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2883" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2877', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line">        <tt id="link-2878" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2878', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2879" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2883', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt id="link-2884" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2884', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2885" class="py-name"><a title="lxml.etree
 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-2879', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2880" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2880', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">         </tt>
-<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2881" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2885', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2886" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2886', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">         </tt>
+<a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2887" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2881', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2882" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2887', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2888" 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-2882', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2883" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2883', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LookupError</tt><tt class="py-op">,</tt> <tt id="link-2884" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2884', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line">                          <tt id="link-2885" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2885', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'Invalid Encoding'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_sub"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-def"><a name="L3080"></a><tt class="py-lineno">3080</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-expanded"><a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt id="link-2886" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2888', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2889" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2889', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3085"></a><tt class="py-lineno">3085</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LookupError</tt><tt class="py-op">,</tt> <tt id="link-2890" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2890', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">                          <tt id="link-2891" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2891', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'Invalid Encoding'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_sub"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-def"><a name="L3088"></a><tt class="py-lineno">3088</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub-expanded"><a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">        <tt id="link-2892" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2886', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2887" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2892', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2893" class="py-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-2887', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2888" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2893', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2894" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2888', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">        <tt id="link-2889" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2889', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2890" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2894', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line">        <tt id="link-2895" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2895', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2896" class="py-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-2890', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2891" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2891', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt id="link-2892" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2892', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2893" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2896', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2897', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3091"></a><tt class="py-lineno">3091</tt>  <tt class="py-line">        <tt id="link-2898" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2898', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2899" class="py-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-2893', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2894" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2894', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line"> </tt>
-<a name="L3085"></a><tt class="py-lineno">3085</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2895" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2899', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2900" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2900', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line"> </tt>
+<a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2901" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2895', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2896" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2896', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2901', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2902" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2902', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2903" 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-2897', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2898" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2898', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3088"></a><tt class="py-lineno">3088</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2899" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2899', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;S&#248;k p&#229; nettet&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">                         <tt id="link-2900" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2900', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2901" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2901', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_sub_tail"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-def"><a name="L3091"></a><tt class="py-lineno">3091</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-expanded"><a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line">        <tt id="link-2902" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2903', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2904" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2904', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2905" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2905', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;S&#248;k p&#229; nettet&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3097"></a><tt class="py-lineno">3097</tt>  <tt class="py-line">                         <tt id="link-2906" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2906', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2907" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2907', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_sub_tail"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-def"><a name="L3099"></a><tt class="py-lineno">3099</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_sub_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_sub_tail-expanded"><a name="L3100"></a><tt class="py-lineno">3100</tt>  <tt class="py-line">        <tt id="link-2908" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2902', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2903" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2908', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2909" class="py-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-2903', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2904" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2909', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2910" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2904', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line">        <tt id="link-2905" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2905', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2906" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2910', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line">        <tt id="link-2911" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2911', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2912" class="py-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-2906', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2907" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2907', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt id="link-2908" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2908', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2909" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2912', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2913" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2913', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">        <tt id="link-2914" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2914', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2915" class="py-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-2909', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2910" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2910', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line"> </tt>
-<a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2911" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2915', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2916', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line"> </tt>
+<a name="L3104"></a><tt class="py-lineno">3104</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2917" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2911', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3097"></a><tt class="py-lineno">3097</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2912" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2912', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2913" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2917', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2918" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2918', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2919" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2913', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2914" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2914', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3099"></a><tt class="py-lineno">3099</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2915" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2915', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-2916" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2916', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3100"></a><tt class="py-lineno">3100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2917" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2917', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;S&#248;k p&#229; nettet&lt;/b&gt;S&#248;k'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line">                         <tt id="link-2918" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2918', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2919" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2919', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_encoding_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-def"><a name="L3103"></a><tt class="py-lineno">3103</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_default_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-expanded"><a name="L3104"></a><tt class="py-lineno">3104</tt>  <tt class="py-line">        <tt id="link-2920" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2919', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2920" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2920', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2921" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2921', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-2922" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2922', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2923" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2923', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;S&#248;k p&#229; nettet&lt;/b&gt;S&#248;k'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">                         <tt id="link-2924" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2924', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-2925" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2925', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3110"></a><tt class="py-lineno">3110</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_encoding_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-def"><a name="L3111"></a><tt class="py-lineno">3111</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_tostring_default_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_tostring_default_encoding-expanded"><a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt id="link-2926" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2920', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2921" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2926', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2927" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2921', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2927', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2928" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2922', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt id="link-2923" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2923', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2924" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2928', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line">        <tt id="link-2929" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2929', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2930" class="py-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-2924', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2925" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2925', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt id="link-2926" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2926', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2927" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2930', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2931" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2931', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">        <tt id="link-2932" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2932', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2933" class="py-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-2927', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2928" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2928', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line"> </tt>
-<a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2929" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2933', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2934" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2934', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line"> </tt>
+<a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2935" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2929', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2935', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2936" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2930', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2931" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2931', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3110"></a><tt class="py-lineno">3110</tt>  <tt class="py-line"> </tt>
-<a name="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-2932" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2932', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&amp;#248;k p&amp;#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line">            <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
-<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">            <tt id="link-2933" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2933', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-def"><a name="L3116"></a><tt class="py-lineno">3116</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-expanded"><a name="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line">        <tt id="link-2934" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2936', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2937" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2937', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line"> </tt>
+<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-2938" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2938', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;S&amp;#248;k p&amp;#229; nettet&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line">            <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
+<a name="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">            <tt id="link-2939" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2939', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding"></a><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-def"><a name="L3124"></a><tt class="py-lineno">3124</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_sub_tostring_default_encoding-expanded"><a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt id="link-2940" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2934', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2935" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2940', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2941" class="py-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-2935', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2936" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2941', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2942" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2936', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line">        <tt id="link-2937" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2937', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2938" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2942', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">        <tt id="link-2943" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2943', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2944" class="py-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-2938', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2939" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2939', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">        <tt id="link-2940" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2940', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2941" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2944', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2945" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2945', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">        <tt id="link-2946" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2946', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2947" class="py-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-2941', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2942" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2942', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line"> </tt>
-<a name="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2943" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2947', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2948" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2948', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line"> </tt>
+<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2949" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2943', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2944" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2944', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2945" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2949', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2950" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2950', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2951" 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-2945', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2946" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2946', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line"> </tt>
-<a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-2947" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2947', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;S&amp;#248;k p&amp;#229; nettet&lt;/b&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">            <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
-<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line">            <tt id="link-2948" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2948', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_8bit_xml"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-def"><a name="L3130"></a><tt class="py-lineno">3130</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_xml-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-expanded"><a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">        <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-2949" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2949', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line">        <tt id="link-2950" class="py-name" targets="Variable lxml.tests.test_unicode.uxml=lxml.tests.test_unicode-module.html#uxml"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2950', 'uxml', 'link-2950');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-2951" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2951', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;p&gt;%s&lt;/p&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
-<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line">        <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-2952" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2952', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="iso-8859-1" ?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">        <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-2953" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2953', 'uxml', 'link-2950');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3135"></a><tt class="py-lineno">3135</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-2954" class="py-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-2954', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2955" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2951', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-2952" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2952', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line"> </tt>
+<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt id="link-2953" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2953', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;S&amp;#248;k p&amp;#229; nettet&lt;/b&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3135"></a><tt class="py-lineno">3135</tt>  <tt class="py-line">            <tt class="py-name">expected</tt><tt class="py-op">,</tt> </tt>
+<a name="L3136"></a><tt class="py-lineno">3136</tt>  <tt class="py-line">            <tt id="link-2954" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2954', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3137"></a><tt class="py-lineno">3137</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_8bit_xml"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-def"><a name="L3138"></a><tt class="py-lineno">3138</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_xml-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_xml');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_xml-expanded"><a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-2955" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2955', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">        <tt id="link-2956" class="py-name" targets="Variable lxml.tests.test_unicode.uxml=lxml.tests.test_unicode-module.html#uxml"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2956', 'uxml', 'link-2956');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-2957" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2957', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;p&gt;%s&lt;/p&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
+<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line">        <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-2958" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2958', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="iso-8859-1" ?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-2959" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2959', 'uxml', 'link-2956');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3143"></a><tt class="py-lineno">3143</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-2960" class="py-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-2960', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2961" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2955', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt> </tt>
-<a name="L3136"></a><tt class="py-lineno">3136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2956" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2961', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt> </tt>
+<a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2962" 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-2956', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3137"></a><tt class="py-lineno">3137</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_utf8_bom"></a><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-def"><a name="L3138"></a><tt class="py-lineno">3138</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_utf8_bom-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_utf8_bom');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-expanded"><a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-2957" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2957', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">        <tt id="link-2958" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2958', 'uxml', 'link-2950');">uxml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2959" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2959', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
-<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line">                <tt id="link-2960" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2960', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;p&gt;%s&lt;/p&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt><tt class="py-op">)</tt> </tt>
-<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt class="py-name">bom</tt> <tt class="py-op">=</tt> <tt id="link-2961" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2961', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\xEF\\xBB\\xBF'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"latin1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">        <tt id="link-2962" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2962', 'xml', 'link-2427');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bom</tt> <tt class="py-op">+</tt> <tt id="link-2963" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2963', 'uxml', 'link-2950');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2964" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2962', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_utf8_bom"></a><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-def"><a name="L3146"></a><tt class="py-lineno">3146</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_utf8_bom-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_utf8_bom');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_utf8_bom-expanded"><a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line">        <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-2963" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2963', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">        <tt id="link-2964" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2964', 'uxml', 'link-2956');">uxml</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-2965" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2965', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> </tt>
+<a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line">                <tt id="link-2966" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2966', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;p&gt;%s&lt;/p&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt><tt class="py-op">)</tt> </tt>
+<a name="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line">        <tt class="py-name">bom</tt> <tt class="py-op">=</tt> <tt id="link-2967" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2967', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\\xEF\\xBB\\xBF'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">"unicode_escape"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"latin1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">        <tt id="link-2968" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2968', 'xml', 'link-2435');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-name">bom</tt> <tt class="py-op">+</tt> <tt id="link-2969" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2969', 'uxml', 'link-2956');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2970" class="py-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-2964', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2965" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2970', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2971" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2965', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2966" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2966', 'xml', 'link-2427');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2967" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2971', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2972" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2972', 'xml', 'link-2435');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2973" 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-2967', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3146"></a><tt class="py-lineno">3146</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-def"><a name="L3147"></a><tt class="py-lineno">3147</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_parse_stringio');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-expanded"><a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">        <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-2968" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2968', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line">        <tt id="link-2969" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2969', 'uxml', 'link-2950');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-2970" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2970', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;p&gt;%s&lt;/p&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
-<a name="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line">        <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-2971" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2971', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="iso-8859-1" ?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">        <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-2972" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2972', 'uxml', 'link-2950');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2973" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2973', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio"></a><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-def"><a name="L3155"></a><tt class="py-lineno">3155</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-toggle" onclick="return toggle('_ETreeTestCaseBase.test_encoding_8bit_parse_stringio');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_encoding_8bit_parse_stringio-expanded"><a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line">        <tt class="py-name">utext</tt> <tt class="py-op">=</tt> <tt id="link-2974" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2974', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3157"></a><tt class="py-lineno">3157</tt>  <tt class="py-line">        <tt id="link-2975" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2975', 'uxml', 'link-2956');">uxml</a></tt> <tt class="py-op">=</tt> <tt id="link-2976" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2976', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;p&gt;%s&lt;/p&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">utext</tt> </tt>
+<a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt class="py-name">prologue</tt> <tt class="py-op">=</tt> <tt id="link-2977" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2977', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version="1.0" encoding="iso-8859-1" ?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt class="py-name">isoxml</tt> <tt class="py-op">=</tt> <tt class="py-name">prologue</tt> <tt class="py-op">+</tt> <tt id="link-2978" class="py-name"><a title="lxml.tests.test_unicode.uxml" class="py-name" href="#" onclick="return doclink('link-2978', 'uxml', 'link-2956');">uxml</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2979" class="py-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-2973', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2979', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2980" class="py-name"><a title="lxml.etree._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-2974', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2975" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2975', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2976" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2980', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">isoxml</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2981" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2981', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">utext</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2982" 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-2976', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-def"><a name="L3155"></a><tt class="py-lineno">3155</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-expanded"><a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line">        <tt id="link-2977" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2982', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-def"><a name="L3163"></a><tt class="py-lineno">3163</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_elementtree-expanded"><a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">        <tt id="link-2983" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2977', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2978" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2983', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2984" class="py-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-2978', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2979" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2984', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2979', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3157"></a><tt class="py-lineno">3157</tt>  <tt class="py-line">        <tt id="link-2980" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2985', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">        <tt id="link-2986" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2980', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2981" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2986', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2987" class="py-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-2981', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2982" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2987', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2988" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2982', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line"> </tt>
-<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2983" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2988', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line"> </tt>
+<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2989" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2983', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2984" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2989', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2990" 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-2984', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Foo"</tt> </tt>
-<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">        <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-2985" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2990', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Foo"</tt> </tt>
+<a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line">        <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-2991" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2985', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line"> </tt>
-<a name="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line">        <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-2986" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2991', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3170"></a><tt class="py-lineno">3170</tt>  <tt class="py-line"> </tt>
+<a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line">        <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-2992" 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-2986', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-2987" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2987', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2988" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-2992', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-2993" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2993', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2994" 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-2988', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-2989" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2989', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2990" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2994', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"Foo"</tt><tt class="py-op">,</tt> <tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-2995" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2995', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2996" 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-2990', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2991" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2991', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2992" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2992', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-2993" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2993', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-2994" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2994', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy"></a><div id="_ETreeTestCaseBase.test_deepcopy-def"><a name="L3169"></a><tt class="py-lineno">3169</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy-expanded"><a name="L3170"></a><tt class="py-lineno">3170</tt>  <tt class="py-line">        <tt id="link-2995" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2996', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2997', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2998" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-2998', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-2999" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2999', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3000" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3000', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy"></a><div id="_ETreeTestCaseBase.test_deepcopy-def"><a name="L3177"></a><tt class="py-lineno">3177</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy-expanded"><a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line">        <tt id="link-3001" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2995', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2996" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3001', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3002" class="py-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-2996', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3002', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3003" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2997', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line">         </tt>
-<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2998" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3003', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">         </tt>
+<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3004" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2998', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2999" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3004', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3005" 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-2999', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line"> </tt>
-<a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3000" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3005', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line"> </tt>
+<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3006" 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-3000', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3001" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3006', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3007" 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-3001', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line">         </tt>
-<a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3002" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3007', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line">         </tt>
+<a name="L3186"></a><tt class="py-lineno">3186</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3008" 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-3002', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3003" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3008', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3009" 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-3003', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3004" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3009', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3010" 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-3004', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line"> </tt>
-<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
-<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3005" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3010', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line"> </tt>
+<a name="L3190"></a><tt class="py-lineno">3190</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
+<a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3011" 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-3005', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_tail"></a><div id="_ETreeTestCaseBase.test_deepcopy_tail-def"><a name="L3185"></a><tt class="py-lineno">3185</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_tail-expanded"><a name="L3186"></a><tt class="py-lineno">3186</tt>  <tt class="py-line">        <tt id="link-3006" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3011', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_tail"></a><div id="_ETreeTestCaseBase.test_deepcopy_tail-def"><a name="L3193"></a><tt class="py-lineno">3193</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_tail-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_tail-expanded"><a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line">        <tt id="link-3012" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3006', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3007" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3012', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3013" class="py-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-3007', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3008" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3013', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3008', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">         </tt>
-<a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3009" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3014', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line">         </tt>
+<a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3015" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3009', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3010" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3010', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3190"></a><tt class="py-lineno">3190</tt>  <tt class="py-line"> </tt>
-<a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3011" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3015', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3016" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3016', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line"> </tt>
+<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3017" 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-3011', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3012" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3012', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3193"></a><tt class="py-lineno">3193</tt>  <tt class="py-line">         </tt>
-<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3013" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3013', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3014', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3015" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3015', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line"> </tt>
-<a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
-<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3016" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3016', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_subelement"></a><div id="_ETreeTestCaseBase.test_deepcopy_subelement-def"><a name="L3201"></a><tt class="py-lineno">3201</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_subelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-expanded"><a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line">        <tt id="link-3017" class="py-name"><a title="lxml.etree.Element
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3017', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3018" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3018', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line">         </tt>
+<a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3019" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3019', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3020" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3020', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3204"></a><tt class="py-lineno">3204</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3021" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3021', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3205"></a><tt class="py-lineno">3205</tt>  <tt class="py-line"> </tt>
+<a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
+<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3022" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3022', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_subelement"></a><div id="_ETreeTestCaseBase.test_deepcopy_subelement-def"><a name="L3209"></a><tt class="py-lineno">3209</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_subelement-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_subelement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_subelement-expanded"><a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line">        <tt id="link-3023" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3017', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3018" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3023', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3024" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3018', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3019" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3024', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3025" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3019', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line">        <tt id="link-3020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3020', 'SubElement', 'link-86');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3021" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3025', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt id="link-3026" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3026', 'SubElement', 'link-94');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3027" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3021', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3022" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3022', 'SubElement', 'link-86');">SubElement</a></tt> </tt>
-<a name="L3204"></a><tt class="py-lineno">3204</tt>  <tt class="py-line"> </tt>
-<a name="L3205"></a><tt class="py-lineno">3205</tt>  <tt class="py-line">        <tt id="link-3023" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3023', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3024" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3027', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3028" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3028', 'SubElement', 'link-94');">SubElement</a></tt> </tt>
+<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line"> </tt>
+<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line">        <tt id="link-3029" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3029', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3030" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3024', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3025" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3025', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3026" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3026', 'root', 'link-42');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3027" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3030', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3031" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3031', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3032" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3032', 'root', 'link-50');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3033" 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-3027', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooText'</tt> </tt>
-<a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3028" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3028', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooTail'</tt> </tt>
-<a name="L3209"></a><tt class="py-lineno">3209</tt>  <tt class="py-line"> </tt>
-<a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3029" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3033', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooText'</tt> </tt>
+<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3034" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3034', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'FooTail'</tt> </tt>
+<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line"> </tt>
+<a name="L3218"></a><tt class="py-lineno">3218</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3035" 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-3029', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3030" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3035', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3036" 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-3030', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3031" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3031', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line">         </tt>
-<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3032" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3036', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3037" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3037', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line">         </tt>
+<a name="L3222"></a><tt class="py-lineno">3222</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3038" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3032', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarText'</tt> </tt>
-<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3033" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3033', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarTail'</tt> </tt>
-<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3034" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3034', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3035" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3035', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3218"></a><tt class="py-lineno">3218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3036" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3038', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarText'</tt> </tt>
+<a name="L3223"></a><tt class="py-lineno">3223</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3039" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3039', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'BarTail'</tt> </tt>
+<a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3040" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3040', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooTail'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3041" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3041', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3042" 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-3036', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3037" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3042', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'FooText'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3043" 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-3037', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line"> </tt>
-<a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
-<a name="L3222"></a><tt class="py-lineno">3222</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3038" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3038', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3223"></a><tt class="py-lineno">3223</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3039" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3043', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line"> </tt>
+<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">a</tt> </tt>
+<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarTail'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3044" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3044', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'BarText'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3045" 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-3039', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_namespaces"></a><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-def"><a name="L3225"></a><tt class="py-lineno">3225</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_namespaces-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_namespaces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-expanded"><a name="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line">        <tt id="link-3040" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3040', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3041" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3045', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_namespaces"></a><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-def"><a name="L3233"></a><tt class="py-lineno">3233</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_namespaces-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_namespaces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_namespaces-expanded"><a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">        <tt id="link-3046" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3046', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3047" class="py-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-3041', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3042" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3047', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3048" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3042', 'XML', 'link-254');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3043" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3043', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;doc xmlns="dns" xmlns:t="tns"&gt;</tt> </tt>
-<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line"><tt class="py-string">        &lt;parent&gt;&lt;node t:foo="bar" /&gt;&lt;/parent&gt;</tt> </tt>
-<a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line">            <tt id="link-3044" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3044', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3048', 'XML', 'link-262');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3049" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3049', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;doc xmlns="dns" xmlns:t="tns"&gt;</tt> </tt>
+<a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line"><tt class="py-string">        &lt;parent&gt;&lt;node t:foo="bar" /&gt;&lt;/parent&gt;</tt> </tt>
+<a name="L3236"></a><tt class="py-lineno">3236</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line">            <tt id="link-3050" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3050', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3051" 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-3045', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-line">            <tt id="link-3046" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3051', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line">            <tt id="link-3052" 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-3046', '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-3047" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3047', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3048" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3052', '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-3053" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3053', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3054" 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-3048', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line">            <tt id="link-3049" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3049', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3050" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3054', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">            <tt id="link-3055" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3055', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3056" 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-3050', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">            <tt id="link-3051" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3056', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line">            <tt id="link-3057" 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-3051', '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-3052" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3052', 'root', 'link-42');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3053" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3057', '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-3058" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3058', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3059" 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-3053', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-</div><a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_append"></a><div id="_ETreeTestCaseBase.test_deepcopy_append-def"><a name="L3236"></a><tt class="py-lineno">3236</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_append-expanded"><a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
-<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line">        <tt id="link-3054" class="py-name"><a title="lxml.etree.Element
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3059', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{tns}foo'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+</div><a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_append"></a><div id="_ETreeTestCaseBase.test_deepcopy_append-def"><a name="L3244"></a><tt class="py-lineno">3244</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_append-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_append-expanded"><a name="L3245"></a><tt class="py-lineno">3245</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
+<a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt id="link-3060" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3054', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3055" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3060', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3061" class="py-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-3055', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3056" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3061', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3062" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3056', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line">        <tt id="link-3057" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3057', 'tostring', 'link-211');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3058" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3062', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">        <tt id="link-3063" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3063', 'tostring', 'link-219');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3064" class="py-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-3058', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3059" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3059', 'tostring', 'link-211');">tostring</a></tt> </tt>
-<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line">         </tt>
-<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3060" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3064', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3065" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3065', 'tostring', 'link-219');">tostring</a></tt> </tt>
+<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">         </tt>
+<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3066" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3060', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3061" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3066', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3067" 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-3061', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3062" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3062', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3063" class="py-name"><a title="lxml.etree.Element
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3067', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3068" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3068', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3069" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3063', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3244"></a><tt class="py-lineno">3244</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3064" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3064', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3065" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3069', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'C'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3252"></a><tt class="py-lineno">3252</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3070" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3070', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt> <tt id="link-3071" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3065', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'X'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3245"></a><tt class="py-lineno">3245</tt>  <tt class="py-line"> </tt>
-<a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3066" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3066', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;C/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">                          <tt id="link-3067" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3067', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3068" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3068', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3069" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3069', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3070" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3070', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3071" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3071', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;X/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line">                          <tt id="link-3072" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3072', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3073" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3073', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3074" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3074', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3075" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3075', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_deepcopy_comment"></a><div id="_ETreeTestCaseBase.test_deepcopy_comment-def"><a name="L3251"></a><tt class="py-lineno">3251</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_deepcopy_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_comment-expanded"><a name="L3252"></a><tt class="py-lineno">3252</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
-<a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line">        <tt class="py-comment"># not supported by ET &lt; 1.3!</tt> </tt>
-<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt id="link-3076" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3076', 'Comment', 'link-834');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3077" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3071', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'X'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line"> </tt>
+<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3072" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3072', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;C/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">                          <tt id="link-3073" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3073', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3074" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3074', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3075" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3075', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3076" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3076', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3077" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3077', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;X/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3257"></a><tt class="py-lineno">3257</tt>  <tt class="py-line">                          <tt id="link-3078" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3078', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3079" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3079', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3080" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3080', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3081" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3081', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_deepcopy_comment"></a><div id="_ETreeTestCaseBase.test_deepcopy_comment-def"><a name="L3259"></a><tt class="py-lineno">3259</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_deepcopy_comment-toggle" onclick="return toggle('_ETreeTestCaseBase.test_deepcopy_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_deepcopy_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_deepcopy_comment-expanded"><a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
+<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">        <tt class="py-comment"># not supported by ET &lt; 1.3!</tt> </tt>
+<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">        <tt id="link-3082" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3082', 'Comment', 'link-842');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3083" class="py-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-3077', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3078" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3078', 'Comment', 'link-834');">Comment</a></tt> </tt>
-<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">         </tt>
-<a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3079" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3079', 'Comment', 'link-834');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3257"></a><tt class="py-lineno">3257</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3080" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3083', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3084" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3084', 'Comment', 'link-842');">Comment</a></tt> </tt>
+<a name="L3263"></a><tt class="py-lineno">3263</tt>  <tt class="py-line">         </tt>
+<a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3085" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-3085', 'Comment', 'link-842');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3086" 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-3080', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3081" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3086', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3087" class="py-name"><a title="lxml.etree.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-3081', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ANOTHER"</tt> </tt>
-<a name="L3259"></a><tt class="py-lineno">3259</tt>  <tt class="py-line"> </tt>
-<a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ONE'</tt><tt class="py-op">,</tt>     <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3082" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3087', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ANOTHER"</tt> </tt>
+<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line"> </tt>
+<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ONE'</tt><tt class="py-op">,</tt>     <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3088" 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-3082', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3083" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3088', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3089" 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-3083', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_shallowcopy"></a><div id="_ETreeTestCaseBase.test_shallowcopy-def"><a name="L3263"></a><tt class="py-lineno">3263</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_shallowcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy-expanded"><a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line">        <tt id="link-3084" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3089', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_shallowcopy"></a><div id="_ETreeTestCaseBase.test_shallowcopy-def"><a name="L3271"></a><tt class="py-lineno">3271</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_shallowcopy-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy-expanded"><a name="L3272"></a><tt class="py-lineno">3272</tt>  <tt class="py-line">        <tt id="link-3090" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3084', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3085" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3090', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3091" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3085', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3086" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3091', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3092" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3086', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-line">         </tt>
-<a name="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3087" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3092', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line">         </tt>
+<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3093" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3087', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3088" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3093', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3088', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line"> </tt>
-<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3089" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3094', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line"> </tt>
+<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3095" 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-3089', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3090" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3095', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3096" 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-3090', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3091" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3096', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3097" 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-3091', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-line">         </tt>
-<a name="L3272"></a><tt class="py-lineno">3272</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3092" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3097', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">         </tt>
+<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3098" 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-3092', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
-<a name="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3093" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3098', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Bar'</tt> </tt>
+<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Bar'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3099" 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-3093', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3099', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3100" 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-3094', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt class="py-comment"># XXX ElementTree will share nodes, but lxml.etree won't..</tt> </tt>
-<a name="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_shallowcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-def"><a name="L3277"></a><tt class="py-lineno">3277</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-expanded"><a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">        <tt id="link-3095" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3100', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line">        <tt class="py-comment"># XXX ElementTree will share nodes, but lxml.etree won't..</tt> </tt>
+<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_shallowcopy_elementtree"></a><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-def"><a name="L3285"></a><tt class="py-lineno">3285</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_shallowcopy_elementtree-toggle" onclick="return toggle('_ETreeTestCaseBase.test_shallowcopy_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_shallowcopy_elementtree-expanded"><a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line">        <tt id="link-3101" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3095', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3101', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3102" class="py-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-3096', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3097" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3102', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3103" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3097', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">        <tt id="link-3098" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3103', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line">        <tt id="link-3104" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3098', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3099" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3104', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3105" class="py-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-3099', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3100" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3105', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3106" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3100', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line">         </tt>
-<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3101" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3106', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">         </tt>
+<a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3107" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3101', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3107', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3290"></a><tt class="py-lineno">3290</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3108" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3102', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line">        <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-3103" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3108', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line">        <tt class="py-name">atree</tt> <tt class="py-op">=</tt> <tt id="link-3109" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3103', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line"> </tt>
-<a name="L3285"></a><tt class="py-lineno">3285</tt>  <tt class="py-line">        <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-3104" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3109', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line"> </tt>
+<a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line">        <tt class="py-name">btree</tt> <tt class="py-op">=</tt> <tt id="link-3110" 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-3104', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3110', 'copy', 'link-0');">copy</a></tt><tt class="py-op">.</tt><tt id="link-3111" 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-3105', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3106" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3106', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3107" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3107', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3108" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3108', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3109" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3109', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3110" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-3111', 'copy', 'link-0');">copy</a></tt><tt class="py-op">(</tt><tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3112" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3112', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt class="py-name">btree</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">btree</tt><tt class="py-op">.</tt><tt id="link-3113" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3113', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3114" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3114', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'Foo'</tt><tt class="py-op">,</tt> <tt class="py-name">atree</tt><tt class="py-op">.</tt><tt id="link-3115" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3115', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3110', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._test_element_boolean"></a><div id="_ETreeTestCaseBase._test_element_boolean-def"><a name="L3290"></a><tt class="py-lineno">3290</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_element_boolean-toggle" onclick="return toggle('_ETreeTestCaseBase._test_element_boolean');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean">_test_element_boolean</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._test_element_boolean-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_element_boolean-expanded"><a name="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line">        <tt class="py-comment"># deprecated as of ET 1.3/lxml 2.0</tt> </tt>
-<a name="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line">        <tt id="link-3111" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3116', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3297"></a><tt class="py-lineno">3297</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._test_element_boolean"></a><div id="_ETreeTestCaseBase._test_element_boolean-def"><a name="L3298"></a><tt class="py-lineno">3298</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._test_element_boolean-toggle" onclick="return toggle('_ETreeTestCaseBase._test_element_boolean');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean">_test_element_boolean</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._test_element_boolean-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._test_element_boolean-expanded"><a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line">        <tt class="py-comment"># deprecated as of ET 1.3/lxml 2.0</tt> </tt>
+<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line">        <tt id="link-3117" class="py-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-3111', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3112" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3117', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3118" class="py-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-3112', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3113" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3118', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3119" class="py-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-3113', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3114" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3119', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3120" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3114', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">        <tt id="link-3115" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3120', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line">        <tt id="link-3121" class="py-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-3115', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3116', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3297"></a><tt class="py-lineno">3297</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3117" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3121', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3122" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3122', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3304"></a><tt class="py-lineno">3304</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3123" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3117', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3118" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3123', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3124" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3118', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3119" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3124', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3125" 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-3119', 'text', 'link-37');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hey'</tt> </tt>
-<a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3120" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3125', 'text', 'link-45');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'hey'</tt> </tt>
+<a name="L3307"></a><tt class="py-lineno">3307</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3126" class="py-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-3120', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3121" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3126', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3121', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3122" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3122', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
-<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3123" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3127', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3128" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3128', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'bar'</tt> </tt>
+<a name="L3310"></a><tt class="py-lineno">3310</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-3129" class="py-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-3123', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3124" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3129', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3130" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3124', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3304"></a><tt class="py-lineno">3304</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3125" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3125', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_multiple_elementrees"></a><div id="_ETreeTestCaseBase.test_multiple_elementrees-def"><a name="L3307"></a><tt class="py-lineno">3307</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_multiple_elementrees-toggle" onclick="return toggle('_ETreeTestCaseBase.test_multiple_elementrees');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_multiple_elementrees-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_multiple_elementrees-expanded"><a name="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">        <tt id="link-3126" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3130', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3131" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3131', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bar'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_multiple_elementrees"></a><div id="_ETreeTestCaseBase.test_multiple_elementrees-def"><a name="L3315"></a><tt class="py-lineno">3315</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_multiple_elementrees-toggle" onclick="return toggle('_ETreeTestCaseBase.test_multiple_elementrees');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_multiple_elementrees-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_multiple_elementrees-expanded"><a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line">        <tt id="link-3132" class="py-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-3126', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3132', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3133" class="py-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-3127', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line"> </tt>
-<a name="L3310"></a><tt class="py-lineno">3310</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3128" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3133', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3317"></a><tt class="py-lineno">3317</tt>  <tt class="py-line"> </tt>
+<a name="L3318"></a><tt class="py-lineno">3318</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3134" class="py-name"><a title="lxml.etree
 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-3128', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3129" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3134', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3135" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3129', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3130" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3135', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3136" class="py-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-3130', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3131" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3131', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line"> </tt>
-<a name="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-3132" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3136', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3137" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3137', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line"> </tt>
+<a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line">        <tt class="py-name">t</tt> <tt class="py-op">=</tt> <tt id="link-3138" class="py-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-3132', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3133" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3138', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3139" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3133', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3134" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase._rootstring()=lxml.tests.common_imports.HelperTestCase-class.html#_rootstring,Method lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3134', '_rootstring', 'link-3134');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3135" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3135', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3315"></a><tt class="py-lineno">3315</tt>  <tt class="py-line"> </tt>
-<a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line">        <tt class="py-name">t1</tt> <tt class="py-op">=</tt> <tt id="link-3136" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3139', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3322"></a><tt class="py-lineno">3322</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3140" class="py-name" targets="Method lxml.tests.common_imports.HelperTestCase._rootstring()=lxml.tests.common_imports.HelperTestCase-class.html#_rootstring,Method lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3140', '_rootstring', 'link-3140');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3141" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3141', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line"> </tt>
+<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line">        <tt class="py-name">t1</tt> <tt class="py-op">=</tt> <tt id="link-3142" class="py-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-3136', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3137" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3142', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3143" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3137', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3317"></a><tt class="py-lineno">3317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3138" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3138', '_rootstring', 'link-3134');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3139" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3139', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3318"></a><tt class="py-lineno">3318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3140" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3140', '_rootstring', 'link-3134');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt id="link-3141" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3141', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line"> </tt>
-<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line">        <tt class="py-name">t2</tt> <tt class="py-op">=</tt> <tt id="link-3142" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3143', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3144" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3144', '_rootstring', 'link-3140');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3145" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3145', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3146', '_rootstring', 'link-3140');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt id="link-3147" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3147', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line"> </tt>
+<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line">        <tt class="py-name">t2</tt> <tt class="py-op">=</tt> <tt id="link-3148" class="py-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-3142', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3143" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3148', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3149" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3143', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-<a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3144" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3144', '_rootstring', 'link-3134');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3145" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3145', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3322"></a><tt class="py-lineno">3322</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3146', '_rootstring', 'link-3134');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3147" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3147', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3148" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3148', '_rootstring', 'link-3134');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt id="link-3149" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3149', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname"></a><div id="_ETreeTestCaseBase.test_qname-def"><a name="L3325"></a><tt class="py-lineno">3325</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname-expanded"><a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line">        <tt id="link-3150" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3149', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3150" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3150', '_rootstring', 'link-3140');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3151" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3151', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3330"></a><tt class="py-lineno">3330</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3152" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3152', '_rootstring', 'link-3140');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3153" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3153', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3154" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-3154', '_rootstring', 'link-3140');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">t</tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  <tt id="link-3155" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3155', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname"></a><div id="_ETreeTestCaseBase.test_qname-def"><a name="L3333"></a><tt class="py-lineno">3333</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname-expanded"><a name="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">        <tt id="link-3156" class="py-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-3150', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3151" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3156', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3157" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3151', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3152" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3157', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3158" class="py-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-3152', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name" targets="Class lxml.etree.QName=lxml.etree.QName-class.html,Class xml.etree.ElementTree.QName=xml.etree.ElementTree.QName-class.html"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3153', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line">        <tt class="py-name">a1</tt> <tt class="py-op">=</tt> <tt id="link-3154" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3158', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name" targets="Class lxml.etree.QName=lxml.etree.QName-class.html,Class xml.etree.ElementTree.QName=xml.etree.ElementTree.QName-class.html"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3159', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">        <tt class="py-name">a1</tt> <tt class="py-op">=</tt> <tt id="link-3160" class="py-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-3154', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3155" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3160', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3161" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3155', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-3156" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3161', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-3162" class="py-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-3156', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3157" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3157', 'SubElement', 'link-86');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3330"></a><tt class="py-lineno">3330</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">.</tt><tt id="link-3158" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3162', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3163', 'SubElement', 'link-94');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a1</tt><tt class="py-op">.</tt><tt id="link-3164" 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-3158', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a2</tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3164', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a2</tt><tt class="py-op">.</tt><tt id="link-3165" 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-3159', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_cmp"></a><div id="_ETreeTestCaseBase.test_qname_cmp-def"><a name="L3333"></a><tt class="py-lineno">3333</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_cmp-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_cmp-expanded"><a name="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">        <tt id="link-3160" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3165', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3340"></a><tt class="py-lineno">3340</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_cmp"></a><div id="_ETreeTestCaseBase.test_qname_cmp-def"><a name="L3341"></a><tt class="py-lineno">3341</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_cmp-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_cmp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_cmp-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_cmp-expanded"><a name="L3342"></a><tt class="py-lineno">3342</tt>  <tt class="py-line">        <tt id="link-3166" class="py-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-3160', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3161" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3166', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3167" class="py-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-3161', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line">        <tt class="py-name">qname1</tt> <tt class="py-op">=</tt> <tt id="link-3162" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3167', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">        <tt class="py-name">qname1</tt> <tt class="py-op">=</tt> <tt id="link-3168" class="py-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-3162', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3163', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">        <tt class="py-name">qname2</tt> <tt class="py-op">=</tt> <tt id="link-3164" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3168', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3169" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3169', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line">        <tt class="py-name">qname2</tt> <tt class="py-op">=</tt> <tt id="link-3170" class="py-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-3164', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3165', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
-<a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3340"></a><tt class="py-lineno">3340</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3341"></a><tt class="py-lineno">3341</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attribute_getset"></a><div id="_ETreeTestCaseBase.test_qname_attribute_getset-def"><a name="L3342"></a><tt class="py-lineno">3342</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_getset-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_getset');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-expanded"><a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">        <tt id="link-3166" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3170', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3171', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3345"></a><tt class="py-lineno">3345</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
+<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attribute_getset"></a><div id="_ETreeTestCaseBase.test_qname_attribute_getset-def"><a name="L3350"></a><tt class="py-lineno">3350</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_getset-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_getset');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_getset-expanded"><a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line">        <tt id="link-3172" class="py-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-3166', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3167" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3172', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3173" class="py-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-3167', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3168" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3173', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3352"></a><tt class="py-lineno">3352</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3174" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3168', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3169" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3169', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3345"></a><tt class="py-lineno">3345</tt>  <tt class="py-line"> </tt>
-<a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3170" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3174', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3175" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3175', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line"> </tt>
+<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3176" class="py-name"><a title="lxml.etree
 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-3170', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3176', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3177" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3171', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3172" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3172', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line"> </tt>
-<a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3173" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3177', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3178" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3178', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line"> </tt>
+<a name="L3357"></a><tt class="py-lineno">3357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3179" 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-3173', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3350"></a><tt class="py-lineno">3350</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3179', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3180" 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-3174', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attrib"></a><div id="_ETreeTestCaseBase.test_qname_attrib-def"><a name="L3352"></a><tt class="py-lineno">3352</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib-expanded"><a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">        <tt id="link-3175" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3180', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3359"></a><tt class="py-lineno">3359</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attrib"></a><div id="_ETreeTestCaseBase.test_qname_attrib-def"><a name="L3360"></a><tt class="py-lineno">3360</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib-expanded"><a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line">        <tt id="link-3181" class="py-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-3175', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3176" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3181', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3182" class="py-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-3176', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3177" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3182', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3183" class="py-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-3177', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3178" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3178', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line"> </tt>
-<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3179" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3183', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3184" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3184', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line"> </tt>
+<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3185" class="py-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-3179', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3185', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3186" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3180', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3357"></a><tt class="py-lineno">3357</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3181" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3186', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3187" 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-3181', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
-<a name="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line"> </tt>
-<a name="L3359"></a><tt class="py-lineno">3359</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3182" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3187', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
+<a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line"> </tt>
+<a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3188" 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-3182', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3360"></a><tt class="py-lineno">3360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3183" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3188', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3189" 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-3183', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3184" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3189', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3190" 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-3184', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line"> </tt>
-<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3185" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3190', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line"> </tt>
+<a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3191" 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-3185', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3186" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3191', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3192" 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-3186', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3187" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3192', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3193" 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-3187', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attribute_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-def"><a name="L3365"></a><tt class="py-lineno">3365</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-expanded"><a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line">        <tt id="link-3188" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3193', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"{myns}a"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"value"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attribute_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-def"><a name="L3373"></a><tt class="py-lineno">3373</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve-expanded"><a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">        <tt id="link-3194" class="py-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-3188', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3189" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3194', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3195" class="py-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-3189', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3190" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3195', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3196" class="py-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-3190', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3191" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3191', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3192" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3196', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3197" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3197', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3376"></a><tt class="py-lineno">3376</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3198" class="py-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-3192', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3193" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3198', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3199" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3193', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3194', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line"> </tt>
-<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3195" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3195', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line">            <tt id="link-3196" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3196', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"&gt;&lt;/ns0:a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attribute_resolve_new"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-def"><a name="L3375"></a><tt class="py-lineno">3375</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-expanded"><a name="L3376"></a><tt class="py-lineno">3376</tt>  <tt class="py-line">        <tt id="link-3197" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3199', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3377"></a><tt class="py-lineno">3377</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3200" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3200', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line"> </tt>
+<a name="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3201" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3201', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line">            <tt id="link-3202" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3202', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"&gt;&lt;/ns0:a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3381"></a><tt class="py-lineno">3381</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attribute_resolve_new"></a><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-def"><a name="L3383"></a><tt class="py-lineno">3383</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attribute_resolve_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attribute_resolve_new-expanded"><a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line">        <tt id="link-3203" class="py-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-3197', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3198" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3203', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3204" class="py-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-3198', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3377"></a><tt class="py-lineno">3377</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3199" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3204', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3205" class="py-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-3199', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3200" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3200', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3201" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3205', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3206', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3207" class="py-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-3201', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3202" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3207', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3208" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3202', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3203" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3203', 'set', 'link-411');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line"> </tt>
-<a name="L3381"></a><tt class="py-lineno">3381</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3204" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3204', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line">            <tt id="link-3205" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3205', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:ns0="http://myns" a="ns0:a"&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3383"></a><tt class="py-lineno">3383</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_qname_attrib_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-def"><a name="L3385"></a><tt class="py-lineno">3385</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib_resolve');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-expanded"><a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line">        <tt id="link-3206" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3208', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3209', 'set', 'link-419');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3388"></a><tt class="py-lineno">3388</tt>  <tt class="py-line"> </tt>
+<a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3210" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3210', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">            <tt id="link-3211" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3211', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:ns0="http://myns" a="ns0:a"&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_qname_attrib_resolve"></a><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-def"><a name="L3393"></a><tt class="py-lineno">3393</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_qname_attrib_resolve-toggle" onclick="return toggle('_ETreeTestCaseBase.test_qname_attrib_resolve');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_qname_attrib_resolve-expanded"><a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">        <tt id="link-3212" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3206', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3207" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3212', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3213" class="py-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-3207', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3208" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3213', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3395"></a><tt class="py-lineno">3395</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-3214" class="py-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-3208', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3209', 'QName', 'link-3153');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3388"></a><tt class="py-lineno">3388</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3210" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3214', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3215" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-3215', 'QName', 'link-3159');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3216" class="py-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-3210', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3211" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3216', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3217" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3211', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3212" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3217', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3218" 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-3212', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">qname</tt> </tt>
-<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line"> </tt>
-<a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3213" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3213', 'assertXML', 'link-209');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line">            <tt id="link-3214" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3214', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"&gt;&lt;/ns0:a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_version"></a><div id="_ETreeTestCaseBase.test_parser_version-def"><a name="L3395"></a><tt class="py-lineno">3395</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_version-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_version');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_version-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_version-expanded"><a name="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line">        <tt id="link-3215" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3215', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3216" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3218', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">qname</tt> </tt>
+<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line"> </tt>
+<a name="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.assertXML" class="py-name" href="#" onclick="return doclink('link-3219', 'assertXML', 'link-217');">assertXML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3400"></a><tt class="py-lineno">3400</tt>  <tt class="py-line">            <tt id="link-3220" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3220', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ns0:a xmlns:ns0="http://myns" ns0:a="ns0:a"&gt;&lt;/ns0:a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_version"></a><div id="_ETreeTestCaseBase.test_parser_version-def"><a name="L3403"></a><tt class="py-lineno">3403</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_version-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_version');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_version-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_version-expanded"><a name="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">        <tt id="link-3221" class="py-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-3216', 'etree', 'link-9');">etree</a></tt> </tt>
-<a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line">        <tt id="link-3217" 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-3217', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3218" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3221', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3222" class="py-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-3218', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3219', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-3220" 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-3220', 'hasattr', 'link-3220');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3221" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3221', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"version"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line">            <tt class="py-comment"># ElementTree 1.3+, cET</tt> </tt>
-<a name="L3400"></a><tt class="py-lineno">3400</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"[^ ]+ [0-9.]+"</tt><tt class="py-op">,</tt> <tt id="link-3222" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3222', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">version</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line"> </tt>
-<a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line">    <tt class="py-comment"># feed parser interface</tt> </tt>
-<a name="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_bytes"></a><div id="_ETreeTestCaseBase.test_feed_parser_bytes-def"><a name="L3404"></a><tt class="py-lineno">3404</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_bytes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-expanded"><a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">        <tt id="link-3223" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3223', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3224" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3222', 'etree', 'link-9');">etree</a></tt> </tt>
+<a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">        <tt id="link-3223" 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-3223', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3224" class="py-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-3224', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3225" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3225', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line"> </tt>
-<a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line">        <tt id="link-3226" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3226', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3227" class="py-name" targets="Method lxml.etree._FeedParser.feed()=lxml.etree._FeedParser-class.html#feed"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3227', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3228" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3228', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3408"></a><tt class="py-lineno">3408</tt>  <tt class="py-line">        <tt id="link-3229" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3229', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3230" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3230', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3231" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3231', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">        <tt id="link-3232" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3232', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3233" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3233', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3234" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3234', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot&gt;&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">        <tt id="link-3235" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3235', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3236" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3236', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3237" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3237', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line">        <tt id="link-3238" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3238', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3239', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3240" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3240', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;&lt;/root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">        <tt id="link-3241" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3241', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3242', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3243" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3243', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3413"></a><tt class="py-lineno">3413</tt>  <tt class="py-line"> </tt>
-<a name="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line">        <tt id="link-3244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3244', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3245" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3245', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3246" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3246', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line"> </tt>
-<a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3247" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3247', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-3248" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3225', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-3226" 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-3226', 'hasattr', 'link-3226');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-3227" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3227', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-string">"version"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line">            <tt class="py-comment"># ElementTree 1.3+, cET</tt> </tt>
+<a name="L3408"></a><tt class="py-lineno">3408</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"[^ ]+ [0-9.]+"</tt><tt class="py-op">,</tt> <tt id="link-3228" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3228', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">version</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line"> </tt>
+<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">    <tt class="py-comment"># feed parser interface</tt> </tt>
+<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_bytes"></a><div id="_ETreeTestCaseBase.test_feed_parser_bytes-def"><a name="L3412"></a><tt class="py-lineno">3412</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_bytes-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_bytes-expanded"><a name="L3413"></a><tt class="py-lineno">3413</tt>  <tt class="py-line">        <tt id="link-3229" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3229', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3230" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3230', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line"> </tt>
+<a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line">        <tt id="link-3231" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3231', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3232" class="py-name" targets="Method lxml.etree._FeedParser.feed()=lxml.etree._FeedParser-class.html#feed"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3232', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3233" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3233', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">        <tt id="link-3234" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3234', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3235" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3235', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3236" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3236', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line">        <tt id="link-3237" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3237', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3238" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3238', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3239" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3239', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot&gt;&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3418"></a><tt class="py-lineno">3418</tt>  <tt class="py-line">        <tt id="link-3240" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3240', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3241" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3241', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3242" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3242', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line">        <tt id="link-3243" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3243', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3244" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3244', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3245" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3245', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;&lt;/root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3420"></a><tt class="py-lineno">3420</tt>  <tt class="py-line">        <tt id="link-3246" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3246', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3247" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3247', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3248" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3248', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3421"></a><tt class="py-lineno">3421</tt>  <tt class="py-line"> </tt>
+<a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line">        <tt id="link-3249" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3249', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3250" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3250', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3251" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3251', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line"> </tt>
+<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3252" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3252', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3253" 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-3248', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3249" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3249', 'root', 'link-42');">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-3250" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3253', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3254" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3254', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3255" 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-3250', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3418"></a><tt class="py-lineno">3418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3251" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3251', 'root', 'link-42');">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-3252" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3255', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3256" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3256', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3257" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3252', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_unicode"></a><div id="_ETreeTestCaseBase.test_feed_parser_unicode-def"><a name="L3420"></a><tt class="py-lineno">3420</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_unicode-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-expanded"><a name="L3421"></a><tt class="py-lineno">3421</tt>  <tt class="py-line">        <tt id="link-3253" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3253', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3254" class="py-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-3254', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3255" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3255', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line"> </tt>
-<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt id="link-3256" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3256', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3257" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3257', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3258" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3258', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line">        <tt id="link-3259" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3259', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3260" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3260', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3261" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3261', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot&gt;&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">        <tt id="link-3262" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3262', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3263', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3264" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3264', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">        <tt id="link-3265" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3265', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3266" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3266', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3267" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3267', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;&lt;/root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">        <tt id="link-3268" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3268', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3269" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3269', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3270" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3270', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line"> </tt>
-<a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line">        <tt id="link-3271" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3271', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3272" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3272', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3273" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3273', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3257', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_unicode"></a><div id="_ETreeTestCaseBase.test_feed_parser_unicode-def"><a name="L3428"></a><tt class="py-lineno">3428</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_unicode-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_unicode-expanded"><a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line">        <tt id="link-3258" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3258', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3259" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3259', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line"> </tt>
-<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3274" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3274', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-3275" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">        <tt id="link-3260" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3260', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3261', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3262" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3262', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ro'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3432"></a><tt class="py-lineno">3432</tt>  <tt class="py-line">        <tt id="link-3263" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3263', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3264" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3264', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3265" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3265', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot&gt;&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line">        <tt id="link-3266" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3266', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3267" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3267', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3268" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3268', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line">        <tt id="link-3269" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3269', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3270" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3270', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3271" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3271', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;&lt;/root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line">        <tt id="link-3272" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3272', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3273" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3273', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt id="link-3274" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3274', '_str', 'link-21');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3436"></a><tt class="py-lineno">3436</tt>  <tt class="py-line"> </tt>
+<a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">        <tt id="link-3275" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3275', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3276" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3276', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3277" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3277', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line"> </tt>
+<a name="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3278', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3279" 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-3275', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3432"></a><tt class="py-lineno">3432</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3276" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3276', 'root', 'link-42');">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-3277" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3279', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3280', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3281" 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-3277', 'tag', 'link-36');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3278', 'root', 'link-42');">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-3279" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3281', 'tag', 'link-44');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3282', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3283" 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-3279', 'get', 'link-325');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line"> </tt>
-<a name="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line">    <tt id="link-3280" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3280', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_empty'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_close_empty"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-def"><a name="L3436"></a><tt class="py-lineno">3436</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-expanded"><a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">        <tt id="link-3281" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3281', 'ParseError', 'link-2810');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3282" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3282', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3283" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3283', 'ParseError', 'link-2810');">ParseError</a></tt> </tt>
-<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line">        <tt id="link-3284" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3284', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3285" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3285', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3286" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3286', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3287" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3287', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3288" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3288', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3289" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3289', 'close', 'link-2696');">close</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line"> </tt>
-<a name="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line">    <tt id="link-3290" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3290', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_incomplete'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-def"><a name="L3442"></a><tt class="py-lineno">3442</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_incomplete');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-expanded"><a name="L3443"></a><tt class="py-lineno">3443</tt>  <tt class="py-line">        <tt id="link-3291" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3291', 'ParseError', 'link-2810');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3292" class="py-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-3292', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3293" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3293', 'ParseError', 'link-2810');">ParseError</a></tt> </tt>
-<a name="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt id="link-3294" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3294', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3295" class="py-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-3295', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3296" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3296', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line"> </tt>
-<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">        <tt id="link-3297" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3297', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3298" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3298', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
-<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">        <tt id="link-3299" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3299', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3300" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3300', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line"> </tt>
-<a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3301" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3301', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3302" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3302', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3303" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3303', 'close', 'link-2696');">close</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line"> </tt>
-<a name="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">    <tt id="link-3304" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3304', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_broken'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_broken"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-def"><a name="L3452"></a><tt class="py-lineno">3452</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_broken-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-expanded"><a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line">        <tt id="link-3305" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3305', 'ParseError', 'link-2810');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3306" class="py-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-3306', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3307" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3307', 'ParseError', 'link-2810');">ParseError</a></tt> </tt>
-<a name="L3454"></a><tt class="py-lineno">3454</tt>  <tt class="py-line">        <tt id="link-3308" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3308', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3309" class="py-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-3309', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3310" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3310', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3455"></a><tt class="py-lineno">3455</tt>  <tt class="py-line"> </tt>
-<a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line">        <tt id="link-3311" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3311', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3312" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3312', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
-<a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line">        <tt id="link-3313" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3313', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3314" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3314', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">            <tt id="link-3315" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3315', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3316" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3316', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3460"></a><tt class="py-lineno">3460</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-3317" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3317', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">            <tt class="py-comment"># can raise, but not required before close()</tt> </tt>
-<a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3283', 'get', 'link-333');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3442"></a><tt class="py-lineno">3442</tt>  <tt class="py-line"> </tt>
+<a name="L3443"></a><tt class="py-lineno">3443</tt>  <tt class="py-line">    <tt id="link-3284" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3284', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_empty'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_close_empty"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-def"><a name="L3444"></a><tt class="py-lineno">3444</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_empty-expanded"><a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt id="link-3285" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3285', 'ParseError', 'link-2817');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3286" class="py-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-3286', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3287" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3287', 'ParseError', 'link-2817');">ParseError</a></tt> </tt>
+<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">        <tt id="link-3288" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3288', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3289" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3289', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3290" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3290', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3291" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3291', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3292" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3292', 'close', 'link-2704');">close</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line"> </tt>
+<a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">    <tt id="link-3293" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3293', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_close_incomplete'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-def"><a name="L3450"></a><tt class="py-lineno">3450</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_close_incomplete');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_close_incomplete-expanded"><a name="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">        <tt id="link-3294" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3294', 'ParseError', 'link-2817');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3295" class="py-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-3295', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3296" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3296', 'ParseError', 'link-2817');">ParseError</a></tt> </tt>
+<a name="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line">        <tt id="link-3297" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3297', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3298" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3298', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line"> </tt>
+<a name="L3454"></a><tt class="py-lineno">3454</tt>  <tt class="py-line">        <tt id="link-3299" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3299', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3300" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3300', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
+<a name="L3455"></a><tt class="py-lineno">3455</tt>  <tt class="py-line">        <tt id="link-3301" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3301', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3302" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3302', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line"> </tt>
+<a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3303" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3303', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3304" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3304', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3305" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3305', 'close', 'link-2704');">close</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line"> </tt>
+<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">    <tt id="link-3306" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3306', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_broken'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_broken"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-def"><a name="L3460"></a><tt class="py-lineno">3460</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_broken-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_broken-expanded"><a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">        <tt id="link-3307" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3307', 'ParseError', 'link-2817');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3308" class="py-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-3308', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3309" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3309', 'ParseError', 'link-2817');">ParseError</a></tt> </tt>
+<a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line">        <tt id="link-3310" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3310', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3311" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3311', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line"> </tt>
-<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3318" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3318', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3319" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3319', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3320" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3320', 'close', 'link-2696');">close</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line"> </tt>
-<a name="L3466"></a><tt class="py-lineno">3466</tt>  <tt class="py-line">    <tt id="link-3321" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3321', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_position'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_feed_parser_error_position"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_position-def"><a name="L3467"></a><tt class="py-lineno">3467</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_position-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_position');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-expanded"><a name="L3468"></a><tt class="py-lineno">3468</tt>  <tt class="py-line">        <tt id="link-3322" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3322', 'ParseError', 'link-2810');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3323" class="py-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-3323', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3324" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3324', 'ParseError', 'link-2810');">ParseError</a></tt> </tt>
-<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">        <tt id="link-3325" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3325', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3326" class="py-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-3326', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3327" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3327', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3470"></a><tt class="py-lineno">3470</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3471"></a><tt class="py-lineno">3471</tt>  <tt class="py-line">            <tt id="link-3328" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3328', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3329" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3329', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-3330" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3330', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
-<a name="L3475"></a><tt class="py-lineno">3475</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
-<a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">position</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3478"></a><tt class="py-lineno">3478</tt>  <tt class="py-line"> </tt>
-<a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">    <tt class="py-comment"># parser target interface</tt> </tt>
-<a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line"> </tt>
-<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">    <tt id="link-3331" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3331', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_property'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_property"></a><div id="_ETreeTestCaseBase.test_parser_target_property-def"><a name="L3482"></a><tt class="py-lineno">3482</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_property-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_property');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_property-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_property-expanded"><a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line"> </tt>
-<a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line">        <tt id="link-3332" 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-3332', 'target', 'link-3332');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">        <tt id="link-3333" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3333', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3334" class="py-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-3334', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3335" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3335', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3336" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3336', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt id="link-3337" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3337', 'target', 'link-3332');">target</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt id="link-3312" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3312', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3313" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3313', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
+<a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line">        <tt id="link-3314" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3314', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3315" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3315', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3466"></a><tt class="py-lineno">3466</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3467"></a><tt class="py-lineno">3467</tt>  <tt class="py-line">            <tt id="link-3316" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3316', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3317" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3317', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;&gt;&lt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3468"></a><tt class="py-lineno">3468</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-3318" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3318', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">            <tt class="py-comment"># can raise, but not required before close()</tt> </tt>
+<a name="L3470"></a><tt class="py-lineno">3470</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L3471"></a><tt class="py-lineno">3471</tt>  <tt class="py-line"> </tt>
+<a name="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-3319" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3319', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3320" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3320', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3321" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3321', 'close', 'link-2704');">close</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line"> </tt>
+<a name="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line">    <tt id="link-3322" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3322', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_feed_parser_error_position'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_feed_parser_error_position"></a><div id="_ETreeTestCaseBase.test_feed_parser_error_position-def"><a name="L3475"></a><tt class="py-lineno">3475</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_feed_parser_error_position-toggle" onclick="return toggle('_ETreeTestCaseBase.test_feed_parser_error_position');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_feed_parser_error_position-expanded"><a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">        <tt id="link-3323" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3323', 'ParseError', 'link-2817');">ParseError</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3324" class="py-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-3324', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3325', 'ParseError', 'link-2817');">ParseError</a></tt> </tt>
+<a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line">        <tt id="link-3326" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3326', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3327" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3327', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3478"></a><tt class="py-lineno">3478</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">            <tt id="link-3328" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3328', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3329" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3329', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-3330" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3330', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
+<a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">code</tt><tt class="py-op">)</tt> </tt>
+<a name="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">position</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line"> </tt>
+<a name="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">    <tt class="py-comment"># parser target interface</tt> </tt>
 <a name="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line"> </tt>
-<a name="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3338" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3338', 'target', 'link-3332');">target</a></tt><tt class="py-op">,</tt> <tt id="link-3339" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3339', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3340" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3340', 'target', 'link-3332');">target</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3490"></a><tt class="py-lineno">3490</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_tag"></a><div id="_ETreeTestCaseBase.test_parser_target_tag-def"><a name="L3491"></a><tt class="py-lineno">3491</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_tag-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_tag-expanded"><a name="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line">        <tt id="link-3341" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3341', 'assertFalse', 'link-115');">assertFalse</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3342" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3342', 'assertFalse', 'link-115');">assertFalse</a></tt> </tt>
-<a name="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line"> </tt>
-<a name="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3343" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3343', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3499"></a><tt class="py-lineno">3499</tt>  <tt class="py-line">                <tt id="link-3344" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3344', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-3345" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line">    <tt id="link-3331" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3331', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_property'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_property"></a><div id="_ETreeTestCaseBase.test_parser_target_property-def"><a name="L3490"></a><tt class="py-lineno">3490</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_property-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_property');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_property-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_property-expanded"><a name="L3491"></a><tt class="py-lineno">3491</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line"> </tt>
+<a name="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line">        <tt id="link-3332" 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-3332', 'target', 'link-3332');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line">        <tt id="link-3333" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3333', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3334" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3334', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3335" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3335', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt id="link-3336" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3336', 'target', 'link-3332');">target</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line"> </tt>
+<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3337" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3337', 'target', 'link-3332');">target</a></tt><tt class="py-op">,</tt> <tt id="link-3338" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3338', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3339" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3339', 'target', 'link-3332');">target</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_tag"></a><div id="_ETreeTestCaseBase.test_parser_target_tag-def"><a name="L3499"></a><tt class="py-lineno">3499</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_tag-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_tag-expanded"><a name="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line">        <tt id="link-3340" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3340', 'assertFalse', 'link-123');">assertFalse</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3341" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3341', 'assertFalse', 'link-123');">assertFalse</a></tt> </tt>
+<a name="L3502"></a><tt class="py-lineno">3502</tt>  <tt class="py-line"> </tt>
+<a name="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3342" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3342', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line">                <tt id="link-3343" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3343', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-3344" 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-3345', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3346" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3344', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3345" 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-3346', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3502"></a><tt class="py-lineno">3502</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3347" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3347', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3348" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3345', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3346" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3346', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3347" 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-3348', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line"> </tt>
-<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line">        <tt id="link-3349" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3349', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3350" class="py-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-3350', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3351" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3351', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3352" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3352', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line"> </tt>
-<a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line">        <tt id="link-3353" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3353', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3354" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3354', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3355" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3355', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3356" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3356', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line"> </tt>
-<a name="L3512"></a><tt class="py-lineno">3512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_start"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-def"><a name="L3515"></a><tt class="py-lineno">3515</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-expanded"><a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line"> </tt>
-<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3520"></a><tt class="py-lineno">3520</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3521"></a><tt class="py-lineno">3521</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3357" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3357', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3358" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3347', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3512"></a><tt class="py-lineno">3512</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line"> </tt>
+<a name="L3515"></a><tt class="py-lineno">3515</tt>  <tt class="py-line">        <tt id="link-3348" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3348', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3349" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3349', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3350" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3350', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line"> </tt>
+<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">        <tt id="link-3351" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3351', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3352" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3352', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3353" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3353', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3354" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3354', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line"> </tt>
+<a name="L3520"></a><tt class="py-lineno">3520</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3521"></a><tt class="py-lineno">3521</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_start"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-def"><a name="L3523"></a><tt class="py-lineno">3523</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start-expanded"><a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line"> </tt>
+<a name="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3355" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3355', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3356" 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-3358', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3523"></a><tt class="py-lineno">3523</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3359" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3359', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3360" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3356', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3357" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3357', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3358" 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-3360', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line"> </tt>
-<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">        <tt id="link-3361" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3361', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3362" class="py-name"><a title="lxml.etree
-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-3362', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3363" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3363', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3364" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3364', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line"> </tt>
-<a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">            <tt id="link-3365" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3365', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3366" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3366', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3367" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3367', 'str', 'link-677');">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="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3537"></a><tt class="py-lineno">3537</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="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3368" class="py-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-3368', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3539"></a><tt class="py-lineno">3539</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">            <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
-<a name="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_end"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-def"><a name="L3544"></a><tt class="py-lineno">3544</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-expanded"><a name="L3545"></a><tt class="py-lineno">3545</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line"> </tt>
-<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3369" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3369', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3370" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3358', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3537"></a><tt class="py-lineno">3537</tt>  <tt class="py-line"> </tt>
+<a name="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">        <tt id="link-3359" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3359', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3360" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3360', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3361" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3361', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3539"></a><tt class="py-lineno">3539</tt>  <tt class="py-line"> </tt>
+<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">            <tt id="link-3362" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3362', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3363" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3363', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3364" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3364', 'str', 'link-685');">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="L3544"></a><tt class="py-lineno">3544</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3545"></a><tt class="py-lineno">3545</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3365" class="py-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-3365', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">            <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
+<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_end"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-def"><a name="L3552"></a><tt class="py-lineno">3552</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_end-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_end-expanded"><a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3554"></a><tt class="py-lineno">3554</tt>  <tt class="py-line"> </tt>
+<a name="L3555"></a><tt class="py-lineno">3555</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3366" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3366', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3367" 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-3370', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3552"></a><tt class="py-lineno">3552</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3371" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3371', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3554"></a><tt class="py-lineno">3554</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3372" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3367', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3368" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3368', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3369" 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-3372', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3555"></a><tt class="py-lineno">3555</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line"> </tt>
-<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">        <tt id="link-3373" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3373', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3374" class="py-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-3374', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3375" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3375', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3376" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3376', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line"> </tt>
-<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line">            <tt id="link-3377" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3377', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3378" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3378', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3379" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3379', 'str', 'link-677');">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="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line">            <tt class="py-name">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="L3567"></a><tt class="py-lineno">3567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-def"><a name="L3569"></a><tt class="py-lineno">3569</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-expanded"><a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line"> </tt>
-<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3574"></a><tt class="py-lineno">3574</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3575"></a><tt class="py-lineno">3575</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3380" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3380', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3381" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3369', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line"> </tt>
+<a name="L3567"></a><tt class="py-lineno">3567</tt>  <tt class="py-line">        <tt id="link-3370" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3370', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3371" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3371', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3372" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3372', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line"> </tt>
+<a name="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">            <tt id="link-3373" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3373', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3374" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3374', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3375" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3375', 'str', 'link-685');">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="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3574"></a><tt class="py-lineno">3574</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="L3575"></a><tt class="py-lineno">3575</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-def"><a name="L3577"></a><tt class="py-lineno">3577</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_close-expanded"><a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line"> </tt>
+<a name="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3582"></a><tt class="py-lineno">3582</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3376" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3376', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3377" 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-3381', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3382" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3382', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3383" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3377', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3378" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3378', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3379" 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-3383', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3582"></a><tt class="py-lineno">3582</tt>  <tt class="py-line"> </tt>
-<a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt id="link-3384" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3384', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3385" class="py-name"><a title="lxml.etree
-lxml.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-3385', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3386" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3386', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3387" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3387', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line"> </tt>
-<a name="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line">            <tt id="link-3388" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3388', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3389" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3389', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line">            <tt id="link-3390" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3390', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3391" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3391', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3588"></a><tt class="py-lineno">3588</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3392" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3392', 'str', 'link-677');">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="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-def"><a name="L3594"></a><tt class="py-lineno">3594</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start_and_close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-expanded"><a name="L3595"></a><tt class="py-lineno">3595</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line"> </tt>
-<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3599"></a><tt class="py-lineno">3599</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3393" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3393', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3394" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3379', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3588"></a><tt class="py-lineno">3588</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line"> </tt>
+<a name="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">        <tt id="link-3380" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3380', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3381" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3381', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3382" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3382', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line"> </tt>
+<a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line">            <tt id="link-3383" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3383', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3384" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3384', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3595"></a><tt class="py-lineno">3595</tt>  <tt class="py-line">            <tt id="link-3385" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3385', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3386" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3386', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST'</tt> <tt class="py-keyword">in</tt> <tt id="link-3387" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3387', 'str', 'link-685');">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="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3599"></a><tt class="py-lineno">3599</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="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close"></a><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-def"><a name="L3602"></a><tt class="py-lineno">3602</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_error_in_start_and_close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_error_in_start_and_close-expanded"><a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3604"></a><tt class="py-lineno">3604</tt>  <tt class="py-line"> </tt>
+<a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3388" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3388', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3389" 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-3394', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-IE"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3604"></a><tt class="py-lineno">3604</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3395', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3396" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3389', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">IndexError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-IE"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3390" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3390', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3391" 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-3396', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-VE"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line"> </tt>
-<a name="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line">        <tt id="link-3397" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3397', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3398" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3391', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"TEST-VE"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3616"></a><tt class="py-lineno">3616</tt>  <tt class="py-line"> </tt>
+<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line">        <tt id="link-3392" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3392', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3393" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3393', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3394" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3394', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line"> </tt>
+<a name="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">            <tt id="link-3395" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3395', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3396" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3396', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">            <tt id="link-3397" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3397', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3398" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3398', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3399" class="py-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-3398', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3399" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3399', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3400" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3400', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line"> </tt>
-<a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-line">            <tt id="link-3401" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3401', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3402" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3402', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">            <tt id="link-3403" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3403', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3404" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3404', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3405" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3399', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3624"></a><tt class="py-lineno">3624</tt>  <tt class="py-line">                <tt class="py-comment"># we try not to swallow the initial exception in Py2</tt> </tt>
+<a name="L3625"></a><tt class="py-lineno">3625</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-IE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3400" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3400', 'str', 'link-685');">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="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3401" class="py-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-3405', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3616"></a><tt class="py-lineno">3616</tt>  <tt class="py-line">                <tt class="py-comment"># we try not to swallow the initial exception in Py2</tt> </tt>
-<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-IE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3406" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3406', 'str', 'link-677');">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="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3407" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3401', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L3630"></a><tt class="py-lineno">3630</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-VE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3402" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3402', 'str', 'link-685');">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="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3632"></a><tt class="py-lineno">3632</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line"> </tt>
+<a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3403" class="py-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-3407', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;=</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">'TEST-VE'</tt> <tt class="py-keyword">in</tt> <tt id="link-3408" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3408', 'str', 'link-677');">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="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3624"></a><tt class="py-lineno">3624</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="L3625"></a><tt class="py-lineno">3625</tt>  <tt class="py-line"> </tt>
-<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'lxml'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3409" class="py-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-3409', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
-<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line">            <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
-<a name="L3630"></a><tt class="py-lineno">3630</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_elementtree_parser_target"></a><div id="_ETreeTestCaseBase.test_elementtree_parser_target-def"><a name="L3632"></a><tt class="py-lineno">3632</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_parser_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_parser_target');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-expanded"><a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line">        <tt id="link-3410" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3410', 'assertFalse', 'link-115');">assertFalse</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3411" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3411', 'assertFalse', 'link-115');">assertFalse</a></tt> </tt>
-<a name="L3635"></a><tt class="py-lineno">3635</tt>  <tt class="py-line">        <tt id="link-3412" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3403', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">:</tt> </tt>
+<a name="L3635"></a><tt class="py-lineno">3635</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">            <tt class="py-comment"># cElementTree calls end() as well</tt> </tt>
+<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_elementtree_parser_target"></a><div id="_ETreeTestCaseBase.test_elementtree_parser_target-def"><a name="L3640"></a><tt class="py-lineno">3640</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_elementtree_parser_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_elementtree_parser_target');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_elementtree_parser_target-expanded"><a name="L3641"></a><tt class="py-lineno">3641</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-line">        <tt id="link-3404" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3404', 'assertFalse', 'link-123');">assertFalse</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3405" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3405', 'assertFalse', 'link-123');">assertFalse</a></tt> </tt>
+<a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">        <tt id="link-3406" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3412', 'Element', 'link-35');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3413" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3406', 'Element', 'link-43');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3407" class="py-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-3413', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3414" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3407', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3408" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3414', 'Element', 'link-35');">Element</a></tt> </tt>
-<a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line"> </tt>
-<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3640"></a><tt class="py-lineno">3640</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3415" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3415', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3641"></a><tt class="py-lineno">3641</tt>  <tt class="py-line">                <tt id="link-3416" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3416', 'assertFalse', 'link-115');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-3417" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3408', 'Element', 'link-43');">Element</a></tt> </tt>
+<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-line"> </tt>
+<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3409" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3409', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">                <tt id="link-3410" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-3410', 'assertFalse', 'link-123');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-3411" 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-3417', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3418" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3411', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3650"></a><tt class="py-lineno">3650</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3412" 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-3418', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3419" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3419', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3420" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3412', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3652"></a><tt class="py-lineno">3652</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3413" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3413', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-3414" 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-3420', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt id="link-3421" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3414', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3655"></a><tt class="py-lineno">3655</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt id="link-3415" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3421', 'Element', 'link-35');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line"> </tt>
-<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">        <tt id="link-3422" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3422', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3423" class="py-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-3423', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3424', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3425" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3425', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3650"></a><tt class="py-lineno">3650</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-3426" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3415', 'Element', 'link-43');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line"> </tt>
+<a name="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line">        <tt id="link-3416" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3416', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3417" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3417', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3418" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3418', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3658"></a><tt class="py-lineno">3658</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-3419" class="py-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-3426', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3427" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3419', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3420" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3427', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3428" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3420', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3421" 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-3428', 'parse', 'link-2409');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3429" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3429', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">=</tt><tt id="link-3430" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3430', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3652"></a><tt class="py-lineno">3652</tt>  <tt class="py-line"> </tt>
-<a name="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3431" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3431', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3432" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3421', 'parse', 'link-2417');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3422" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3422', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">=</tt><tt id="link-3423" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3423', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line"> </tt>
+<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3424', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3425" 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-3432', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3655"></a><tt class="py-lineno">3655</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_attrib"></a><div id="_ETreeTestCaseBase.test_parser_target_attrib-def"><a name="L3656"></a><tt class="py-lineno">3656</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_attrib-expanded"><a name="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L3658"></a><tt class="py-lineno">3658</tt>  <tt class="py-line"> </tt>
-<a name="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3433" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3433', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3434" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3425', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3663"></a><tt class="py-lineno">3663</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_attrib"></a><div id="_ETreeTestCaseBase.test_parser_target_attrib-def"><a name="L3664"></a><tt class="py-lineno">3664</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_attrib-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_attrib-expanded"><a name="L3665"></a><tt class="py-lineno">3665</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line"> </tt>
+<a name="L3667"></a><tt class="py-lineno">3667</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3668"></a><tt class="py-lineno">3668</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3426', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3427" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3434', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3663"></a><tt class="py-lineno">3663</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt id="link-3435" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3427', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt id="link-3428" 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-3435', 'name', 'link-3435');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3436" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-3428', 'name', 'link-3428');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3429" 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-3436', 'value', 'link-1108');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-3437" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-3429', 'value', 'link-1116');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-3430" 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-3437', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3438" class="py-name"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3430', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-3431" 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-3438', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3664"></a><tt class="py-lineno">3664</tt>  <tt class="py-line">                    <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3439" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3431', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">                    <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3432" 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-3439', 'tag', 'link-36');">tag</a></tt> <tt class="py-op">+</tt> <tt id="link-3440" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3432', 'tag', 'link-44');">tag</a></tt> <tt class="py-op">+</tt> <tt id="link-3433" 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-3440', 'name', 'link-3435');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3441" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-3433', 'name', 'link-3428');">name</a></tt><tt class="py-op">,</tt> <tt id="link-3434" 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-3441', 'value', 'link-1108');">value</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3665"></a><tt class="py-lineno">3665</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3442" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3442', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3443" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-3434', 'value', 'link-1116');">value</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3435" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3435', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3436" 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-3443', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3667"></a><tt class="py-lineno">3667</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3668"></a><tt class="py-lineno">3668</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line"> </tt>
-<a name="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line">        <tt id="link-3444" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3444', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3445" class="py-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-3445', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3446" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3446', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3447" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3447', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line"> </tt>
-<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">        <tt id="link-3448" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3448', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3449" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3449', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root a="roota" b="rootb"&gt;&lt;sub c="subc"/&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3450" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3450', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3451" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3451', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line"> </tt>
-<a name="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3676"></a><tt class="py-lineno">3676</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_data"></a><div id="_ETreeTestCaseBase.test_parser_target_data-def"><a name="L3679"></a><tt class="py-lineno">3679</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_data-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_data-expanded"><a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3452" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3452', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3453" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3436', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3676"></a><tt class="py-lineno">3676</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line"> </tt>
+<a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line">        <tt id="link-3437" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3437', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3438" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3438', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3439" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3439', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3679"></a><tt class="py-lineno">3679</tt>  <tt class="py-line"> </tt>
+<a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">        <tt id="link-3440" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3440', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3441', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root a="roota" b="rootb"&gt;&lt;sub c="subc"/&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3442" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3442', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3443" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3443', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line"> </tt>
+<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3684"></a><tt class="py-lineno">3684</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_data"></a><div id="_ETreeTestCaseBase.test_parser_target_data-def"><a name="L3687"></a><tt class="py-lineno">3687</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_data-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_data-expanded"><a name="L3688"></a><tt class="py-lineno">3688</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3690"></a><tt class="py-lineno">3690</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3444" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3444', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3445" 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-3453', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3684"></a><tt class="py-lineno">3684</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3454" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3454', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3455" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3445', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3692"></a><tt class="py-lineno">3692</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3446" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3446', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3447" 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-3455', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3456" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3456', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-3457" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3457', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3688"></a><tt class="py-lineno">3688</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3690"></a><tt class="py-lineno">3690</tt>  <tt class="py-line"> </tt>
-<a name="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line">        <tt id="link-3458" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3458', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3459" class="py-name"><a title="lxml.etree
-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-3459', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3460" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3460', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3461" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3461', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3692"></a><tt class="py-lineno">3692</tt>  <tt class="py-line"> </tt>
-<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line">        <tt id="link-3462" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3462', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3463" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3463', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;sub/&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3464" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3464', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3465" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3465', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3695"></a><tt class="py-lineno">3695</tt>  <tt class="py-line"> </tt>
-<a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line">                           <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_entity"></a><div id="_ETreeTestCaseBase.test_parser_target_entity-def"><a name="L3701"></a><tt class="py-lineno">3701</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_entity-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity-expanded"><a name="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3704"></a><tt class="py-lineno">3704</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="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3707"></a><tt class="py-lineno">3707</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
-<a name="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line">                    <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3466" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3466', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3709"></a><tt class="py-lineno">3709</tt>  <tt class="py-line">                    <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3712"></a><tt class="py-lineno">3712</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3467" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3467', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3468" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3447', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3695"></a><tt class="py-lineno">3695</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3448" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3448', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-3449" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3449', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line"> </tt>
+<a name="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">        <tt id="link-3450" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3450', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3451" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3451', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3452" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3452', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line"> </tt>
+<a name="L3701"></a><tt class="py-lineno">3701</tt>  <tt class="py-line">        <tt id="link-3453" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3453', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3454" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3454', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;sub/&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3455" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3455', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3456" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3456', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line"> </tt>
+<a name="L3704"></a><tt class="py-lineno">3704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line">                           <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3707"></a><tt class="py-lineno">3707</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_entity"></a><div id="_ETreeTestCaseBase.test_parser_target_entity-def"><a name="L3709"></a><tt class="py-lineno">3709</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_entity-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity-expanded"><a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3712"></a><tt class="py-lineno">3712</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="L3713"></a><tt class="py-lineno">3713</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3715"></a><tt class="py-lineno">3715</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
+<a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">                    <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3457" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3457', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3717"></a><tt class="py-lineno">3717</tt>  <tt class="py-line">                    <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3718"></a><tt class="py-lineno">3718</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3719"></a><tt class="py-lineno">3719</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3720"></a><tt class="py-lineno">3720</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3458" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3458', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3459" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3468', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3713"></a><tt class="py-lineno">3713</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3715"></a><tt class="py-lineno">3715</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3469" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3469', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3470" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3459', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3723"></a><tt class="py-lineno">3723</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3460" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3460', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3461" 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-3470', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3717"></a><tt class="py-lineno">3717</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3471" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3471', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-3472" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3472', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3718"></a><tt class="py-lineno">3718</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3719"></a><tt class="py-lineno">3719</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3720"></a><tt class="py-lineno">3720</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line"> </tt>
-<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line">        <tt id="link-3473" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3473', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3474" class="py-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-3474', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3475" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3475', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3476" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3476', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3723"></a><tt class="py-lineno">3723</tt>  <tt class="py-line"> </tt>
-<a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line">        <tt class="py-name">dtd</tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
-<a name="L3725"></a><tt class="py-lineno">3725</tt>  <tt class="py-line"><tt class="py-string">            &lt;!DOCTYPE root [</tt> </tt>
-<a name="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line"><tt class="py-string">            &lt;!ELEMENT root (sub*)&gt;</tt> </tt>
-<a name="L3727"></a><tt class="py-lineno">3727</tt>  <tt class="py-line"><tt class="py-string">            &lt;!ELEMENT sub (#PCDATA)&gt;</tt> </tt>
-<a name="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line"><tt class="py-string">            &lt;!ENTITY ent "an entity"&gt;</tt> </tt>
-<a name="L3729"></a><tt class="py-lineno">3729</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L3730"></a><tt class="py-lineno">3730</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
-<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line">        <tt id="link-3477" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3477', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3478" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3478', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;root&gt;&lt;sub/&gt;&lt;sub&gt;this is &amp;ent;&lt;/sub&gt;&lt;sub/&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3479" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3479', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3480" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3480', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3733"></a><tt class="py-lineno">3733</tt>  <tt class="py-line"> </tt>
-<a name="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line">                           <tt class="py-string">"data-this is an entity"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3737"></a><tt class="py-lineno">3737</tt>  <tt class="py-line">                           <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3738"></a><tt class="py-lineno">3738</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line"> </tt>
-<a name="L3740"></a><tt class="py-lineno">3740</tt>  <tt class="py-line">    <tt id="link-3481" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3481', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_entity_unknown'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="_ETreeTestCaseBase.test_parser_target_entity_unknown"></a><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-def"><a name="L3741"></a><tt class="py-lineno">3741</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-expanded"><a name="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3743"></a><tt class="py-lineno">3743</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3744"></a><tt class="py-lineno">3744</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="L3745"></a><tt class="py-lineno">3745</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3746"></a><tt class="py-lineno">3746</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3747"></a><tt class="py-lineno">3747</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
-<a name="L3748"></a><tt class="py-lineno">3748</tt>  <tt class="py-line">                    <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3482" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3482', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3749"></a><tt class="py-lineno">3749</tt>  <tt class="py-line">                    <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3750"></a><tt class="py-lineno">3750</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3751"></a><tt class="py-lineno">3751</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3752"></a><tt class="py-lineno">3752</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3483" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3483', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3484" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3461', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3725"></a><tt class="py-lineno">3725</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3462" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3462', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-3463" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3463', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3727"></a><tt class="py-lineno">3727</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3729"></a><tt class="py-lineno">3729</tt>  <tt class="py-line"> </tt>
+<a name="L3730"></a><tt class="py-lineno">3730</tt>  <tt class="py-line">        <tt id="link-3464" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3464', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3465" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3465', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3466" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3466', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line"> </tt>
+<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">        <tt class="py-name">dtd</tt> <tt class="py-op">=</tt> <tt class="py-string">'''</tt> </tt>
+<a name="L3733"></a><tt class="py-lineno">3733</tt>  <tt class="py-line"><tt class="py-string">            &lt;!DOCTYPE root [</tt> </tt>
+<a name="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line"><tt class="py-string">            &lt;!ELEMENT root (sub*)&gt;</tt> </tt>
+<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line"><tt class="py-string">            &lt;!ELEMENT sub (#PCDATA)&gt;</tt> </tt>
+<a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line"><tt class="py-string">            &lt;!ENTITY ent "an entity"&gt;</tt> </tt>
+<a name="L3737"></a><tt class="py-lineno">3737</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L3738"></a><tt class="py-lineno">3738</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> </tt>
+<a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line">        <tt id="link-3467" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3467', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3468" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3468', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;root&gt;&lt;sub/&gt;&lt;sub&gt;this is &amp;ent;&lt;/sub&gt;&lt;sub/&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3740"></a><tt class="py-lineno">3740</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-3469" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3469', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3470" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3470', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3741"></a><tt class="py-lineno">3741</tt>  <tt class="py-line"> </tt>
+<a name="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L3743"></a><tt class="py-lineno">3743</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3744"></a><tt class="py-lineno">3744</tt>  <tt class="py-line">                           <tt class="py-string">"data-this is an entity"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3745"></a><tt class="py-lineno">3745</tt>  <tt class="py-line">                           <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3746"></a><tt class="py-lineno">3746</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3747"></a><tt class="py-lineno">3747</tt>  <tt class="py-line"> </tt>
+<a name="L3748"></a><tt class="py-lineno">3748</tt>  <tt class="py-line">    <tt id="link-3471" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3471', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">[</tt><tt class="py-string">'test_parser_target_entity_unknown'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="_ETreeTestCaseBase.test_parser_target_entity_unknown"></a><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-def"><a name="L3749"></a><tt class="py-lineno">3749</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_parser_target_entity_unknown-toggle" onclick="return toggle('_ETreeTestCaseBase.test_parser_target_entity_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_parser_target_entity_unknown-expanded"><a name="L3750"></a><tt class="py-lineno">3750</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3751"></a><tt class="py-lineno">3751</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3752"></a><tt class="py-lineno">3752</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="L3753"></a><tt class="py-lineno">3753</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3754"></a><tt class="py-lineno">3754</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3755"></a><tt class="py-lineno">3755</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
+<a name="L3756"></a><tt class="py-lineno">3756</tt>  <tt class="py-line">                    <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3472" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3472', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3757"></a><tt class="py-lineno">3757</tt>  <tt class="py-line">                    <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3758"></a><tt class="py-lineno">3758</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3759"></a><tt class="py-lineno">3759</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3760"></a><tt class="py-lineno">3760</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3473" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3473', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-3474" 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-3484', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3753"></a><tt class="py-lineno">3753</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3754"></a><tt class="py-lineno">3754</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3755"></a><tt class="py-lineno">3755</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3485', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3486" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3474', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3761"></a><tt class="py-lineno">3761</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3762"></a><tt class="py-lineno">3762</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3763"></a><tt class="py-lineno">3763</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-3475" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3475', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-3476" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3486', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3756"></a><tt class="py-lineno">3756</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3757"></a><tt class="py-lineno">3757</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3487" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3487', 'append', 'link-45');">append</a></tt><tt class="py-op">(</tt><tt id="link-3488" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3488', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3758"></a><tt class="py-lineno">3758</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3759"></a><tt class="py-lineno">3759</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3760"></a><tt class="py-lineno">3760</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L3761"></a><tt class="py-lineno">3761</tt>  <tt class="py-line"> </tt>
-<a name="L3762"></a><tt class="py-lineno">3762</tt>  <tt class="py-line">        <tt id="link-3489" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3489', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3490" class="py-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-3490', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3491" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3491', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3492" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3492', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3763"></a><tt class="py-lineno">3763</tt>  <tt class="py-line"> </tt>
-<a name="L3764"></a><tt class="py-lineno">3764</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">feed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3765"></a><tt class="py-lineno">3765</tt>  <tt class="py-line">            <tt id="link-3493" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3493', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3494" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3494', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;sub/&gt;&lt;sub&gt;some &amp;ent;&lt;/sub&gt;&lt;sub/&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3766"></a><tt class="py-lineno">3766</tt>  <tt class="py-line">            <tt id="link-3495" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3495', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3496" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3496', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3767"></a><tt class="py-lineno">3767</tt>  <tt class="py-line"> </tt>
-<a name="L3768"></a><tt class="py-lineno">3768</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3497" class="py-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-3497', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3498" class="py-name"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3498', 'ParseError', 'link-2810');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3499" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3499', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3769"></a><tt class="py-lineno">3769</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_treebuilder"></a><div id="_ETreeTestCaseBase.test_treebuilder-def"><a name="L3770"></a><tt class="py-lineno">3770</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_treebuilder-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder-expanded"><a name="L3771"></a><tt class="py-lineno">3771</tt>  <tt class="py-line">        <tt id="link-3500" class="py-name" targets="Module lxml.builder=lxml.builder-module.html,Module lxml.html.builder=lxml.html.builder-module.html"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3500', 'builder', 'link-3500');">builder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3501" class="py-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-3501', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3502" class="py-name" targets="Class lxml.etree.TreeBuilder=lxml.etree.TreeBuilder-class.html,Class xml.etree.ElementTree.TreeBuilder=xml.etree.ElementTree.TreeBuilder-class.html"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3502', 'TreeBuilder', 'link-3502');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3772"></a><tt class="py-lineno">3772</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3503" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3503', 'builder', 'link-3500');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3504" 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-3504', 'start', 'link-3504');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L3773"></a><tt class="py-lineno">3773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3505" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3476', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3764"></a><tt class="py-lineno">3764</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3765"></a><tt class="py-lineno">3765</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-3477" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3477', 'append', 'link-53');">append</a></tt><tt class="py-op">(</tt><tt id="link-3478" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3478', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3766"></a><tt class="py-lineno">3766</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3767"></a><tt class="py-lineno">3767</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush_data</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3768"></a><tt class="py-lineno">3768</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L3769"></a><tt class="py-lineno">3769</tt>  <tt class="py-line"> </tt>
+<a name="L3770"></a><tt class="py-lineno">3770</tt>  <tt class="py-line">        <tt id="link-3479" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3479', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3480" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3480', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3481" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3481', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3771"></a><tt class="py-lineno">3771</tt>  <tt class="py-line"> </tt>
+<a name="L3772"></a><tt class="py-lineno">3772</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">feed</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3773"></a><tt class="py-lineno">3773</tt>  <tt class="py-line">            <tt id="link-3482" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3482', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3483" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3483', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;sub/&gt;&lt;sub&gt;some &amp;ent;&lt;/sub&gt;&lt;sub/&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3774"></a><tt class="py-lineno">3774</tt>  <tt class="py-line">            <tt id="link-3484" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3484', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3485', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3775"></a><tt class="py-lineno">3775</tt>  <tt class="py-line"> </tt>
+<a name="L3776"></a><tt class="py-lineno">3776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3486" class="py-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-3486', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3487" class="py-name"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-3487', 'ParseError', 'link-2817');">ParseError</a></tt><tt class="py-op">,</tt> <tt id="link-3488" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3488', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3777"></a><tt class="py-lineno">3777</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_treebuilder"></a><div id="_ETreeTestCaseBase.test_treebuilder-def"><a name="L3778"></a><tt class="py-lineno">3778</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_treebuilder-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder-expanded"><a name="L3779"></a><tt class="py-lineno">3779</tt>  <tt class="py-line">        <tt id="link-3489" class="py-name" targets="Module lxml.builder=lxml.builder-module.html,Module lxml.html.builder=lxml.html.builder-module.html"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3489', 'builder', 'link-3489');">builder</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3490" class="py-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-3490', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3491" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3491', 'TreeBuilder', 'link-40');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3780"></a><tt class="py-lineno">3780</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3492" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3492', 'builder', 'link-3489');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3493" 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-3493', 'start', 'link-3493');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L3781"></a><tt class="py-lineno">3781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3494" 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-3505', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3774"></a><tt class="py-lineno">3774</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3506" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3494', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3782"></a><tt class="py-lineno">3782</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'a'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">:</tt><tt class="py-string">'B'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3495" 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-3506', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3775"></a><tt class="py-lineno">3775</tt>  <tt class="py-line">        <tt id="link-3507" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3507', 'builder', 'link-3500');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3508" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3508', 'data', 'link-1035');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3776"></a><tt class="py-lineno">3776</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3509" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3509', 'builder', 'link-3500');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3510" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-3510', 'start', 'link-3504');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L3777"></a><tt class="py-lineno">3777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3511" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3495', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3783"></a><tt class="py-lineno">3783</tt>  <tt class="py-line">        <tt id="link-3496" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3496', 'builder', 'link-3489');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3497" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3497', 'data', 'link-1043');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3784"></a><tt class="py-lineno">3784</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3498" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3498', 'builder', 'link-3489');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3499" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-3499', 'start', 'link-3493');">start</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L3785"></a><tt class="py-lineno">3785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3500" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3511', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3778"></a><tt class="py-lineno">3778</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3512" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3500', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3786"></a><tt class="py-lineno">3786</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3501" 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-3512', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3779"></a><tt class="py-lineno">3779</tt>  <tt class="py-line">        <tt id="link-3513" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3513', 'builder', 'link-3500');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3514" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3514', 'data', 'link-1035');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3780"></a><tt class="py-lineno">3780</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3515" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3515', 'builder', 'link-3500');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3516" 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-3516', 'end', 'link-3516');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3781"></a><tt class="py-lineno">3781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3501', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3787"></a><tt class="py-lineno">3787</tt>  <tt class="py-line">        <tt id="link-3502" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3502', 'builder', 'link-3489');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3503" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3503', 'data', 'link-1043');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3788"></a><tt class="py-lineno">3788</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-3504" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3504', 'builder', 'link-3489');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3505" 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-3505', 'end', 'link-3505');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3789"></a><tt class="py-lineno">3789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"child"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3506" 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-3517', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3782"></a><tt class="py-lineno">3782</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3518" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3506', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3790"></a><tt class="py-lineno">3790</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'x'</tt><tt class="py-op">:</tt><tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3507" 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-3518', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3783"></a><tt class="py-lineno">3783</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3507', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3791"></a><tt class="py-lineno">3791</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3508" 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-3519', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3784"></a><tt class="py-lineno">3784</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3520" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3520', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3785"></a><tt class="py-lineno">3785</tt>  <tt class="py-line">        <tt id="link-3521" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3521', 'builder', 'link-3500');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3522" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3522', 'data', 'link-1035');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3786"></a><tt class="py-lineno">3786</tt>  <tt class="py-line">        <tt id="link-3523" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3523', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3524" class="py-name"><a title="lxml.builder
-lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3524', 'builder', 'link-3500');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3525" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-3525', 'end', 'link-3516');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3787"></a><tt class="py-lineno">3787</tt>  <tt class="py-line"> </tt>
-<a name="L3788"></a><tt class="py-lineno">3788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3526" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3526', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-3527" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3508', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3792"></a><tt class="py-lineno">3792</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-3509" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3509', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3793"></a><tt class="py-lineno">3793</tt>  <tt class="py-line">        <tt id="link-3510" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3510', 'builder', 'link-3489');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3511" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3511', 'data', 'link-1043');">data</a></tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3794"></a><tt class="py-lineno">3794</tt>  <tt class="py-line">        <tt id="link-3512" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3512', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3513" class="py-name"><a title="lxml.builder
+lxml.html.builder" class="py-name" href="#" onclick="return doclink('link-3513', 'builder', 'link-3489');">builder</a></tt><tt class="py-op">.</tt><tt id="link-3514" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-3514', 'end', 'link-3505');">end</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3795"></a><tt class="py-lineno">3795</tt>  <tt class="py-line"> </tt>
+<a name="L3796"></a><tt class="py-lineno">3796</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3515" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3515', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3516" 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-3527', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3789"></a><tt class="py-lineno">3789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3528" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3528', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-3529" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3516', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3797"></a><tt class="py-lineno">3797</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3517', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3518" 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-3529', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3790"></a><tt class="py-lineno">3790</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3530" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3530', 'root', 'link-42');">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-3531" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3518', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3798"></a><tt class="py-lineno">3798</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3519" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3519', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3520" 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-3531', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3791"></a><tt class="py-lineno">3791</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3532" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3532', 'root', 'link-42');">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-3533" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3533', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3792"></a><tt class="py-lineno">3792</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.test_treebuilder_target"></a><div id="_ETreeTestCaseBase.test_treebuilder_target-def"><a name="L3793"></a><tt class="py-lineno">3793</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder_target');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.test_treebuilder_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder_target-expanded"><a name="L3794"></a><tt class="py-lineno">3794</tt>  <tt class="py-line">        <tt id="link-3534" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3534', 'parser', 'link-3217');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3535" class="py-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-3535', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3536" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3536', 'XMLParser', 'link-2802');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3537" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3537', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3538" class="py-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-3538', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3539" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3539', 'TreeBuilder', 'link-3502');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3795"></a><tt class="py-lineno">3795</tt>  <tt class="py-line">        <tt id="link-3540" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3540', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3541" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3541', 'feed', 'link-3227');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;ROOTTEXT&lt;child&gt;CHILDTEXT&lt;/child&gt;CHILDTAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3796"></a><tt class="py-lineno">3796</tt>  <tt class="py-line">        <tt id="link-3542" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3542', 'root', 'link-42');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3543" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3543', 'parser', 'link-3217');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3544" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3544', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3797"></a><tt class="py-lineno">3797</tt>  <tt class="py-line"> </tt>
-<a name="L3798"></a><tt class="py-lineno">3798</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3545" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3545', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-3546" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3520', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3799"></a><tt class="py-lineno">3799</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3521" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3521', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3522" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3522', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3800"></a><tt class="py-lineno">3800</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.test_treebuilder_target"></a><div id="_ETreeTestCaseBase.test_treebuilder_target-def"><a name="L3801"></a><tt class="py-lineno">3801</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.test_treebuilder_target-toggle" onclick="return toggle('_ETreeTestCaseBase.test_treebuilder_target');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.test_treebuilder_target-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.test_treebuilder_target-expanded"><a name="L3802"></a><tt class="py-lineno">3802</tt>  <tt class="py-line">        <tt id="link-3523" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3523', 'parser', 'link-3223');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3524" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3524', 'XMLParser', 'link-34');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-3525" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-3525', 'target', 'link-3332');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3526" class="py-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-3526', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3527" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-3527', 'TreeBuilder', 'link-40');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3803"></a><tt class="py-lineno">3803</tt>  <tt class="py-line">        <tt id="link-3528" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3528', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3529" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-3529', 'feed', 'link-3232');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;ROOTTEXT&lt;child&gt;CHILDTEXT&lt;/child&gt;CHILDTAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3804"></a><tt class="py-lineno">3804</tt>  <tt class="py-line">        <tt id="link-3530" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3530', 'root', 'link-50');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3531" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3531', 'parser', 'link-3223');">parser</a></tt><tt class="py-op">.</tt><tt id="link-3532" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3532', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3805"></a><tt class="py-lineno">3805</tt>  <tt class="py-line"> </tt>
+<a name="L3806"></a><tt class="py-lineno">3806</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-3533" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3533', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3534" 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-3546', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3799"></a><tt class="py-lineno">3799</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3547" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3547', 'root', 'link-42');">root</a></tt><tt class="py-op">.</tt><tt id="link-3548" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3534', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3807"></a><tt class="py-lineno">3807</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"ROOTTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3535', 'root', 'link-50');">root</a></tt><tt class="py-op">.</tt><tt id="link-3536" 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-3548', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3800"></a><tt class="py-lineno">3800</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3549" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3549', 'root', 'link-42');">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-3550" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3536', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3808"></a><tt class="py-lineno">3808</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTEXT"</tt><tt class="py-op">,</tt> <tt id="link-3537" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3537', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3538" 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-3550', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3801"></a><tt class="py-lineno">3801</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3551" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3551', 'root', 'link-42');">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-3552" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3552', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3802"></a><tt class="py-lineno">3802</tt>  <tt class="py-line"> </tt>
-<a name="L3803"></a><tt class="py-lineno">3803</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
-<a name="L3804"></a><tt class="py-lineno">3804</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._writeElement"></a><div id="_ETreeTestCaseBase._writeElement-def"><a name="L3805"></a><tt class="py-lineno">3805</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElement-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElement-expanded"><a name="L3806"></a><tt class="py-lineno">3806</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
-<a name="L3807"></a><tt class="py-lineno">3807</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3808"></a><tt class="py-lineno">3808</tt>  <tt class="py-line">        <tt id="link-3553" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3553', 'data', 'link-1035');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3554" class="py-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-3554', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3555" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3555', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt id="link-3556" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3556', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3557" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3557', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3809"></a><tt class="py-lineno">3809</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3558" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3558', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3559" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3559', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3538', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3809"></a><tt class="py-lineno">3809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"CHILDTAIL"</tt><tt class="py-op">,</tt> <tt id="link-3539" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3539', 'root', 'link-50');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3540" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3540', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L3810"></a><tt class="py-lineno">3810</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._writeElementFile"></a><div id="_ETreeTestCaseBase._writeElementFile-def"><a name="L3811"></a><tt class="py-lineno">3811</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElementFile-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElementFile');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._writeElementFile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElementFile-expanded"><a name="L3812"></a><tt class="py-lineno">3812</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison, using real file.</tt> </tt>
-<a name="L3813"></a><tt class="py-lineno">3813</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3814"></a><tt class="py-lineno">3814</tt>  <tt class="py-line">        <tt id="link-3560" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L3811"></a><tt class="py-lineno">3811</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
+<a name="L3812"></a><tt class="py-lineno">3812</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._writeElement"></a><div id="_ETreeTestCaseBase._writeElement-def"><a name="L3813"></a><tt class="py-lineno">3813</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElement-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElement-expanded"><a name="L3814"></a><tt class="py-lineno">3814</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
+<a name="L3815"></a><tt class="py-lineno">3815</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3816"></a><tt class="py-lineno">3816</tt>  <tt class="py-line">        <tt id="link-3541" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3541', 'data', 'link-1043');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3542" class="py-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-3542', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3543" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3543', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt id="link-3544" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3544', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3545" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3545', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3817"></a><tt class="py-lineno">3817</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3546" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3546', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3547" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3547', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3818"></a><tt class="py-lineno">3818</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._writeElementFile"></a><div id="_ETreeTestCaseBase._writeElementFile-def"><a name="L3819"></a><tt class="py-lineno">3819</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._writeElementFile-toggle" onclick="return toggle('_ETreeTestCaseBase._writeElementFile');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._writeElementFile-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._writeElementFile-expanded"><a name="L3820"></a><tt class="py-lineno">3820</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison, using real file.</tt> </tt>
+<a name="L3821"></a><tt class="py-lineno">3821</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3822"></a><tt class="py-lineno">3822</tt>  <tt class="py-line">        <tt id="link-3548" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3560', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3561" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3548', 'ElementTree', 'link-11');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3549" class="py-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-3561', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3562" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3549', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3550" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3562', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3815"></a><tt class="py-lineno">3815</tt>  <tt class="py-line">        <tt id="link-3563" 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-3550', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3823"></a><tt class="py-lineno">3823</tt>  <tt class="py-line">        <tt id="link-3551" 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-3563', 'handle', 'link-3563');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3564" 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-3564', 'filename', 'link-3564');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3816"></a><tt class="py-lineno">3816</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3817"></a><tt class="py-lineno">3817</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3565" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3565', 'filename', 'link-3564');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3818"></a><tt class="py-lineno">3818</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3566" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3566', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L3819"></a><tt class="py-lineno">3819</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3567" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3567', 'write', 'link-1034');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3568" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3568', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3569" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3569', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3820"></a><tt class="py-lineno">3820</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3570" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3570', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3821"></a><tt class="py-lineno">3821</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3571" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3571', 'filename', 'link-3564');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3822"></a><tt class="py-lineno">3822</tt>  <tt class="py-line">            <tt id="link-3572" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3572', 'data', 'link-1035');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3573" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3573', 'read', 'link-3573');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3823"></a><tt class="py-lineno">3823</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3574" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3574', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3824"></a><tt class="py-lineno">3824</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3825"></a><tt class="py-lineno">3825</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3575" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3575', 'close', 'link-2696');">close</a></tt><tt class="py-op">(</tt><tt id="link-3576" 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-3551', 'handle', 'link-3551');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3552" 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-3552', 'filename', 'link-3552');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3824"></a><tt class="py-lineno">3824</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3825"></a><tt class="py-lineno">3825</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3553" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3553', 'filename', 'link-3552');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3826"></a><tt class="py-lineno">3826</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3554" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3554', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L3827"></a><tt class="py-lineno">3827</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3555" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3555', 'write', 'link-1042');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3556" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3556', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3557" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3557', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3828"></a><tt class="py-lineno">3828</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3558" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3558', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3829"></a><tt class="py-lineno">3829</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3559" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3559', 'filename', 'link-3552');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3830"></a><tt class="py-lineno">3830</tt>  <tt class="py-line">            <tt id="link-3560" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3560', 'data', 'link-1043');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3561" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3561', 'read', 'link-3561');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3831"></a><tt class="py-lineno">3831</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3562" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3562', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3832"></a><tt class="py-lineno">3832</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3833"></a><tt class="py-lineno">3833</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3563" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3563', 'close', 'link-2704');">close</a></tt><tt class="py-op">(</tt><tt id="link-3564" 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-3576', 'handle', 'link-3563');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3826"></a><tt class="py-lineno">3826</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3577" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3564', 'handle', 'link-3551');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3834"></a><tt class="py-lineno">3834</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3565" 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-3577', 'remove', 'link-1683');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3578" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3578', 'filename', 'link-3564');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3827"></a><tt class="py-lineno">3827</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3579" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3579', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3580" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3580', 'data', 'link-1035');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3828"></a><tt class="py-lineno">3828</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.assertXML"></a><div id="_ETreeTestCaseBase.assertXML-def"><a name="L3829"></a><tt class="py-lineno">3829</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertXML-toggle" onclick="return toggle('_ETreeTestCaseBase.assertXML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML">assertXML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.assertXML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertXML-expanded"><a name="L3830"></a><tt class="py-lineno">3830</tt>  <tt class="py-line">        <tt class="py-docstring">"""Writes element out and checks whether it is expected.</tt> </tt>
-<a name="L3831"></a><tt class="py-lineno">3831</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L3832"></a><tt class="py-lineno">3832</tt>  <tt class="py-line"><tt class="py-docstring">        Does this two ways; once using BytesIO, once using a real file.</tt> </tt>
-<a name="L3833"></a><tt class="py-lineno">3833</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3834"></a><tt class="py-lineno">3834</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3835"></a><tt class="py-lineno">3835</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-name">expected</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-3581" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3581', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3836"></a><tt class="py-lineno">3836</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3582" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-3582', '_writeElement', 'link-781');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt id="link-3583" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3583', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3837"></a><tt class="py-lineno">3837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3584" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile" class="py-name" href="#" onclick="return doclink('link-3584', '_writeElementFile', 'link-3584');">_writeElementFile</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt id="link-3585" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3585', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3838"></a><tt class="py-lineno">3838</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase.assertEncodingDeclaration"></a><div id="_ETreeTestCaseBase.assertEncodingDeclaration-def"><a name="L3839"></a><tt class="py-lineno">3839</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertEncodingDeclaration-toggle" onclick="return toggle('_ETreeTestCaseBase.assertEncodingDeclaration');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration">assertEncodingDeclaration</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">result</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-expanded"><a name="L3840"></a><tt class="py-lineno">3840</tt>  <tt class="py-line">        <tt class="py-docstring">"Checks if the result XML byte string specifies the encoding."</tt> </tt>
-<a name="L3841"></a><tt class="py-lineno">3841</tt>  <tt class="py-line">        <tt class="py-name">enc_re</tt> <tt class="py-op">=</tt> <tt class="py-string">r"&lt;\?xml[^&gt;]+ encoding=[\"']([^\"']+)[\"']"</tt> </tt>
-<a name="L3842"></a><tt class="py-lineno">3842</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3586" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3586', 'str', 'link-677');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3843"></a><tt class="py-lineno">3843</tt>  <tt class="py-line">            <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
-<a name="L3844"></a><tt class="py-lineno">3844</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3845"></a><tt class="py-lineno">3845</tt>  <tt class="py-line">            <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt id="link-3587" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3587', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
-<a name="L3846"></a><tt class="py-lineno">3846</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3847"></a><tt class="py-lineno">3847</tt>  <tt class="py-line">        <tt class="py-name">result_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3848"></a><tt class="py-lineno">3848</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result_encoding</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3588" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3588', 'encoding', 'link-2759');">encoding</a></tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3849"></a><tt class="py-lineno">3849</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase._rootstring"></a><div id="_ETreeTestCaseBase._rootstring-def"><a name="L3850"></a><tt class="py-lineno">3850</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._rootstring-toggle" onclick="return toggle('_ETreeTestCaseBase._rootstring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring">_rootstring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._rootstring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._rootstring-expanded"><a name="L3851"></a><tt class="py-lineno">3851</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-3589" class="py-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-3589', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3590" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3590', 'tostring', 'link-211');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3591" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3591', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3592" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3592', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3852"></a><tt class="py-lineno">3852</tt>  <tt class="py-line">            <tt id="link-3593" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3593', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3594" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3594', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3595" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3595', 'replace', 'link-1064');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3596" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3596', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3597" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3597', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3853"></a><tt class="py-lineno">3853</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._check_element_tree"></a><div id="_ETreeTestCaseBase._check_element_tree-def"><a name="L3854"></a><tt class="py-lineno">3854</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element_tree-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree">_check_element_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_element_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element_tree-expanded"><a name="L3855"></a><tt class="py-lineno">3855</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3598" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-3598', '_check_element', 'link-1118');">_check_element</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3599" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3599', 'getroot', 'link-70');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3856"></a><tt class="py-lineno">3856</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase._check_element"></a><div id="_ETreeTestCaseBase._check_element-def"><a name="L3857"></a><tt class="py-lineno">3857</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element">_check_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element-expanded"><a name="L3858"></a><tt class="py-lineno">3858</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3600" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3600', 'hasattr', 'link-3220');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3859"></a><tt class="py-lineno">3859</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3601" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3601', 'hasattr', 'link-3220');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'attrib'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3860"></a><tt class="py-lineno">3860</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3602" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3602', 'hasattr', 'link-3220');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3861"></a><tt class="py-lineno">3861</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3603" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3603', 'hasattr', 'link-3220');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'tail'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3862"></a><tt class="py-lineno">3862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3604" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_string()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3604', '_check_string', 'link-3604');">_check_string</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3605" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3565', 'remove', 'link-1691');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3566" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3566', 'filename', 'link-3552');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3835"></a><tt class="py-lineno">3835</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3567" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3567', 'canonicalize', 'link-18');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3568" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3568', 'data', 'link-1043');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3836"></a><tt class="py-lineno">3836</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.assertXML"></a><div id="_ETreeTestCaseBase.assertXML-def"><a name="L3837"></a><tt class="py-lineno">3837</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertXML-toggle" onclick="return toggle('_ETreeTestCaseBase.assertXML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML">assertXML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.assertXML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertXML-expanded"><a name="L3838"></a><tt class="py-lineno">3838</tt>  <tt class="py-line">        <tt class="py-docstring">"""Writes element out and checks whether it is expected.</tt> </tt>
+<a name="L3839"></a><tt class="py-lineno">3839</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L3840"></a><tt class="py-lineno">3840</tt>  <tt class="py-line"><tt class="py-docstring">        Does this two ways; once using BytesIO, once using a real file.</tt> </tt>
+<a name="L3841"></a><tt class="py-lineno">3841</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3842"></a><tt class="py-lineno">3842</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3843"></a><tt class="py-lineno">3843</tt>  <tt class="py-line">            <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-name">expected</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-3569" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3569', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3844"></a><tt class="py-lineno">3844</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3570" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-3570', '_writeElement', 'link-789');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt id="link-3571" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3571', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3845"></a><tt class="py-lineno">3845</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3572" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElementFile" class="py-name" href="#" onclick="return doclink('link-3572', '_writeElementFile', 'link-3572');">_writeElementFile</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt id="link-3573" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3573', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3846"></a><tt class="py-lineno">3846</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase.assertEncodingDeclaration"></a><div id="_ETreeTestCaseBase.assertEncodingDeclaration-def"><a name="L3847"></a><tt class="py-lineno">3847</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase.assertEncodingDeclaration-toggle" onclick="return toggle('_ETreeTestCaseBase.assertEncodingDeclaration');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration">assertEncodingDeclaration</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">result</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase.assertEncodingDeclaration-expanded"><a name="L3848"></a><tt class="py-lineno">3848</tt>  <tt class="py-line">        <tt class="py-docstring">"Checks if the result XML byte string specifies the encoding."</tt> </tt>
+<a name="L3849"></a><tt class="py-lineno">3849</tt>  <tt class="py-line">        <tt class="py-name">enc_re</tt> <tt class="py-op">=</tt> <tt class="py-string">r"&lt;\?xml[^&gt;]+ encoding=[\"']([^\"']+)[\"']"</tt> </tt>
+<a name="L3850"></a><tt class="py-lineno">3850</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3574" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-3574', 'str', 'link-685');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3851"></a><tt class="py-lineno">3851</tt>  <tt class="py-line">            <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
+<a name="L3852"></a><tt class="py-lineno">3852</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3853"></a><tt class="py-lineno">3853</tt>  <tt class="py-line">            <tt class="py-name">has_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt id="link-3575" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3575', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">enc_re</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">match</tt> </tt>
+<a name="L3854"></a><tt class="py-lineno">3854</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3855"></a><tt class="py-lineno">3855</tt>  <tt class="py-line">        <tt class="py-name">result_encoding</tt> <tt class="py-op">=</tt> <tt class="py-name">has_encoding</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3856"></a><tt class="py-lineno">3856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result_encoding</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3576" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3576', 'encoding', 'link-2767');">encoding</a></tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3857"></a><tt class="py-lineno">3857</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase._rootstring"></a><div id="_ETreeTestCaseBase._rootstring-def"><a name="L3858"></a><tt class="py-lineno">3858</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._rootstring-toggle" onclick="return toggle('_ETreeTestCaseBase._rootstring');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring">_rootstring</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._rootstring-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._rootstring-expanded"><a name="L3859"></a><tt class="py-lineno">3859</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-3577" class="py-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-3577', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3578" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3578', 'tostring', 'link-219');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3579" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3579', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3580" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3580', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3860"></a><tt class="py-lineno">3860</tt>  <tt class="py-line">            <tt id="link-3581" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3581', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3582" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3582', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3583" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3583', 'replace', 'link-1072');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3584" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3584', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3585" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3585', '_bytes', 'link-22');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3861"></a><tt class="py-lineno">3861</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._check_element_tree"></a><div id="_ETreeTestCaseBase._check_element_tree-def"><a name="L3862"></a><tt class="py-lineno">3862</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element_tree-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element_tree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree">_check_element_tree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_element_tree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element_tree-expanded"><a name="L3863"></a><tt class="py-lineno">3863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3586" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_element" class="py-name" href="#" onclick="return doclink('link-3586', '_check_element', 'link-1126');">_check_element</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3587" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3587', 'getroot', 'link-78');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3864"></a><tt class="py-lineno">3864</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase._check_element"></a><div id="_ETreeTestCaseBase._check_element-def"><a name="L3865"></a><tt class="py-lineno">3865</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_element-toggle" onclick="return toggle('_ETreeTestCaseBase._check_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element">_check_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_element-expanded"><a name="L3866"></a><tt class="py-lineno">3866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3588" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3588', 'hasattr', 'link-3226');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3867"></a><tt class="py-lineno">3867</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3589" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3589', 'hasattr', 'link-3226');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'attrib'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3868"></a><tt class="py-lineno">3868</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3590" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3590', 'hasattr', 'link-3226');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3869"></a><tt class="py-lineno">3869</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3591" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-3591', 'hasattr', 'link-3226');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-string">'tail'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3870"></a><tt class="py-lineno">3870</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3592" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_string()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3592', '_check_string', 'link-3592');">_check_string</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3593" 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-3605', 'tag', 'link-36');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3863"></a><tt class="py-lineno">3863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3606" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping" class="py-name" href="#" onclick="return doclink('link-3606', '_check_mapping', 'link-3606');">_check_mapping</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3607" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3593', 'tag', 'link-44');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3871"></a><tt class="py-lineno">3871</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3594" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_mapping" class="py-name" href="#" onclick="return doclink('link-3594', '_check_mapping', 'link-3594');">_check_mapping</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3595" 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-3607', 'attrib', 'link-312');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3864"></a><tt class="py-lineno">3864</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3608" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-3595', 'attrib', 'link-320');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3872"></a><tt class="py-lineno">3872</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3596" 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-3608', 'text', 'link-37');">text</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L3865"></a><tt class="py-lineno">3865</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3609" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3609', '_check_string', 'link-3604');">_check_string</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3610" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3596', 'text', 'link-45');">text</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L3873"></a><tt class="py-lineno">3873</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3597" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3597', '_check_string', 'link-3592');">_check_string</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3598" 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-3610', 'text', 'link-37');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3866"></a><tt class="py-lineno">3866</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3611" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3611', 'tail', 'link-38');">tail</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L3867"></a><tt class="py-lineno">3867</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3612" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3612', '_check_string', 'link-3604');">_check_string</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3613" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3613', 'tail', 'link-38');">tail</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3868"></a><tt class="py-lineno">3868</tt>  <tt class="py-line">         </tt>
-<a name="_ETreeTestCaseBase._check_string"></a><div id="_ETreeTestCaseBase._check_string-def"><a name="L3869"></a><tt class="py-lineno">3869</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_string-toggle" onclick="return toggle('_ETreeTestCaseBase._check_string');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string">_check_string</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_string-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_string-expanded"><a name="L3870"></a><tt class="py-lineno">3870</tt>  <tt class="py-line">        <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">)</tt> </tt>
-<a name="L3871"></a><tt class="py-lineno">3871</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">char</tt> <tt class="py-keyword">in</tt> <tt class="py-name">string</tt><tt class="py-op">:</tt> </tt>
-<a name="L3872"></a><tt class="py-lineno">3872</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">char</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3873"></a><tt class="py-lineno">3873</tt>  <tt class="py-line">        <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">""</tt> </tt>
-<a name="L3874"></a><tt class="py-lineno">3874</tt>  <tt class="py-line">        <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt> </tt>
-<a name="L3875"></a><tt class="py-lineno">3875</tt>  <tt class="py-line">        <tt class="py-name">string</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L3876"></a><tt class="py-lineno">3876</tt>  <tt class="py-line"> </tt>
-<a name="_ETreeTestCaseBase._check_mapping"></a><div id="_ETreeTestCaseBase._check_mapping-def"><a name="L3877"></a><tt class="py-lineno">3877</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_mapping-toggle" onclick="return toggle('_ETreeTestCaseBase._check_mapping');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping">_check_mapping</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mapping</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_ETreeTestCaseBase._check_mapping-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_mapping-expanded"><a name="L3878"></a><tt class="py-lineno">3878</tt>  <tt class="py-line">        <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">mapping</tt><tt class="py-op">)</tt> </tt>
-<a name="L3879"></a><tt class="py-lineno">3879</tt>  <tt class="py-line">        <tt id="link-3614" class="py-name"><a title="lxml.etree._Attrib.keys
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3598', 'text', 'link-45');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3874"></a><tt class="py-lineno">3874</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3599" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3599', 'tail', 'link-46');">tail</a></tt> <tt class="py-op">!=</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L3875"></a><tt class="py-lineno">3875</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3600" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._check_string" class="py-name" href="#" onclick="return doclink('link-3600', '_check_string', 'link-3592');">_check_string</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-3601" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3601', 'tail', 'link-46');">tail</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3876"></a><tt class="py-lineno">3876</tt>  <tt class="py-line">         </tt>
+<a name="_ETreeTestCaseBase._check_string"></a><div id="_ETreeTestCaseBase._check_string-def"><a name="L3877"></a><tt class="py-lineno">3877</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_string-toggle" onclick="return toggle('_ETreeTestCaseBase._check_string');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string">_check_string</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_string-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_string-expanded"><a name="L3878"></a><tt class="py-lineno">3878</tt>  <tt class="py-line">        <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">string</tt><tt class="py-op">)</tt> </tt>
+<a name="L3879"></a><tt class="py-lineno">3879</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">char</tt> <tt class="py-keyword">in</tt> <tt class="py-name">string</tt><tt class="py-op">:</tt> </tt>
+<a name="L3880"></a><tt class="py-lineno">3880</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">char</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3881"></a><tt class="py-lineno">3881</tt>  <tt class="py-line">        <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">""</tt> </tt>
+<a name="L3882"></a><tt class="py-lineno">3882</tt>  <tt class="py-line">        <tt class="py-name">new_string</tt> <tt class="py-op">=</tt> <tt class="py-name">string</tt> <tt class="py-op">+</tt> <tt class="py-string">" "</tt> </tt>
+<a name="L3883"></a><tt class="py-lineno">3883</tt>  <tt class="py-line">        <tt class="py-name">string</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L3884"></a><tt class="py-lineno">3884</tt>  <tt class="py-line"> </tt>
+<a name="_ETreeTestCaseBase._check_mapping"></a><div id="_ETreeTestCaseBase._check_mapping-def"><a name="L3885"></a><tt class="py-lineno">3885</tt> <a class="py-toggle" href="#" id="_ETreeTestCaseBase._check_mapping-toggle" onclick="return toggle('_ETreeTestCaseBase._check_mapping');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping">_check_mapping</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">mapping</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_ETreeTestCaseBase._check_mapping-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_ETreeTestCaseBase._check_mapping-expanded"><a name="L3886"></a><tt class="py-lineno">3886</tt>  <tt class="py-line">        <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">mapping</tt><tt class="py-op">)</tt> </tt>
+<a name="L3887"></a><tt class="py-lineno">3887</tt>  <tt class="py-line">        <tt id="link-3602" 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-3614', 'keys', 'link-584');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3615" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3602', 'keys', 'link-592');">keys</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3603" 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-3615', 'keys', 'link-584');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3880"></a><tt class="py-lineno">3880</tt>  <tt class="py-line">        <tt id="link-3616" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3603', 'keys', 'link-592');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3888"></a><tt class="py-lineno">3888</tt>  <tt class="py-line">        <tt id="link-3604" 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-3616', 'values', 'link-629');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3617" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-3604', 'values', 'link-637');">values</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3605" 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-3617', 'values', 'link-629');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3881"></a><tt class="py-lineno">3881</tt>  <tt class="py-line">        <tt id="link-3618" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-3605', 'values', 'link-637');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3889"></a><tt class="py-lineno">3889</tt>  <tt class="py-line">        <tt id="link-3606" 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-3618', 'items', 'link-494');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3619" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3606', 'items', 'link-502');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">.</tt><tt id="link-3607" 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-3619', 'items', 'link-494');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3882"></a><tt class="py-lineno">3882</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-3620" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3607', 'items', 'link-502');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3890"></a><tt class="py-lineno">3890</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt> <tt class="py-keyword">in</tt> <tt id="link-3608" 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-3620', 'keys', 'link-584');">keys</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3883"></a><tt class="py-lineno">3883</tt>  <tt class="py-line">            <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L3884"></a><tt class="py-lineno">3884</tt>  <tt class="py-line">        <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
-<a name="L3885"></a><tt class="py-lineno">3885</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">,</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3886"></a><tt class="py-lineno">3886</tt>  <tt class="py-line"> </tt>
-<a name="L3887"></a><tt class="py-lineno">3887</tt>  <tt class="py-line"> </tt>
-<a name="L3888"></a><tt class="py-lineno">3888</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3621" class="py-name"><a title="lxml.etree
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-3608', 'keys', 'link-592');">keys</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3891"></a><tt class="py-lineno">3891</tt>  <tt class="py-line">            <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
+<a name="L3892"></a><tt class="py-lineno">3892</tt>  <tt class="py-line">        <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">"value"</tt> </tt>
+<a name="L3893"></a><tt class="py-lineno">3893</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"value"</tt><tt class="py-op">,</tt> <tt class="py-name">mapping</tt><tt class="py-op">[</tt><tt class="py-string">"key"</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3894"></a><tt class="py-lineno">3894</tt>  <tt class="py-line"> </tt>
+<a name="L3895"></a><tt class="py-lineno">3895</tt>  <tt class="py-line"> </tt>
+<a name="L3896"></a><tt class="py-lineno">3896</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3609" class="py-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-3621', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="ETreeTestCase"></a><div id="ETreeTestCase-def"><a name="L3889"></a><tt class="py-lineno">3889</tt> <a class="py-toggle" href="#" id="ETreeTestCase-toggle" onclick="return toggle('ETreeTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ETreeTestCase-class.html">ETreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeTestCase-expanded"><a name="L3890"></a><tt class="py-lineno">3890</tt>  <tt class="py-line">        <tt id="link-3622" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3609', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="ETreeTestCase"></a><div id="ETreeTestCase-def"><a name="L3897"></a><tt class="py-lineno">3897</tt> <a class="py-toggle" href="#" id="ETreeTestCase-toggle" onclick="return toggle('ETreeTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ETreeTestCase-class.html">ETreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeTestCase-expanded"><a name="L3898"></a><tt class="py-lineno">3898</tt>  <tt class="py-line">        <tt id="link-3610" class="py-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-3622', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3623" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3610', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3611" class="py-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-3623', 'etree', 'link-9');">etree</a></tt> </tt>
-</div><a name="L3891"></a><tt class="py-lineno">3891</tt>  <tt class="py-line"> </tt>
-<a name="L3892"></a><tt class="py-lineno">3892</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3624" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3611', 'etree', 'link-9');">etree</a></tt> </tt>
+</div><a name="L3899"></a><tt class="py-lineno">3899</tt>  <tt class="py-line"> </tt>
+<a name="L3900"></a><tt class="py-lineno">3900</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3612" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3624', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="ElementTreeTestCase"></a><div id="ElementTreeTestCase-def"><a name="L3893"></a><tt class="py-lineno">3893</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase-toggle" onclick="return toggle('ElementTreeTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html">ElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTreeTestCase-expanded"><a name="L3894"></a><tt class="py-lineno">3894</tt>  <tt class="py-line">        <tt id="link-3625" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3612', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="ElementTreeTestCase"></a><div id="ElementTreeTestCase-def"><a name="L3901"></a><tt class="py-lineno">3901</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase-toggle" onclick="return toggle('ElementTreeTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html">ElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTreeTestCase-expanded"><a name="L3902"></a><tt class="py-lineno">3902</tt>  <tt class="py-line">        <tt id="link-3613" class="py-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-3625', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3626" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3613', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3614" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3626', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
-<a name="L3895"></a><tt class="py-lineno">3895</tt>  <tt class="py-line"> </tt>
-<a name="L3896"></a><tt class="py-lineno">3896</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
-<a name="ElementTreeTestCase.setUpClass"></a><div id="ElementTreeTestCase.setUpClass-def"><a name="L3897"></a><tt class="py-lineno">3897</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase.setUpClass-toggle" onclick="return toggle('ElementTreeTestCase.setUpClass');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html#setUpClass">setUpClass</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTreeTestCase.setUpClass-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ElementTreeTestCase.setUpClass-expanded"><a name="L3898"></a><tt class="py-lineno">3898</tt>  <tt class="py-line">            <tt class="py-keyword">import</tt> <tt class="py-name">warnings</tt> </tt>
-<a name="L3899"></a><tt class="py-lineno">3899</tt>  <tt class="py-line">            <tt class="py-comment"># ElementTree warns about getiterator() in recent Pythons</tt> </tt>
-<a name="L3900"></a><tt class="py-lineno">3900</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">filterwarnings</tt><tt class="py-op">(</tt> </tt>
-<a name="L3901"></a><tt class="py-lineno">3901</tt>  <tt class="py-line">                <tt class="py-string">'ignore'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3902"></a><tt class="py-lineno">3902</tt>  <tt class="py-line">                <tt class="py-string">'This method will be removed.*\.iter\(\).*instead'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3903"></a><tt class="py-lineno">3903</tt>  <tt class="py-line">                <tt class="py-name">PendingDeprecationWarning</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3904"></a><tt class="py-lineno">3904</tt>  <tt class="py-line"> </tt>
-<a name="L3905"></a><tt class="py-lineno">3905</tt>  <tt class="py-line">    <tt id="link-3627" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3627', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3906"></a><tt class="py-lineno">3906</tt>  <tt class="py-line">        <tt id="link-3628" class="py-name" targets="Class lxml.tests.test_elementtree.ElementTreeTestCase=lxml.tests.test_elementtree.ElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3628', 'ElementTreeTestCase', 'link-3628');">ElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3907"></a><tt class="py-lineno">3907</tt>  <tt class="py-line">        <tt id="link-3629" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3629', 'ElementTreeTestCase', 'link-3628');">ElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3630" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3630', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">,</tt> <tt id="link-3631" class="py-name"><a title="lxml.tests.common_imports.ET_VERSION" class="py-name" href="#" onclick="return doclink('link-3631', 'ET_VERSION', 'link-13');">ET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3908"></a><tt class="py-lineno">3908</tt>  <tt class="py-line"> </tt>
-<a name="L3909"></a><tt class="py-lineno">3909</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3632" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3632', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="CElementTreeTestCase"></a><div id="CElementTreeTestCase-def"><a name="L3910"></a><tt class="py-lineno">3910</tt> <a class="py-toggle" href="#" id="CElementTreeTestCase-toggle" onclick="return toggle('CElementTreeTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html">CElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="CElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CElementTreeTestCase-expanded"><a name="L3911"></a><tt class="py-lineno">3911</tt>  <tt class="py-line">        <tt id="link-3633" class="py-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-3633', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3634" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3634', 'cElementTree', 'link-12');">cElementTree</a></tt> </tt>
-</div><a name="L3912"></a><tt class="py-lineno">3912</tt>  <tt class="py-line"> </tt>
-<a name="L3913"></a><tt class="py-lineno">3913</tt>  <tt class="py-line">    <tt id="link-3635" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3635', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3914"></a><tt class="py-lineno">3914</tt>  <tt class="py-line">        <tt id="link-3636" class="py-name" targets="Class lxml.tests.test_elementtree.CElementTreeTestCase=lxml.tests.test_elementtree.CElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3636', 'CElementTreeTestCase', 'link-3636');">CElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3915"></a><tt class="py-lineno">3915</tt>  <tt class="py-line">        <tt id="link-3637" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3637', 'CElementTreeTestCase', 'link-3636');">CElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET" class="py-name" href="#" onclick="return doclink('link-3638', 'required_versions_cET', 'link-33');">required_versions_cET</a></tt><tt class="py-op">,</tt> <tt id="link-3639" class="py-name"><a title="lxml.tests.common_imports.CET_VERSION" class="py-name" href="#" onclick="return doclink('link-3639', 'CET_VERSION', 'link-14');">CET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L3916"></a><tt class="py-lineno">3916</tt>  <tt class="py-line"> </tt>
-<a name="L3917"></a><tt class="py-lineno">3917</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L3918"></a><tt class="py-lineno">3918</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="L3919"></a><tt class="py-lineno">3919</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-3640" class="py-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-3640', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3920"></a><tt class="py-lineno">3920</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-3641" class="py-name" targets="Class lxml.tests.test_elementtree.ETreeTestCase=lxml.tests.test_elementtree.ETreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ETreeTestCase" class="py-name" href="#" onclick="return doclink('link-3641', 'ETreeTestCase', 'link-3641');">ETreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3921"></a><tt class="py-lineno">3921</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-3642" class="py-name"><a title="lxml.etree.ElementTree
-xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3642', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3922"></a><tt class="py-lineno">3922</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-3643" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3643', 'ElementTreeTestCase', 'link-3628');">ElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3923"></a><tt class="py-lineno">3923</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-3644" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3644', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L3924"></a><tt class="py-lineno">3924</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-3645" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3645', 'CElementTreeTestCase', 'link-3636');">CElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3925"></a><tt class="py-lineno">3925</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L3926"></a><tt class="py-lineno">3926</tt>  <tt class="py-line"> </tt>
-<a name="L3927"></a><tt class="py-lineno">3927</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="L3928"></a><tt class="py-lineno">3928</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="L3929"></a><tt class="py-lineno">3929</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3614', 'ElementTree', 'link-11');">ElementTree</a></tt> </tt>
+<a name="L3903"></a><tt class="py-lineno">3903</tt>  <tt class="py-line"> </tt>
+<a name="L3904"></a><tt class="py-lineno">3904</tt>  <tt class="py-line">        <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
+<a name="ElementTreeTestCase.setUpClass"></a><div id="ElementTreeTestCase.setUpClass-def"><a name="L3905"></a><tt class="py-lineno">3905</tt> <a class="py-toggle" href="#" id="ElementTreeTestCase.setUpClass-toggle" onclick="return toggle('ElementTreeTestCase.setUpClass');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html#setUpClass">setUpClass</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTreeTestCase.setUpClass-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ElementTreeTestCase.setUpClass-expanded"><a name="L3906"></a><tt class="py-lineno">3906</tt>  <tt class="py-line">            <tt class="py-keyword">import</tt> <tt class="py-name">warnings</tt> </tt>
+<a name="L3907"></a><tt class="py-lineno">3907</tt>  <tt class="py-line">            <tt class="py-comment"># ElementTree warns about getiterator() in recent Pythons</tt> </tt>
+<a name="L3908"></a><tt class="py-lineno">3908</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">filterwarnings</tt><tt class="py-op">(</tt> </tt>
+<a name="L3909"></a><tt class="py-lineno">3909</tt>  <tt class="py-line">                <tt class="py-string">'ignore'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3910"></a><tt class="py-lineno">3910</tt>  <tt class="py-line">                <tt class="py-string">'This method will be removed.*\.iter\(\).*instead'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3911"></a><tt class="py-lineno">3911</tt>  <tt class="py-line">                <tt class="py-name">PendingDeprecationWarning</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3912"></a><tt class="py-lineno">3912</tt>  <tt class="py-line"> </tt>
+<a name="L3913"></a><tt class="py-lineno">3913</tt>  <tt class="py-line">    <tt id="link-3615" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3615', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3914"></a><tt class="py-lineno">3914</tt>  <tt class="py-line">        <tt id="link-3616" class="py-name" targets="Class lxml.tests.test_elementtree.ElementTreeTestCase=lxml.tests.test_elementtree.ElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3616', 'ElementTreeTestCase', 'link-3616');">ElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3915"></a><tt class="py-lineno">3915</tt>  <tt class="py-line">        <tt id="link-3617" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3617', 'ElementTreeTestCase', 'link-3616');">ElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3618" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_ET" class="py-name" href="#" onclick="return doclink('link-3618', 'required_versions_ET', 'link-32');">required_versions_ET</a></tt><tt class="py-op">,</tt> <tt id="link-3619" class="py-name"><a title="lxml.tests.common_imports.ET_VERSION" class="py-name" href="#" onclick="return doclink('link-3619', 'ET_VERSION', 'link-13');">ET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3916"></a><tt class="py-lineno">3916</tt>  <tt class="py-line"> </tt>
+<a name="L3917"></a><tt class="py-lineno">3917</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-3620" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3620', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="CElementTreeTestCase"></a><div id="CElementTreeTestCase-def"><a name="L3918"></a><tt class="py-lineno">3918</tt> <a class="py-toggle" href="#" id="CElementTreeTestCase-toggle" onclick="return toggle('CElementTreeTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html">CElementTreeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_ETreeTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="CElementTreeTestCase-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CElementTreeTestCase-expanded"><a name="L3919"></a><tt class="py-lineno">3919</tt>  <tt class="py-line">        <tt id="link-3621" class="py-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-3621', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3622" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3622', 'cElementTree', 'link-12');">cElementTree</a></tt> </tt>
+</div><a name="L3920"></a><tt class="py-lineno">3920</tt>  <tt class="py-line"> </tt>
+<a name="L3921"></a><tt class="py-lineno">3921</tt>  <tt class="py-line">    <tt id="link-3623" class="py-name"><a title="lxml.tests.common_imports.filter_by_version" class="py-name" href="#" onclick="return doclink('link-3623', 'filter_by_version', 'link-16');">filter_by_version</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3922"></a><tt class="py-lineno">3922</tt>  <tt class="py-line">        <tt id="link-3624" class="py-name" targets="Class lxml.tests.test_elementtree.CElementTreeTestCase=lxml.tests.test_elementtree.CElementTreeTestCase-class.html"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3624', 'CElementTreeTestCase', 'link-3624');">CElementTreeTestCase</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3923"></a><tt class="py-lineno">3923</tt>  <tt class="py-line">        <tt id="link-3625" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3625', 'CElementTreeTestCase', 'link-3624');">CElementTreeTestCase</a></tt><tt class="py-op">.</tt><tt id="link-3626" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase.required_versions_cET" class="py-name" href="#" onclick="return doclink('link-3626', 'required_versions_cET', 'link-33');">required_versions_cET</a></tt><tt class="py-op">,</tt> <tt id="link-3627" class="py-name"><a title="lxml.tests.common_imports.CET_VERSION" class="py-name" href="#" onclick="return doclink('link-3627', 'CET_VERSION', 'link-14');">CET_VERSION</a></tt><tt class="py-op">)</tt> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L3924"></a><tt class="py-lineno">3924</tt>  <tt class="py-line"> </tt>
+<a name="L3925"></a><tt class="py-lineno">3925</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_elementtree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L3926"></a><tt class="py-lineno">3926</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="L3927"></a><tt class="py-lineno">3927</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-3628" class="py-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-3628', 'etree', 'link-9');">etree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3928"></a><tt class="py-lineno">3928</tt>  <tt class="py-line">        <tt class="py-name">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-3629" class="py-name" targets="Class lxml.tests.test_elementtree.ETreeTestCase=lxml.tests.test_elementtree.ETreeTestCase-class.html"><a title="lxml.tests.test_elementtree.ETreeTestCase" class="py-name" href="#" onclick="return doclink('link-3629', 'ETreeTestCase', 'link-3629');">ETreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3929"></a><tt class="py-lineno">3929</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-3630" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3630', 'ElementTree', 'link-11');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3930"></a><tt class="py-lineno">3930</tt>  <tt class="py-line">        <tt class="py-name">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-3631" class="py-name"><a title="lxml.tests.test_elementtree.ElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3631', 'ElementTreeTestCase', 'link-3616');">ElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3931"></a><tt class="py-lineno">3931</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-3632" class="py-name"><a title="lxml.tests.test_elementtree.cElementTree" class="py-name" href="#" onclick="return doclink('link-3632', 'cElementTree', 'link-12');">cElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L3932"></a><tt class="py-lineno">3932</tt>  <tt class="py-line">        <tt class="py-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-3633" class="py-name"><a title="lxml.tests.test_elementtree.CElementTreeTestCase" class="py-name" href="#" onclick="return doclink('link-3633', 'CElementTreeTestCase', 'link-3624');">CElementTreeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3933"></a><tt class="py-lineno">3933</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L3934"></a><tt class="py-lineno">3934</tt>  <tt class="py-line"> </tt>
+<a name="L3935"></a><tt class="py-lineno">3935</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="L3936"></a><tt class="py-lineno">3936</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="L3937"></a><tt class="py-lineno">3937</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -10477,7 +10451,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 84616e2e07396bb66e8354dee5118255605b8b0c..3dea0be191f006e64e80e14513fb158442748883 100644 (file)
   <tr>
     <td colspan="2" class="summary">
     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html">_ETreeTestCaseBase</a></code></b>:
+      <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser">XMLParser</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration">assertEncodingDeclaration</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML">assertXML</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree</a></code>,
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0200817f4fd188e8a323105feb09e6dc3e9628b1..f2ebe92918cfbe0f5bd3cce56656cfc16e826118 100644 (file)
   <tr>
     <td colspan="2" class="summary">
     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a></code></b>:
+      <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser">XMLParser</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration">assertEncodingDeclaration</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML">assertXML</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree</a></code>,
@@ -648,7 +649,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 02d09f309de4502dc097eaaea3a49bcfd72425fa..f441fb6b89760e10d91049743c034dcc60064a43 100644 (file)
   <tr>
     <td colspan="2" class="summary">
     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a></code></b>:
+      <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser">XMLParser</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertEncodingDeclaration">assertEncodingDeclaration</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#assertXML">assertXML</a></code>,
       <code><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree</a></code>,
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0c0724e689504a98df96ecf5112b4d6c3fd3fd05..85359e7891bd76c5f4714b6321f02f168b18f72b 100644 (file)
     </table>
   </td>
 </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="XMLParser"></a><span class="summary-sig-name">XMLParser</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">**kwargs</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_elementtree-pysrc.html#_ETreeTestCaseBase.XMLParser">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 58a8784491bd6e18a1818b52c069be17b4e0da3d..2d869cd1a249c45de98ccbceec69ead3dc13945d 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e74d5982ab9cc635500a9e4f1fd2deab45aeffe3..f92b2dd94a224488794e96b8089aa8e11575402a 100644 (file)
@@ -259,7 +259,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8eb20b608792b224f0f18de69a0d3c0d7e269d70..b140419dfac597aba7da0ecbad52c787ca563e16 100644 (file)
@@ -416,7 +416,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fe60cc846b349de454e15ace0a2c3814b027a295..452724b4daaf5366d40bfc50731d47bbb0deebfd 100644 (file)
@@ -268,7 +268,7 @@ test_elementtree</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c8bd4f2c32e30a8594fee7754cefe9bb984bf334..bf80f8861d3b44c4b371955e024ded67244c7033 100644 (file)
@@ -1761,17 +1761,20 @@ 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-733', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-734" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-734', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt id="link-735" 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
+<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt id="link-735" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-735', 'XMLParser', 'link-735');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-736" class="py-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-736', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-737', 'XMLParser', 'link-735');">XMLParser</a></tt> </tt>
 <a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"> </tt>
 <a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">        <tt id="link-738" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-738', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-739" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-739', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
 <a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">        <tt id="link-740" 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-740', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-741" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-741', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">        <tt id="link-742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-742', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-743" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
@@ -1809,11 +1812,13 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-753', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-754" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-754', 'tostring', 'link-589');">tostring</a></tt> </tt>
 <a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">        <tt id="link-755" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-755', 'XMLParser', 'link-735');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-756" class="py-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-756', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-757" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-757', 'XMLParser', 'link-735');">XMLParser</a></tt> </tt>
 <a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line"> </tt>
 <a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line">        <tt id="link-758" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-758', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-759" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-759', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test?&gt;&lt;a&gt;&lt;?A?&gt;&lt;b&gt;&lt;?B?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?C?&gt;&lt;/a&gt;&lt;?tail?&gt;'</tt><tt class="py-op">)</tt> </tt>
@@ -1833,6 +1838,7 @@ lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-763'
 <a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line"> </tt>
 <a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">        <tt id="link-764" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-764', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-765" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-765', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_pis</tt><tt class="py-op">=</tt><tt class="py-name">True</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">tree</tt> <tt class="py-op">=</tt> <tt id="link-766" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
@@ -2295,6 +2301,7 @@ 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-920', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-921', 'XMLParser', 'link-735');">XMLParser</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-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"hopefully unknown"</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"> </tt>
 <a name="ETreeOnlyTestCase.test_parser_encoding"></a><div id="ETreeOnlyTestCase.test_parser_encoding-def"><a name="L770"></a><tt class="py-lineno"> 770</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -2303,18 +2310,21 @@ 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-923', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-924" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-924', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-925" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-925', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
 <a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-926" class="py-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-926', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-927" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-927', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-928" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-928', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
 <a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-929" class="py-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-929', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-930', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-931" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-931', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"> </tt>
 <a name="ETreeOnlyTestCase.test_feed_parser_recover"></a><div id="ETreeOnlyTestCase.test_feed_parser_recover-def"><a name="L775"></a><tt class="py-lineno"> 775</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_feed_parser_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_feed_parser_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -2324,6 +2334,7 @@ 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-933', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-934" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-934', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line"> </tt>
 <a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">        <tt id="link-935" class="py-name"><a title="lxml.etree._ElementTree.parser
@@ -2404,6 +2415,7 @@ 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-969', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-970" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-970', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-971" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-971', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L813"></a><tt class="py-lineno"> 813</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-972" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -2462,6 +2474,7 @@ 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-986', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-987', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-988" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-988', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"> </tt>
 <a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
@@ -2515,6 +2528,7 @@ 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-1003', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1004', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1005" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1005', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"> </tt>
 <a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
@@ -2571,6 +2585,7 @@ 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-1020', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1021', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1022" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1022', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"> </tt>
 <a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">        <tt id="link-1023" class="py-name"><a title="lxml.etree._ElementTree.parser
@@ -2615,6 +2630,7 @@ 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-1038', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1039', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1040" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1040', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line"> </tt>
 <a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">        <tt id="link-1041" class="py-name"><a title="lxml.etree._ElementTree.parser
@@ -2656,6 +2672,7 @@ 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-1053', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1054" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1054', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1055" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1055', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 <a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">                                      <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
 <a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"> </tt>
@@ -2699,6 +2716,7 @@ 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-1069', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1070" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1070', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1071" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1071', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 <a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">                                      <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"> </tt>
@@ -2948,6 +2966,7 @@ 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-1180', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1181" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1181', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
 <a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1182" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1182', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
@@ -3003,6 +3022,7 @@ 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-1200', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1201" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1201', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
 <a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1202" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1202', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
@@ -3059,6 +3079,7 @@ 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-1220', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1221" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1221', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
 <a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1222" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1222', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
@@ -3115,6 +3136,7 @@ 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-1241', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1242" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1242', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
 <a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1243" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1243', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
@@ -3172,6 +3194,7 @@ 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-1263', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1264" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1264', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
 <a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1265" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1265', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
@@ -3230,6 +3253,7 @@ 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-1288', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1289" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1289', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</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">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
 <a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1290" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1290', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
@@ -3287,6 +3311,7 @@ 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-1310', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1311" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1311', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
 <a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1312" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1312', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
@@ -3343,6 +3368,7 @@ 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-1327', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1328" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1328', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line"> </tt>
 <a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">_LocalException</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -3402,6 +3428,7 @@ 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-1344', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1345" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1345', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
 <a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">            <tt id="link-1346" class="py-name" targets="Function lxml.etree.Entity()=lxml.etree-module.html#Entity"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1346', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1347" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -3455,6 +3482,7 @@ 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-1371', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1372" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1372', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
 <a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">            <tt id="link-1373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1373', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1374" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -3722,6 +3750,7 @@ 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-1491', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1492" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1492', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
 <a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt id="link-1493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1493', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1494" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -3756,6 +3785,7 @@ 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-1507', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1508" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1508', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
 <a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">        <tt id="link-1509" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1509', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1510" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -5506,8 +5536,8 @@ lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="ret
 <a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2207" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2207', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2087"></a><tt class="py-lineno">2087</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_elementtree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-expanded"><a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">        <tt id="link-2208" class="py-name"><a title="lxml.etree
+<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-def"><a name="L2087"></a><tt class="py-lineno">2087</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-expanded"><a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">        <tt id="link-2208" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -5516,3724 +5546,3955 @@ 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-2209', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt>  </tt>
-<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2210" class="py-name"><a title="lxml.etree
+<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line"> </tt>
+<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">        <tt id="link-2210" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2210', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2211" class="py-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-2210', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2211" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2211', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2212" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2211', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}z'</tt><tt class="py-op">,</tt> <tt id="link-2212" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2212', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2213" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2212', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">                             <tt id="link-2213" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2213', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2214" class="py-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-2213', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2214" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2214', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2215" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2215', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">                            <tt id="link-2216" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2216', 'nsmap', 'link-183');">nsmap</a></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-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line"> </tt>
+<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2217" 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-2217', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2218" 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-2218', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">            <tt id="link-2219" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2219', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line">            <tt id="link-2220" class="py-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-2220', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2221" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2221', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"> </tt>
+<a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line">        <tt id="link-2222" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2222', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2223" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2223', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line">            <tt id="link-2224" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2224', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="http://test/ns"&gt;'</tt> </tt>
+<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
+<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">            <tt id="link-2225" class="py-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-2225', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2226" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2226', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2227" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2227', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-def"><a name="L2108"></a><tt class="py-lineno">2108</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-expanded"><a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">        <tt id="link-2228" class="py-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-2228', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2229" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2229', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line"> </tt>
+<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt id="link-2230" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2230', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2231" class="py-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-2231', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2232" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2232', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2233" class="py-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-2233', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2234" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2234', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">                            <tt id="link-2235" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2235', 'nsmap', 'link-183');">nsmap</a></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-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line"> </tt>
+<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2236" 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-2236', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2237" 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-2237', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line">            <tt id="link-2238" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2238', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">            <tt id="link-2239" class="py-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-2239', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2240', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line"> </tt>
+<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">        <tt id="link-2241" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2241', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2242" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2242', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">            <tt id="link-2243" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2243', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
+<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">            <tt id="link-2244" class="py-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-2244', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2245" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2245', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2246" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2246', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-def"><a name="L2128"></a><tt class="py-lineno">2128</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-expanded"><a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line">        <tt id="link-2247" class="py-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-2247', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2248" class="py-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-2248', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line"> </tt>
+<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">        <tt id="link-2249" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2249', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2250" class="py-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-2250', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2251" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2251', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2252" class="py-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-2252', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2253', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">                            <tt id="link-2254" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2254', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line"> </tt>
+<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2255" 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-2255', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2256" 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-2256', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">            <tt id="link-2257" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2257', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line">            <tt id="link-2258" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2258', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2259" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2259', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line"> </tt>
+<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt id="link-2260" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2260', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2261" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2261', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">            <tt id="link-2262" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2262', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns="http://test/ns"'</tt> </tt>
+<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">                   <tt class="py-string">' xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt> </tt>
+<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">            <tt id="link-2263" class="py-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-2263', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2264', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2265" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2265', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-def"><a name="L2150"></a><tt class="py-lineno">2150</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-expanded"><a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt id="link-2266" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2266', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2267" class="py-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-2267', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line"> </tt>
+<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">        <tt id="link-2268" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2268', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2269" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2269', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2270', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">                             <tt id="link-2271" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2271', 'nsmap', 'link-183');">nsmap</a></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-string">'http://test/ns'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line">                                    <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2272" class="py-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-2272', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2273" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2273', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">                            <tt id="link-2274" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2274', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line"> </tt>
+<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2275" 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-2275', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2276" 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-2276', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">            <tt id="link-2277" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2277', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">            <tt id="link-2278" class="py-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-2278', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2279" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2279', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line"> </tt>
+<a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">        <tt id="link-2280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2280', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2281" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2281', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">            <tt id="link-2282" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2282', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:root xmlns:test="http://test/ns" xmlns="http://test/ns"&gt;'</tt> </tt>
+<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub test:attr="value"/&gt;'</tt> </tt>
+<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/test:root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">            <tt id="link-2283" class="py-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-2283', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2284', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2285" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2285', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2173"></a><tt class="py-lineno">2173</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_elementtree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-expanded"><a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt id="link-2286" class="py-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-2286', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree
+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-2287', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt>  </tt>
+<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2288" class="py-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-2288', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2289" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2289', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}z'</tt><tt class="py-op">,</tt> <tt id="link-2290" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2290', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2291" class="py-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-2291', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2292" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2214', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">        <tt id="link-2215" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2292', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt id="link-2293" class="py-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-2215', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2216" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2216', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/hoi}x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">            <tt id="link-2217" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2217', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi"&gt;&lt;hoi:x&gt;&lt;/hoi:x&gt;&lt;/z&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2218" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2218', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-def"><a name="L2098"></a><tt class="py-lineno">2098</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-expanded"><a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line">        <tt id="link-2219" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2293', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2294" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2294', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/hoi}x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line">            <tt id="link-2295" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2295', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi"&gt;&lt;hoi:x&gt;&lt;/hoi:x&gt;&lt;/z&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2296" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2296', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-def"><a name="L2184"></a><tt class="py-lineno">2184</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-expanded"><a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">        <tt id="link-2297" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2219', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2220" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2297', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree
 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-2220', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"> </tt>
-<a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2221" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2298', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line"> </tt>
+<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2299" class="py-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-2221', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2222" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2299', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2300" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2222', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2223" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2223', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2224" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2300', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2301" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2301', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2302" class="py-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-2224', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2302', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2303" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2225', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2226" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2226', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line"> </tt>
-<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2227" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2227', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line"> </tt>
-<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2228', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">            <tt class="py-name">e1</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-2229" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2229', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2230" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2303', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2304" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2304', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line"> </tt>
+<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2305', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line"> </tt>
+<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2306" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2306', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line">            <tt class="py-name">e1</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-2307" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2307', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2308" 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-2230', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line">            <tt class="py-name">e1</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-2231" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2308', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">            <tt class="py-name">e1</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-2309" 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-2231', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2120"></a><tt class="py-lineno">2120</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-expanded"><a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">        <tt id="link-2232" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2309', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2206"></a><tt class="py-lineno">2206</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-expanded"><a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">        <tt id="link-2310" class="py-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-2232', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2233" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2310', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2311" class="py-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-2233', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line"> </tt>
-<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/BAR'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2234" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2311', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line"> </tt>
+<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/BAR'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2312" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2234', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2235" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2312', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2235', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> <tt id="link-2236" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2236', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2237" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2313', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> <tt id="link-2314" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2314', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2315" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2237', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2238" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2315', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2238', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2239" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2239', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line"> </tt>
-<a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2240', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line"> </tt>
-<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2241" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2241', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2242" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2242', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2243" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2316', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2317" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2317', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line"> </tt>
+<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2318" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2318', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line"> </tt>
+<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2319" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2319', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2320" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2320', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2321" 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-2243', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2244" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2321', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2322" 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-2244', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_reuse_after_move"></a><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-def"><a name="L2142"></a><tt class="py-lineno">2142</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_reuse_after_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-expanded"><a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2245" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2322', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_reuse_after_move"></a><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-def"><a name="L2228"></a><tt class="py-lineno">2228</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_reuse_after_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-expanded"><a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2323" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2245', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2246" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2323', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2324" 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-2246', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">            <tt id="link-2247" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2247', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line"> </tt>
-<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2248" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2324', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">            <tt id="link-2325" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2325', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line"> </tt>
+<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2248', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2249" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2326', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2327" 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-2249', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">            <tt id="link-2250" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2250', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2251" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2251', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
-<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt> <tt class="py-comment"># make sure the source document is deallocated</tt> </tt>
-<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line"> </tt>
-<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">.</tt><tt id="link-2252" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2327', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">            <tt id="link-2328" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2328', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2329', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
+<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt> <tt class="py-comment"># make sure the source document is deallocated</tt> </tt>
+<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line"> </tt>
+<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">.</tt><tt id="link-2330" 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-2252', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line">            <tt id="link-2253" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2253', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2254" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2330', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line">            <tt id="link-2331" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2331', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2332" class="py-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-2254', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2255', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">two</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2158"></a><tt class="py-lineno">2158</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespace_cleanup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup-expanded"><a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">        <tt id="link-2256" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2256', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2257" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2257', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">        <tt id="link-2258" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2258', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2259" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2332', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2333', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">two</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2244"></a><tt class="py-lineno">2244</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespace_cleanup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup-expanded"><a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">        <tt id="link-2334" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2334', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2335" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2335', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line">        <tt id="link-2336" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2336', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2337" class="py-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-2259', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2260" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2337', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2338" 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-2260', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2261" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2261', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2262" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2262', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2263" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2338', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2339" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2339', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2340" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2340', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2341" class="py-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-2263', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2264', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2265" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2265', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2266" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2341', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2342" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2342', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2343" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2343', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2344" class="py-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-2266', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2267" class="py-name" targets="Function lxml.etree.cleanup_namespaces()=lxml.etree-module.html#cleanup_namespaces"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-2267', 'cleanup_namespaces', 'link-2267');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-2268" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2268', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line">            <tt id="link-2269" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2269', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F"&gt;&lt;bar xmlns:ns="NS" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2344', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2345" class="py-name" targets="Function lxml.etree.cleanup_namespaces()=lxml.etree-module.html#cleanup_namespaces"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-2345', 'cleanup_namespaces', 'link-2345');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-2346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2346', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">            <tt id="link-2347" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2347', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F"&gt;&lt;bar xmlns:ns="NS" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2348" class="py-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-2270', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2271" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2271', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2272" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2272', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2168"></a><tt class="py-lineno">2168</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_nsmap-expanded"><a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">        <tt id="link-2273" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2348', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2349" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2349', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2350', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2254"></a><tt class="py-lineno">2254</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_nsmap-expanded"><a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt id="link-2351" class="py-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-2273', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2274" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2351', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2352" class="py-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-2274', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line"> </tt>
-<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2275" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2352', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line"> </tt>
+<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2353" class="py-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-2275', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2353', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2354" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2276', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2277" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2277', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
-<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2278" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2278', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2178"></a><tt class="py-lineno">2178</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_nsmap-expanded"><a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt id="link-2279" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2354', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2355" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2355', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
+<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2356" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2356', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2264"></a><tt class="py-lineno">2264</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_nsmap-expanded"><a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">        <tt id="link-2357" class="py-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-2279', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2280" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2357', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2358" class="py-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-2280', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line"> </tt>
-<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line">        <tt class="py-name">re</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2281" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2358', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line"> </tt>
+<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line">        <tt class="py-name">re</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2359" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2281', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2282" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2359', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2360" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2282', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2283" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2283', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
-<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line"> </tt>
-<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">        <tt class="py-name">rs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/honk'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">             <tt class="py-string">'top'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/top'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-2284" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2360', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2361" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2361', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
+<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line"> </tt>
+<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">        <tt class="py-name">rs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/honk'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">             <tt class="py-string">'top'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/top'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-2362" class="py-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-2284', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2285" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2285', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/honk}bar'</tt><tt class="py-op">,</tt> <tt id="link-2286" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2286', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line"> </tt>
-<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2362', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2363" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2363', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/honk}bar'</tt><tt class="py-op">,</tt> <tt id="link-2364" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2364', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
+<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line"> </tt>
+<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2365" 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-2287', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-2288" 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-2288', 'update', 'link-2288');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2289" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2289', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt>  <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-2290" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2290', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L2194"></a><tt class="py-lineno">2194</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_prefix_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_prefix_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-expanded"><a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">        <tt id="link-2291" class="py-name"><a title="lxml.etree
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-2365', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-2366" 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-2366', 'update', 'link-2366');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
+<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2367', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt>  <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-2368" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2368', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L2280"></a><tt class="py-lineno">2280</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_prefix_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_prefix_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-expanded"><a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line">        <tt id="link-2369" class="py-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-2291', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2292" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2369', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2292', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2293" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2370', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2371" class="py-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-2293', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2294" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2371', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2372" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2294', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;hha:page-description&gt;aa&lt;/hha:page-description&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2295" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2372', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;hha:page-description&gt;aa&lt;/hha:page-description&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2373" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2295', 'find', 'link-2295');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'hha'</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-name">el</tt><tt class="py-op">.</tt><tt id="link-2296" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2296', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L2199"></a><tt class="py-lineno">2199</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-expanded"><a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line">        <tt id="link-2297" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2373', 'find', 'link-2373');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'hha'</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-name">el</tt><tt class="py-op">.</tt><tt id="link-2374" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2374', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L2285"></a><tt class="py-lineno">2285</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-expanded"><a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt id="link-2375" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2297', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2375', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2376" class="py-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-2298', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2299" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2376', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2377" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2299', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">        <tt id="link-2300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2300', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2301" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2377', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">        <tt id="link-2378" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2378', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2379" class="py-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-2301', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2302', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line"> </tt>
-<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2303" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2379', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2380', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line"> </tt>
+<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2381" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2303', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2304" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2304', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2305" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2305', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2306" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2306', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2307" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2307', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2308" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2308', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line"> </tt>
-<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2309" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2309', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2310" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2310', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2311" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2311', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2312" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2312', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2313', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-def"><a name="L2226"></a><tt class="py-lineno">2226</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-expanded"><a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line">        <tt id="link-2314" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2381', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2382" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2382', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2383" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2383', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2384" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2384', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2385" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2385', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2386" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2386', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line"> </tt>
+<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2387" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2387', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2388" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2388', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2304"></a><tt class="py-lineno">2304</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2389', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2390" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2390', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2391', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-def"><a name="L2312"></a><tt class="py-lineno">2312</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-expanded"><a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">        <tt id="link-2392" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2314', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2315" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2392', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2393" class="py-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-2315', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2393', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2394" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2316', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">        <tt id="link-2317" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2317', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2318" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2394', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line">        <tt id="link-2395" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2395', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2396" class="py-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-2318', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2319" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2319', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line"> </tt>
-<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2320" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2396', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2397" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2397', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line"> </tt>
+<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2398" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2320', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2321" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2321', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2322" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2322', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2323" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2323', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2324" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2324', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2325" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2325', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line"> </tt>
-<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2326', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2327" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2327', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2328" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2328', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">                     <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2329', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2330', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L2253"></a><tt class="py-lineno">2253</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_namespace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-expanded"><a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line">        <tt id="link-2331" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2398', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2399" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2399', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2400" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2400', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2401" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2401', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2402" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2402', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2403" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2403', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line"> </tt>
+<a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2404', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2405', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2406', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">                     <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2407" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2407', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2408', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L2339"></a><tt class="py-lineno">2339</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_namespace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-expanded"><a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">        <tt id="link-2409" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2409', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2410" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2410', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2411', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt id="link-2412" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2412', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2413" class="py-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-2413', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2414" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2414', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line"> </tt>
+<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2415" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2415', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2416" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2416', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2417" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2417', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2418" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2418', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2419" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2419', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2420" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2420', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2421" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2421', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line"> </tt>
+<a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2422', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2423" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2423', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2424" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2424', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2425" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2425', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2426" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2426', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2427" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2427', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2428" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2428', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2429" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2429', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2430" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2430', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_local_name"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-def"><a name="L2379"></a><tt class="py-lineno">2379</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_local_name-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_local_name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_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="ETreeOnlyTestCase.test_getiterator_filter_local_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-expanded"><a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">        <tt id="link-2431" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2331', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2332" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2431', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2432" class="py-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-2332', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2432', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2433" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2333', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt id="link-2334" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2334', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2335" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2433', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line">        <tt id="link-2434" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2434', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2435" class="py-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-2335', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2336" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2336', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line"> </tt>
-<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2337" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2337', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2338" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2338', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2339" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2339', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2340" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2340', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2341" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2341', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2342" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2342', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2343" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2343', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line"> </tt>
-<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2344" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2344', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2345" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2345', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2346" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2346', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2347" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2347', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2348', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2280"></a><tt class="py-lineno">2280</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2349" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2349', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2350" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2350', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2351" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2351', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2352" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2352', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_local_name"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-def"><a name="L2293"></a><tt class="py-lineno">2293</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_local_name-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_local_name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_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="ETreeOnlyTestCase.test_getiterator_filter_local_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-expanded"><a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line">        <tt id="link-2353" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2353', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2354" class="py-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-2354', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2355" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2355', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line">        <tt id="link-2356" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2356', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2357" class="py-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-2357', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2358', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line"> </tt>
-<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2359" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2359', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2360" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2360', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2361" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2361', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2362" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2362', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2363" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2363', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2364" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2364', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2365" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2365', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2304"></a><tt class="py-lineno">2304</tt>  <tt class="py-line"> </tt>
-<a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2366" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2366', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2367', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2312"></a><tt class="py-lineno">2312</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2368" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2368', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L2315"></a><tt class="py-lineno">2315</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_entities-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_entities');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-expanded"><a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt id="link-2369" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2435', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2436" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2436', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line"> </tt>
+<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2437" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2369', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2437', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2438" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2438', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2439" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2439', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2440" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2440', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2441" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2441', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2442" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2442', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2443" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2443', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line"> </tt>
+<a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2444" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2444', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2396"></a><tt class="py-lineno">2396</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2445" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2445', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2446', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L2401"></a><tt class="py-lineno">2401</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_entities-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_entities');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-expanded"><a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">        <tt id="link-2447" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2447', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2448" class="py-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-2370', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2371" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2448', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2449" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2371', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">        <tt id="link-2372" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2372', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2373" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2449', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">        <tt id="link-2450" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2450', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2451" class="py-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-2373', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2374" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2374', 'Entity', 'link-1346');">Entity</a></tt> </tt>
-<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt id="link-2375" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2375', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2451', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2452" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2452', 'Entity', 'link-1346');">Entity</a></tt> </tt>
+<a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line">        <tt id="link-2453" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2453', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2454" class="py-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-2376', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2377" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2377', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line"> </tt>
-<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2378" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2454', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2455', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line"> </tt>
+<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2456" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2378', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2379" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2379', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-2380" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2380', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2381" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2381', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line"> </tt>
-<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2382" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2382', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2383" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2383', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line"> </tt>
-<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-2384" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2384', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2385" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2385', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line"> </tt>
-<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">,</tt> <tt class="py-name">entity_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2386" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2386', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2387" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2387', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line"> </tt>
-<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2388" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2388', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2389" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2389', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L2340"></a><tt class="py-lineno">2340</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-expanded"><a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt id="link-2390" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2456', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2457" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2457', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-2458" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2458', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2459" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2459', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line"> </tt>
+<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2460" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2460', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2461" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2461', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line"> </tt>
+<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-2462" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2462', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2463" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2463', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line"> </tt>
+<a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">,</tt> <tt class="py-name">entity_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2464', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2465" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2465', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line"> </tt>
+<a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2466" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2466', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2467" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2467', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L2426"></a><tt class="py-lineno">2426</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-expanded"><a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">        <tt id="link-2468" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2390', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2468', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2469" class="py-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-2391', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2392" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2469', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2470" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2392', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line">        <tt id="link-2393" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2393', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2394" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2470', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">        <tt id="link-2471" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2471', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2472" class="py-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-2394', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2395" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2395', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">        <tt id="link-2396" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2396', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2397" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2472', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2473" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2473', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">        <tt id="link-2474" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2474', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2475" class="py-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-2397', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2398" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2398', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">        <tt id="link-2399" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2399', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2400" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2475', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2476" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2476', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L2430"></a><tt class="py-lineno">2430</tt>  <tt class="py-line">        <tt id="link-2477" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2477', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2478" class="py-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-2400', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2401" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2401', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line"> </tt>
-<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2402" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2478', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2479" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2479', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line"> </tt>
+<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2480" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2402', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2403" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2403', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2404', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2405" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2405', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2406', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2407" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2407', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2408" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2408', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line"> </tt>
-<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2409" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2409', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2410" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2480', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2481" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2481', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2482" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2482', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2483" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2483', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2484" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2484', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2485" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2485', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2486" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2486', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line"> </tt>
+<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2487', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2488" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2410', 'Element', 'link-61');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-def"><a name="L2356"></a><tt class="py-lineno">2356</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-expanded"><a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
-<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">        <tt id="link-2411" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2488', 'Element', 'link-61');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-def"><a name="L2442"></a><tt class="py-lineno">2442</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-expanded"><a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
+<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">        <tt id="link-2489" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2411', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2412" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2489', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2490" class="py-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-2412', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2413" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2490', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2491" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2413', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line">        <tt id="link-2414" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2414', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2415" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2491', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line">        <tt id="link-2492" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2492', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2493" class="py-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-2415', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2416" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2416', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt id="link-2417" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2417', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2418" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2493', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2494" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2494', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">        <tt id="link-2495" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2495', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2496" class="py-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-2418', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2419" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2419', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">        <tt id="link-2420" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2420', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2421" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2496', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2497" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2497', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">        <tt id="link-2498" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2498', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2499" class="py-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-2421', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2422', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line"> </tt>
-<a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2423" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2499', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2500" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2500', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line"> </tt>
+<a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2501" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2423', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2424" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2424', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2425" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2425', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2426" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2426', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2427" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2427', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2428" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2428', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2429" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2429', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line"> </tt>
-<a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2430" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2430', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L2373"></a><tt class="py-lineno">2373</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_find_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_find_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-expanded"><a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">        <tt id="link-2431" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2501', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2502" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2502', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2503" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2503', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2504" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2504', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2505', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2506" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2506', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2507" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2507', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line"> </tt>
+<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2508" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2508', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L2459"></a><tt class="py-lineno">2459</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_find_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_find_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-expanded"><a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line">        <tt id="link-2509" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2431', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2509', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2510" class="py-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-2432', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2433" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2510', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2511" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2433', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">        <tt id="link-2434" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2511', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">        <tt id="link-2512" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2434', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2435" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2512', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2513" class="py-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-2435', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2436" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2513', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2514" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2436', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line">        <tt id="link-2437" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2437', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2438" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2514', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt id="link-2515" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2515', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2516" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2438', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2439" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2439', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2440" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2516', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2517" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2517', 'QName', 'link-149');">QName</a></tt> </tt>
+<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2518" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2440', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2441" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2518', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2519" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2441', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2442" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2442', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2443" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2519', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2520', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2521" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2443', 'find', 'link-2295');">find</a></tt><tt class="py-op">(</tt><tt id="link-2444" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2444', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2445" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2445', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2379"></a><tt class="py-lineno">2379</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L2380"></a><tt class="py-lineno">2380</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-expanded"><a name="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line">        <tt id="link-2446" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2521', 'find', 'link-2373');">find</a></tt><tt class="py-op">(</tt><tt id="link-2522" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2522', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2523" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2523', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L2466"></a><tt class="py-lineno">2466</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-expanded"><a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">        <tt id="link-2524" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2446', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2447" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2524', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2525" class="py-name"><a title="lxml.etree
 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-2447', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2448" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2525', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2526" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2448', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line">        <tt id="link-2449" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2526', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">        <tt id="link-2527" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2449', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2450" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2527', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2450', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2451" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2528', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2529" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2451', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt id="link-2452" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2452', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2453" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2529', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">        <tt id="link-2530" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2530', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2531" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2453', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2454" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2454', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2455" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2531', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2532', 'QName', 'link-149');">QName</a></tt> </tt>
+<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2533" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2455', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2456" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2533', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2534" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2456', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2457" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2457', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2458" 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-2458', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2459" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2459', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_findall_ns_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-def"><a name="L2387"></a><tt class="py-lineno">2387</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_ns_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-expanded"><a name="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt id="link-2460" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2534', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2535" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2535', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2536" 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-2536', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2537" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2537', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_findall_ns_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-def"><a name="L2473"></a><tt class="py-lineno">2473</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_ns_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-expanded"><a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line">        <tt id="link-2538" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2460', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2461" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2538', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2539" class="py-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-2461', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2462" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2539', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2540" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2462', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">        <tt id="link-2463" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2540', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt id="link-2541" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2463', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2541', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2542" class="py-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-2464', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2465" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2542', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2543" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2465', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line">        <tt id="link-2466" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2466', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2467" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2543', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt id="link-2544" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2544', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2545" class="py-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-2467', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2468" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2468', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2469" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2545', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2546" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2546', 'QName', 'link-149');">QName</a></tt> </tt>
+<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2547" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2469', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2470" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2547', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2548" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2470', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">                <tt id="link-2471" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2471', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2472" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2472', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2473" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2473', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2474', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2475" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2475', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">,</tt> <tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L2396"></a><tt class="py-lineno">2396</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_ns-expanded"><a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">        <tt id="link-2476" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2548', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">                <tt id="link-2549" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2549', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2550', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2551" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2551', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2552" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2552', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2553" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2553', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">,</tt> <tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L2482"></a><tt class="py-lineno">2482</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_ns-expanded"><a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line">        <tt id="link-2554" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2476', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2554', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2555" class="py-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-2477', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2478" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2555', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2556" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2478', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">        <tt id="link-2479" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2479', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2480" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2556', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line">        <tt id="link-2557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2557', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2558" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2480', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2481" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2481', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2482', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2483" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2483', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2484" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2484', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2485" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2485', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}*"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2486" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2486', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2487', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2403"></a><tt class="py-lineno">2403</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line">        <tt id="link-2488" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2558', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2559', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2560" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2560', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2561" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2561', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2562', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2563', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}*"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2564" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2564', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2565', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2489"></a><tt class="py-lineno">2489</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt id="link-2566" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2488', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2489" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2566', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2567" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2489', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2490" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2567', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2568" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2490', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line">        <tt id="link-2491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2491', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2492" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2568', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt id="link-2569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2569', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2570" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2492', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2493" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2493', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt id="link-2494" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2494', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2495" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2495', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2496" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2496', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2497" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2497', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2498" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2498', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2499" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2499', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2500" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2500', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2501" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2501', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2502', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2503" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2503', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line">        <tt id="link-2504" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2504', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2505" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2505', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2506" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2506', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2507" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2507', 'nsmap', 'link-183');">nsmap</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="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2508" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2508', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2509" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2509', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2510" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2510', 'nsmap', 'link-183');">nsmap</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="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2511" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2511', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2512" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2512', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2513" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2513', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2415"></a><tt class="py-lineno">2415</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">        <tt id="link-2514" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2570', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2571" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2571', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">        <tt id="link-2572" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2572', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2573" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2573', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2574" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2574', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2575" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2575', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2576" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2576', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2577', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2578" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2578', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2579" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2579', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2580', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2581" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2581', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2496"></a><tt class="py-lineno">2496</tt>  <tt class="py-line">        <tt id="link-2582" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2582', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2583" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2583', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2584" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2584', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2585" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2585', 'nsmap', 'link-183');">nsmap</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="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2586" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2586', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2587" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2587', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2588" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2588', 'nsmap', 'link-183');">nsmap</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="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2589" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2589', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2590" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2590', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2591" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2591', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2501"></a><tt class="py-lineno">2501</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">        <tt id="link-2592" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2514', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2515" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2592', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2593" class="py-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-2515', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2516" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2593', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2594" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2516', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line">        <tt id="link-2517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2517', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2518" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2594', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line">        <tt id="link-2595" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2595', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2596" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2518', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2519" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2519', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt id="link-2520" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2520', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2521" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2521', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2522" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2522', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2523" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2523', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2524" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2524', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2525" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2525', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2526" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2526', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2527" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2527', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2528', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2529" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2529', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line">        <tt id="link-2530" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2530', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2531" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2531', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2532', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2533" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2533', 'nsmap', 'link-183');">nsmap</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="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2534', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2535" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2535', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2536" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2536', 'nsmap', 'link-183');">nsmap</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="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2537" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2537', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2538" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2538', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2539" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2539', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2426"></a><tt class="py-lineno">2426</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L2427"></a><tt class="py-lineno">2427</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_syntax_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_syntax_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_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="ETreeOnlyTestCase.test_findall_syntax_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_syntax_error-expanded"><a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">        <tt id="link-2540" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2596', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2597" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2597', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">        <tt id="link-2598" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2598', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2599" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2599', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2600" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2600', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2601" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2601', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2602" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2602', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2603" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2603', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2604" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2604', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2605" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2605', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2606', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2607" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2607', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line">        <tt id="link-2608" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2608', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2609" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2609', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2610" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2610', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2611" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2611', 'nsmap', 'link-183');">nsmap</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="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2612" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2612', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2613" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2613', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2614" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2614', 'nsmap', 'link-183');">nsmap</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="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2615" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2615', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2616" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2616', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2617" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2617', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L2513"></a><tt class="py-lineno">2513</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_syntax_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_syntax_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_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="ETreeOnlyTestCase.test_findall_syntax_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_syntax_error-expanded"><a name="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">        <tt id="link-2618" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2540', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2541" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2618', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2619" class="py-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-2541', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2542" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2619', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2542', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">        <tt id="link-2543" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2543', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2544" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2620', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt id="link-2621" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2621', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2622" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2544', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2545" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2545', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2430"></a><tt class="py-lineno">2430</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2546" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2546', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2547', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2548', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2549" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2549', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'//'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># absolute path on Element</tt> </tt>
-<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2550" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2550', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2551" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2551', 'findall', 'link-2458');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L2434"></a><tt class="py-lineno">2434</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_index-toggle" onclick="return toggle('ETreeOnlyTestCase.test_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_index-expanded"><a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt id="link-2552" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2622', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2623" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2623', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2624', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2625" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2625', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2626" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2626', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2627" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2627', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'//'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># absolute path on Element</tt> </tt>
+<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2628" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2628', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2629" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2629', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L2520"></a><tt class="py-lineno">2520</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_index-toggle" onclick="return toggle('ETreeOnlyTestCase.test_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_index-expanded"><a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line">        <tt id="link-2630" class="py-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-2552', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2553" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2630', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2631" class="py-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-2553', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2554" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2631', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2632" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2554', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2555" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2632', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2555', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line">            <tt id="link-2556" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2633', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">            <tt id="link-2634" class="py-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-2556', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2557" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2557', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line">                <tt class="py-name">i</tt><tt class="py-op">,</tt> </tt>
-<a name="L2442"></a><tt class="py-lineno">2442</tt>  <tt class="py-line">                <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2558" 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-2558', 'index', 'link-2558');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">            <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2559" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2559', 'index', 'link-2558');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2560" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2560', 'index', 'link-2558');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2561" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2561', 'index', 'link-2558');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2562" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2562', 'index', 'link-2558');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2563', 'index', 'link-2558');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2564" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2564', 'index', 'link-2558');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2565', 'index', 'link-2558');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line">            <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2566" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2566', 'index', 'link-2558');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</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>
-</div><a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L2460"></a><tt class="py-lineno">2460</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace-expanded"><a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">        <tt id="link-2567" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2634', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2635" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2635', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">                <tt class="py-name">i</tt><tt class="py-op">,</tt> </tt>
+<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">                <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2636" 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-2636', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">            <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2637', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2638" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2638', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2639" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2639', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2640" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2640', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2641" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2641', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2642" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2642', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2643" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2643', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">            <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2644" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2644', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</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>
+</div><a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L2546"></a><tt class="py-lineno">2546</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace-expanded"><a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">        <tt id="link-2645" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2567', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2568" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2645', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2646" class="py-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-2568', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2569" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2646', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2647" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2569', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2570" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2647', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2648" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2570', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2571" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2648', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2649" class="py-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-2571', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2572" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2572', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2573" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2649', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2650" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2650', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2651" 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-2573', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L2466"></a><tt class="py-lineno">2466</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2574" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2574', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line"> </tt>
-<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">        <tt class="py-name">child0</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt class="py-name">child2</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line"> </tt>
-<a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2575" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2575', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</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">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line">            <tt class="py-number">9</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2576" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2651', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2652" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2652', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line"> </tt>
+<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line">        <tt class="py-name">child0</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">        <tt class="py-name">child2</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line"> </tt>
+<a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2653" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2653', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</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">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">            <tt class="py-number">9</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2654" 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-2576', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2577', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2482"></a><tt class="py-lineno">2482</tt>  <tt class="py-line">            <tt class="py-name">child0</tt><tt class="py-op">.</tt><tt id="link-2578" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2578', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line"> </tt>
-<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2579" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2579', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</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-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2489"></a><tt class="py-lineno">2489</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2654', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2655" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2655', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">            <tt class="py-name">child0</tt><tt class="py-op">.</tt><tt id="link-2656" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2656', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line"> </tt>
+<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2657" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2657', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</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-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2658" 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-2580', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2581" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2581', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L2496"></a><tt class="py-lineno">2496</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace_new-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_replace_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace_new-expanded"><a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">        <tt id="link-2582" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2658', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2659" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2659', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L2582"></a><tt class="py-lineno">2582</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace_new-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_replace_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace_new-expanded"><a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">        <tt id="link-2660" class="py-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-2582', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2583" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2660', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2661" class="py-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-2583', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2584" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2661', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2662" class="py-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-2584', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2585" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2662', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2585', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line">            <tt id="link-2586" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2663', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line">            <tt id="link-2664" class="py-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-2586', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2587" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2587', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line"> </tt>
-<a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-2588" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2664', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2665" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2665', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line"> </tt>
+<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-2666" class="py-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-2588', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2589" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2666', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2589', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2590" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2667', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2668" 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-2590', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
-<a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2591" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2591', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
-<a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2592" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2592', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</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">new_element</tt><tt class="py-op">)</tt> </tt>
-<a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">            <tt class="py-name">e</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-2593" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2668', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
+<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2669" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2669', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
+<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2670" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2670', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</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">new_element</tt><tt class="py-op">)</tt> </tt>
+<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line">            <tt class="py-name">e</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-2671" 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-2593', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2513"></a><tt class="py-lineno">2513</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">            <tt class="py-name">e</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-2594" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2594', 'tail', 'link-842');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_all_empty_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-def"><a name="L2518"></a><tt class="py-lineno">2518</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_empty_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-expanded"><a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line">        <tt id="link-2595" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2671', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line">            <tt class="py-name">e</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-2672" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2672', 'tail', 'link-842');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_all_empty_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-def"><a name="L2604"></a><tt class="py-lineno">2604</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_empty_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-expanded"><a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">        <tt id="link-2673" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2595', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2596" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2673', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2674" class="py-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-2596', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2597" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2674', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2597', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line">        <tt id="link-2598" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2598', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2599" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2675', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">        <tt id="link-2676" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2676', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2599', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2600" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2600', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line"> </tt>
-<a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2601" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2677', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2678" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2678', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line"> </tt>
+<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2679" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2601', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line"> </tt>
-<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2602" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2679', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line"> </tt>
+<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2680" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2602', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2603" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2680', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2681" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2603', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2604" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2681', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2682" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2604', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line"> </tt>
-<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L2534"></a><tt class="py-lineno">2534</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step-expanded"><a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">        <tt id="link-2605" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2682', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line"> </tt>
+<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L2620"></a><tt class="py-lineno">2620</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step-expanded"><a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line">        <tt id="link-2683" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2605', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2683', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2684" class="py-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-2606', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2607" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2684', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2685" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2607', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">        <tt id="link-2608" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2608', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2685', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line">        <tt id="link-2686" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2686', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2687" class="py-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-2609', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2610" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2610', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line"> </tt>
-<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2611" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2687', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2688" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2688', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line"> </tt>
+<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2689" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2611', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2612" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2612', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2613" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2613', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2614" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2614', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2615" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2615', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line"> </tt>
-<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2616" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2689', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2690" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2690', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2691" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2691', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2692" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2692', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2693" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2693', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line"> </tt>
+<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2694" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2616', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2617" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2694', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2695" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2617', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line"> </tt>
-<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L2552"></a><tt class="py-lineno">2552</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative-expanded"><a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line">        <tt id="link-2618" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2695', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line"> </tt>
+<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L2638"></a><tt class="py-lineno">2638</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative-expanded"><a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">        <tt id="link-2696" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2618', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2619" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2696', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2697" class="py-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-2619', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2697', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2620', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line">        <tt id="link-2621" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2621', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2622" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2698', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line">        <tt id="link-2699" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2699', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2700" class="py-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-2622', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2623" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2623', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line"> </tt>
-<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2624" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2700', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2701', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line"> </tt>
+<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2702" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2624', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2625" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2625', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2626" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2626', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2627" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2627', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2628" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2628', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line"> </tt>
-<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2629" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2702', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2703" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2703', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2704" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2704', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2645"></a><tt class="py-lineno">2645</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2705" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2705', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2706" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2706', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line"> </tt>
+<a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2707" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2629', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2630" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2707', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2708" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2630', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line"> </tt>
-<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L2570"></a><tt class="py-lineno">2570</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative2-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-expanded"><a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">        <tt id="link-2631" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2708', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line"> </tt>
+<a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2655"></a><tt class="py-lineno">2655</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L2656"></a><tt class="py-lineno">2656</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative2-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-expanded"><a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">        <tt id="link-2709" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2631', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2632" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2709', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2710" class="py-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-2632', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2710', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2633', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">        <tt id="link-2634" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2634', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2635" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2711', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line">        <tt id="link-2712" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2712', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2713" class="py-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-2635', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2636" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2636', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line"> </tt>
-<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2637" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2713', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2714" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2714', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line"> </tt>
+<a name="L2660"></a><tt class="py-lineno">2660</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2715" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2637', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2638" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2638', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2639" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2639', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2640" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2640', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2641" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2641', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line"> </tt>
-<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2642" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2715', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2716" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2716', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2717" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2717', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2718" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2718', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2719" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2719', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line"> </tt>
+<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2720" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2642', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2643" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2720', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2721" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2643', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line"> </tt>
-<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L2588"></a><tt class="py-lineno">2588</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_overrun-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_overrun');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-expanded"><a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt id="link-2644" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2721', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line"> </tt>
+<a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L2674"></a><tt class="py-lineno">2674</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_overrun-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_overrun');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-expanded"><a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">        <tt id="link-2722" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2644', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2645" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2722', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2723" class="py-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-2645', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2646" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2723', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2646', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">        <tt id="link-2647" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2647', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2648" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2724', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line">        <tt id="link-2725" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2725', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2726" class="py-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-2648', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2649" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2649', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">            <tt class="py-name">slice</tt> </tt>
-<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
-<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"slice() not found"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
-<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line"> </tt>
-<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2650" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2726', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2727" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2727', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line">            <tt class="py-name">slice</tt> </tt>
+<a name="L2679"></a><tt class="py-lineno">2679</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
+<a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"slice() not found"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line"> </tt>
+<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2728" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2650', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2651" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2651', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2652" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2652', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2653" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2653', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2654" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2654', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line"> </tt>
-<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2655" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2728', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2729" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2729', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2730" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2730', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2731" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2731', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2732" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2732', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line"> </tt>
+<a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2733" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2655', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2656" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2733', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2734" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2656', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2657" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2734', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2735" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2657', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line"> </tt>
-<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
-<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line">            <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line"> </tt>
-<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L2615"></a><tt class="py-lineno">2615</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_XML-expanded"><a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">        <tt id="link-2658" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2735', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line"> </tt>
+<a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
+<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">            <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2696"></a><tt class="py-lineno">2696</tt>  <tt class="py-line"> </tt>
+<a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L2701"></a><tt class="py-lineno">2701</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_XML-expanded"><a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">        <tt id="link-2736" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2658', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2659" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2736', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2737" class="py-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-2659', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2660" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2737', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2738" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2660', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">        <tt id="link-2661" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2661', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2662" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2738', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">        <tt id="link-2739" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2739', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2740" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2662', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2663" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2663', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
-<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L2620"></a><tt class="py-lineno">2620</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line"> </tt>
-<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2664" class="py-name" targets="Variable lxml.etree._Element.sourceline=lxml.etree._Element-class.html#sourceline"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2664', 'sourceline', 'link-2664');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2665" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2665', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2666" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2666', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L2628"></a><tt class="py-lineno">2628</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_parse-expanded"><a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line">        <tt id="link-2667" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2740', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2741" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2741', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
+<a name="L2705"></a><tt class="py-lineno">2705</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line"> </tt>
+<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2742" class="py-name" targets="Variable lxml.etree._Element.sourceline=lxml.etree._Element-class.html#sourceline"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2742', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2743" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2743', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2744', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2713"></a><tt class="py-lineno">2713</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L2714"></a><tt class="py-lineno">2714</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_parse-expanded"><a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line">        <tt id="link-2745" 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-2667', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2745', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2746" class="py-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-2668', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2669" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2746', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2747" 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-2669', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2670" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2747', 'parse', 'link-749');">parse</a></tt> </tt>
+<a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2748" 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-2670', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2671" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2671', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line"> </tt>
-<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2672" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2672', 'sourceline', 'link-2664');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2673" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2673', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L2636"></a><tt class="py-lineno">2636</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-expanded"><a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line">        <tt id="link-2674" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2674', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2675', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2676" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2676', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L2638"></a><tt class="py-lineno">2638</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2677', 'sourceline', 'link-2664');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
-<a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">                  <tt id="link-2678" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2678', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2679" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2679', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line"> </tt>
-<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L2645"></a><tt class="py-lineno">2645</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-expanded"><a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-line">        <tt id="link-2680" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2680', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2681" class="py-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-2681', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2682" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2682', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2683" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2683', 'sourceline', 'link-2664');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
-<a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">                  <tt id="link-2684" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2684', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2685" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2685', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line">                            <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line"> </tt>
-<a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L2655"></a><tt class="py-lineno">2655</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_element-expanded"><a name="L2656"></a><tt class="py-lineno">2656</tt>  <tt class="py-line">        <tt id="link-2686" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2748', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2749" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2749', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line"> </tt>
+<a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2750" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2750', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2751" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2751', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L2722"></a><tt class="py-lineno">2722</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-expanded"><a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">        <tt id="link-2752" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2752', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2753" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2753', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2754" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2754', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
+<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2755', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
+<a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">                  <tt id="link-2756" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2756', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2757" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2757', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line"> </tt>
+<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L2731"></a><tt class="py-lineno">2731</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-expanded"><a name="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">        <tt id="link-2758" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2758', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2759" class="py-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-2759', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2760" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2760', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
+<a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2761" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2761', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
+<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">                  <tt id="link-2762" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2762', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2763" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2763', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2735"></a><tt class="py-lineno">2735</tt>  <tt class="py-line">                            <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line"> </tt>
+<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L2741"></a><tt class="py-lineno">2741</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_element-expanded"><a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">        <tt id="link-2764" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2686', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2764', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2765" class="py-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-2687', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2688" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2765', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2688', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">        <tt id="link-2689" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2689', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2690" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2766', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line">        <tt id="link-2767" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2767', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2768" class="py-name"><a title="lxml.etree
 lxml.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-2690', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2691" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2691', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2692" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2768', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2769', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2744"></a><tt class="py-lineno">2744</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2770" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2692', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2693" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2693', 'sourceline', 'link-2664');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2660"></a><tt class="py-lineno">2660</tt>  <tt class="py-line"> </tt>
-<a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-2694" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2694', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2695" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2695', 'sourceline', 'link-2664');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2696" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2696', 'sourceline', 'link-2664');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-def"><a name="L2665"></a><tt class="py-lineno">2665</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-expanded"><a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line">        <tt id="link-2697" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2770', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2771" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2771', 'sourceline', 'link-2742');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line"> </tt>
+<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-2772" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2772', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2773" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2773', 'sourceline', 'link-2742');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2774" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2774', 'sourceline', 'link-2742');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-def"><a name="L2751"></a><tt class="py-lineno">2751</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-expanded"><a name="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">        <tt id="link-2775" class="py-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-2697', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2775', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2776" class="py-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-2698', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line">        <tt id="link-2699" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2699', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2700" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2776', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line">        <tt id="link-2777" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2777', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2778" class="py-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-2700', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2778', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2779" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2701', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2702" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2702', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2703" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2703', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line">        <tt id="link-2704" class="py-name" targets="Variable lxml.etree._ElementTree.docinfo=lxml.etree._ElementTree-class.html#docinfo"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2704', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2705" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2705', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2706" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2706', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2707" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2707', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2708" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2708', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2709" class="py-name" targets="Variable lxml.etree.DocInfo.URL=lxml.etree.DocInfo-class.html#URL"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2709', 'URL', 'link-2709');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XML_set_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-def"><a name="L2671"></a><tt class="py-lineno">2671</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_set_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">        <tt id="link-2710" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2779', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2780" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2780', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2781" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2781', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">        <tt id="link-2782" class="py-name" targets="Variable lxml.etree._ElementTree.docinfo=lxml.etree._ElementTree-class.html#docinfo"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2782', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2783" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2783', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2784" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2784', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2785', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2786" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2786', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name" targets="Variable lxml.etree.DocInfo.URL=lxml.etree.DocInfo-class.html#URL"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2787', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XML_set_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-def"><a name="L2757"></a><tt class="py-lineno">2757</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_set_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">        <tt id="link-2788" class="py-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-2710', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2788', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2789" class="py-name"><a title="lxml.etree
 lxml.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-2711', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line">        <tt id="link-2712" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2712', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2713" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2789', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line">        <tt id="link-2790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2790', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2791" class="py-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-2713', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2714" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2791', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2792" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2714', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2715" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2715', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2716" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2716', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line">        <tt id="link-2717" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2717', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2718', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2719" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2719', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2720', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2721" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2721', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2722', 'URL', 'link-2709');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line">        <tt id="link-2723" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2723', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2724', 'URL', 'link-2709');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2725" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2725', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2726" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2726', 'URL', 'link-2709');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_stringio_base_url"></a><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-def"><a name="L2679"></a><tt class="py-lineno">2679</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_stringio_base_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-expanded"><a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">        <tt id="link-2727" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2792', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2793" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2793', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2794" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2794', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">        <tt id="link-2795" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2795', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2796" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2796', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2797" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2797', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2798', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2799" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2799', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2800', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2762"></a><tt class="py-lineno">2762</tt>  <tt class="py-line">        <tt id="link-2801" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2801', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2802" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2802', 'URL', 'link-2787');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2803" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2803', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2804" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2804', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_stringio_base_url"></a><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-def"><a name="L2765"></a><tt class="py-lineno">2765</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_stringio_base_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-expanded"><a name="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line">        <tt id="link-2805" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2727', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2728" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2805', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2806" class="py-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-2728', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2729" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2806', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2807" class="py-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-2729', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2730" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2807', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2808" 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-2730', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2731" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2731', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line">        <tt id="link-2732" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2732', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2733" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2733', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2734" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2734', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2735" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2735', 'URL', 'link-2709');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-def"><a name="L2685"></a><tt class="py-lineno">2685</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-expanded"><a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line">        <tt id="link-2736" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2808', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2809" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2809', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt id="link-2810" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2810', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2811', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2812" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2812', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2813" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2813', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-def"><a name="L2771"></a><tt class="py-lineno">2771</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-expanded"><a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">        <tt id="link-2814" class="py-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-2736', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2737" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2814', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2815" class="py-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-2737', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2738" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2815', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2773"></a><tt class="py-lineno">2773</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2816" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2738', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2739" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2816', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2739', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2740" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2740', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line">                           <tt id="link-2741" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2741', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">        <tt id="link-2742" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2742', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2743', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2744" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2744', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2745" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2745', 'URL', 'link-2709');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_HTML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-def"><a name="L2692"></a><tt class="py-lineno">2692</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_HTML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-expanded"><a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">        <tt id="link-2746" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2817', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2818" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2818', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">                           <tt id="link-2819" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2819', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line">        <tt id="link-2820" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2820', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2821" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2821', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2822" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2822', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2823" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2823', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_HTML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-def"><a name="L2778"></a><tt class="py-lineno">2778</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_HTML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-expanded"><a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">        <tt id="link-2824" class="py-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-2746', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2747" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2824', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2825" class="py-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-2747', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">        <tt id="link-2748" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2748', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2749" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2825', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">        <tt id="link-2826" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2826', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2827" class="py-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-2749', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2750" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2827', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2828" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2750', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2751" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2751', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2752" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2752', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">        <tt id="link-2753" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2753', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2754" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2754', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2755', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2756" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2756', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2696"></a><tt class="py-lineno">2696</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2757" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2757', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2758" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2758', 'URL', 'link-2709');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L2698"></a><tt class="py-lineno">2698</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_public-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_public');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_public-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_public-expanded"><a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line">        <tt id="link-2759" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2828', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2829" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2829', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2830" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2830', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">        <tt id="link-2831" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2831', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2832" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2832', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2833" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2833', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2834', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2835" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2835', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2836" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2836', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L2784"></a><tt class="py-lineno">2784</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_public-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_public');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_public-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_public-expanded"><a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">        <tt id="link-2837" class="py-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-2759', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2760" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2837', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2838" class="py-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-2760', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</tt> </tt>
-<a name="L2701"></a><tt class="py-lineno">2701</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
-<a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
-<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line"> </tt>
-<a name="L2705"></a><tt class="py-lineno">2705</tt>  <tt class="py-line">        <tt id="link-2761" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2761', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2762" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2762', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line"> </tt>
-<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2763" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2838', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</tt> </tt>
+<a name="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
+<a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
+<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line"> </tt>
+<a name="L2791"></a><tt class="py-lineno">2791</tt>  <tt class="py-line">        <tt id="link-2839" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2839', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2840" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2840', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2792"></a><tt class="py-lineno">2792</tt>  <tt class="py-line"> </tt>
+<a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2841" class="py-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-2763', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2764" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2841', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2764', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2765" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2765', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line">        <tt id="link-2766" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2766', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2767" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2767', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2768" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2768', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2769', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2770" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2770', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2771" class="py-name" targets="Variable lxml.etree.DocInfo.xml_version=lxml.etree.DocInfo-class.html#xml_version"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2771', 'xml_version', 'link-2771');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2772" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2772', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2773" class="py-name" targets="Variable lxml.etree.DocInfo.public_id=lxml.etree.DocInfo-class.html#public_id"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2773', 'public_id', 'link-2773');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2774" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2774', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2775" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2775', 'system_url', 'link-2775');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2713"></a><tt class="py-lineno">2713</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2776" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2776', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2777" class="py-name" targets="Variable lxml.etree.DocInfo.root_name=lxml.etree.DocInfo-class.html#root_name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2777', 'root_name', 'link-2777');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2714"></a><tt class="py-lineno">2714</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2778" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2778', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2779" 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-2779', 'doctype', 'link-2779');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L2716"></a><tt class="py-lineno">2716</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_system-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_system');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_system-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_system-expanded"><a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line">        <tt id="link-2780" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2842', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2843" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2843', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">        <tt id="link-2844" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2844', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2845" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2845', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2846" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2846', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2847" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2847', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2848" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2848', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2849" class="py-name" targets="Variable lxml.etree.DocInfo.xml_version=lxml.etree.DocInfo-class.html#xml_version"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2849', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2850" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2850', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2851" class="py-name" targets="Variable lxml.etree.DocInfo.public_id=lxml.etree.DocInfo-class.html#public_id"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2851', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2852" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2852', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2853" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2853', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2799"></a><tt class="py-lineno">2799</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2854" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2854', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2855" class="py-name" targets="Variable lxml.etree.DocInfo.root_name=lxml.etree.DocInfo-class.html#root_name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2855', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2856" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2856', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2857" 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-2857', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L2802"></a><tt class="py-lineno">2802</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_system-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_system');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_system-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_system-expanded"><a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line">        <tt id="link-2858" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2780', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2781" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2858', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2859" class="py-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-2781', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt> </tt>
-<a name="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"some.dtd"</tt> </tt>
-<a name="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html SYSTEM "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">sys_id</tt> </tt>
-<a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line">        <tt id="link-2782" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2782', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2783" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2783', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2722"></a><tt class="py-lineno">2722</tt>  <tt class="py-line"> </tt>
-<a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2784" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2859', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt> </tt>
+<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"some.dtd"</tt> </tt>
+<a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html SYSTEM "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">sys_id</tt> </tt>
+<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">        <tt id="link-2860" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2860', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2861" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2861', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line"> </tt>
+<a name="L2809"></a><tt class="py-lineno">2809</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2862" class="py-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-2784', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2862', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2863" 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-2785', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2786" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2786', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">        <tt id="link-2787" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2787', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2788" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2788', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2789" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2789', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2790" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2790', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2791" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2791', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2792" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2792', 'xml_version', 'link-2771');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2793" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2793', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2794" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2794', 'public_id', 'link-2773');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2795" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2795', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2796" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2796', 'system_url', 'link-2775');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2797" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2797', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2798', 'root_name', 'link-2777');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2799" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2799', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2800', 'doctype', 'link-2779');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2731"></a><tt class="py-lineno">2731</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L2732"></a><tt class="py-lineno">2732</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_empty-expanded"><a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line">        <tt id="link-2801" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2863', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2864" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2864', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line">        <tt id="link-2865" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2865', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2866" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2866', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2867" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2867', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2868', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2869" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2869', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2870" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2870', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2871" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2871', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2872" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2872', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2873" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2873', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2874" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2874', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2875" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2875', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2876" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2876', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2877" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2877', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2878" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2878', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L2818"></a><tt class="py-lineno">2818</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_empty-expanded"><a name="L2819"></a><tt class="py-lineno">2819</tt>  <tt class="py-line">        <tt id="link-2879" class="py-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-2801', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2802" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2879', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2880" class="py-name"><a title="lxml.etree
 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-2802', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">        <tt id="link-2803" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2803', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2804" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2804', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2735"></a><tt class="py-lineno">2735</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2805" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2880', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line">        <tt id="link-2881" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2881', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2882" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2882', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2883" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2805', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2806" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2883', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2884" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2806', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2807" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2807', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line">        <tt id="link-2808" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2808', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2809" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2809', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2810" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2810', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2811', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2812" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2812', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2813" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2813', 'xml_version', 'link-2771');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2814" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2814', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2815" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2815', 'public_id', 'link-2773');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2816" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2816', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2817', 'system_url', 'link-2775');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2741"></a><tt class="py-lineno">2741</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2818" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2818', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2819" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2819', 'root_name', 'link-2777');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2820" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2820', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2821" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2821', 'doctype', 'link-2779');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L2744"></a><tt class="py-lineno">2744</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_name_only-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_name_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_name_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_name_only-expanded"><a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">        <tt id="link-2822" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2884', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2885" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2885', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2822"></a><tt class="py-lineno">2822</tt>  <tt class="py-line">        <tt id="link-2886" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2886', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2887" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2887', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2888" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2888', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2889" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2889', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2824"></a><tt class="py-lineno">2824</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2890" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2890', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2891" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2891', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2892" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2892', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2893" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2893', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2826"></a><tt class="py-lineno">2826</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2894" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2894', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2895" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2895', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2896" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2896', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2897', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2898" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2898', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2899" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2899', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L2830"></a><tt class="py-lineno">2830</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_name_only-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_name_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_name_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_name_only-expanded"><a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">        <tt id="link-2900" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2822', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2823" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2900', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2901" class="py-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-2823', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line">        <tt id="link-2824" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2824', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2825" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2825', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2826" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2901', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line">        <tt id="link-2902" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2902', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2903" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2903', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2904" class="py-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-2826', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2827" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2904', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2905" 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-2827', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2828" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2828', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">        <tt id="link-2829" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2829', 'docinfo', 'link-2704');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2830" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2830', 'docinfo', 'link-2704');">docinfo</a></tt> </tt>
-<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2831" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2831', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2832" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2832', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2833" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2833', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2834', 'xml_version', 'link-2771');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2751"></a><tt class="py-lineno">2751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2835" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2835', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2836" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2836', 'public_id', 'link-2773');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2837" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2837', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2838" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2838', 'system_url', 'link-2775');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2839" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2839', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2840" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2840', 'root_name', 'link-2777');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2841" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2841', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2842', 'doctype', 'link-2779');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_doctype_name_only_roundtrip"></a><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-def"><a name="L2756"></a><tt class="py-lineno">2756</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_name_only_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-expanded"><a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line">        <tt id="link-2843" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2905', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2906" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2906', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">        <tt id="link-2907" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2907', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2908" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2908', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
+<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2909" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2909', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2910" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2910', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2911" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2911', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2912" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2912', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2913" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2913', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2914" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2914', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2915" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2915', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2916', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2917" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2917', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2918" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2918', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2919" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2919', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2920" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2920', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_doctype_name_only_roundtrip"></a><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-def"><a name="L2842"></a><tt class="py-lineno">2842</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_name_only_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-expanded"><a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">        <tt id="link-2921" class="py-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-2843', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2844" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2921', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name"><a title="lxml.etree
 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-2844', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">        <tt id="link-2845" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2845', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2846" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2846', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2847" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2922', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">        <tt id="link-2923" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2923', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2924" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2924', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2925" class="py-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-2847', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2848" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2925', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2926" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2848', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2849" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2849', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2850" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2850', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-2851" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2926', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2927" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2927', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2928" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2928', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-2929" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2851', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2852" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2852', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L2762"></a><tt class="py-lineno">2762</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_output_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_output_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_doctype_output_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_output_override-expanded"><a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line">        <tt id="link-2853" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2929', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2930', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L2848"></a><tt class="py-lineno">2848</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_output_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_output_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_doctype_output_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_output_override-expanded"><a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">        <tt id="link-2931" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2853', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2854" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2931', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2932" class="py-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-2854', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
-<a name="L2765"></a><tt class="py-lineno">2765</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
-<a name="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-2855" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2855', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line"> </tt>
-<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt id="link-2856" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2856', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2857" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2857', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2858" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2932', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2850"></a><tt class="py-lineno">2850</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
+<a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
+<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-2933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2933', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line"> </tt>
+<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line">        <tt id="link-2934" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2934', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2935" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2935', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2936" class="py-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-2858', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2859" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2936', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2937" 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-2859', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2860" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2860', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2861" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2861', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-2862" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2862', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2863" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2863', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2771"></a><tt class="py-lineno">2771</tt>  <tt class="py-line">                          <tt id="link-2864" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2937', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2938" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2938', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2856"></a><tt class="py-lineno">2856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2939" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2939', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-2940" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2940', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2941" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2941', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line">                          <tt id="link-2942" class="py-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-2864', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2865" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2865', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-2866" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2866', 'doctype', 'link-2779');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L2773"></a><tt class="py-lineno">2773</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base-expanded"><a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">        <tt id="link-2867" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2942', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2943" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2943', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-2944" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2944', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2858"></a><tt class="py-lineno">2858</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L2859"></a><tt class="py-lineno">2859</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base-expanded"><a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line">        <tt id="link-2945" class="py-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-2867', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2945', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2868', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line">        <tt id="link-2869" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2869', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2870" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2946', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt id="link-2947" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2947', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2948" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2870', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2871" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2948', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2949" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2871', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2872" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2872', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2873" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2873', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2874', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2875" class="py-name" targets="Variable lxml.etree._Element.base=lxml.etree._Element-class.html#base"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2875', 'base', 'link-2875');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2778"></a><tt class="py-lineno">2778</tt>  <tt class="py-line">            <tt id="link-2876" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2876', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2877" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2949', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2950" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2950', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2951" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2951', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2952" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2952', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2953" class="py-name" targets="Variable lxml.etree._Element.base=lxml.etree._Element-class.html#base"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2953', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line">            <tt id="link-2954" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2954', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2955" 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-2877', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">        <tt id="link-2878" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2878', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2879" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2879', 'base', 'link-2875');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2880" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2880', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2881" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2881', 'base', 'link-2875');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">            <tt id="link-2882" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2882', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2883" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2955', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line">        <tt id="link-2956" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2956', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2957" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2957', 'base', 'link-2953');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L2866"></a><tt class="py-lineno">2866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2958', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2959" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2959', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">            <tt id="link-2960" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2960', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2961" 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-2883', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2784"></a><tt class="py-lineno">2784</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L2785"></a><tt class="py-lineno">2785</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base_attribute-expanded"><a name="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-line">        <tt id="link-2884" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2961', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L2871"></a><tt class="py-lineno">2871</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base_attribute-expanded"><a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line">        <tt id="link-2962" class="py-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-2884', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2885" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2962', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2963" class="py-name"><a title="lxml.etree
 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-2885', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line">        <tt id="link-2886" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2886', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2887" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2963', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt id="link-2964" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2964', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2965" class="py-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-2887', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2888" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2965', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2966" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2888', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2889" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2889', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2890" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2890', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2891" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2891', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2892" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2892', 'base', 'link-2875');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line">            <tt id="link-2893" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2893', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2894" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2966', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2967" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2967', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2968" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2968', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2969" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2969', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2970" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2970', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">            <tt id="link-2971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2971', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2972" 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-2894', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2791"></a><tt class="py-lineno">2791</tt>  <tt class="py-line">        <tt id="link-2895" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2895', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2896" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2896', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2792"></a><tt class="py-lineno">2792</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2897', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2898" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2898', 'base', 'link-2875');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">            <tt id="link-2899" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2899', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2900" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2972', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line">        <tt id="link-2973" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2973', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2974', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2975" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2975', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2976" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2976', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line">            <tt id="link-2977" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2977', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2978" 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-2900', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L2798"></a><tt class="py-lineno">2798</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base-expanded"><a name="L2799"></a><tt class="py-lineno">2799</tt>  <tt class="py-line">        <tt id="link-2901" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2978', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2883"></a><tt class="py-lineno">2883</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L2884"></a><tt class="py-lineno">2884</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base-expanded"><a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">        <tt id="link-2979" class="py-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-2901', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2902" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2979', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2980" class="py-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-2902', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt id="link-2903" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2903', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2904" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2980', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">        <tt id="link-2981" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2981', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2982" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2904', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2905" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2982', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2983" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2905', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2906" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2906', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line">                          <tt id="link-2907" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2907', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2802"></a><tt class="py-lineno">2802</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2908" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2908', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2909" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2909', 'base', 'link-2875');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L2804"></a><tt class="py-lineno">2804</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_base_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base_tag-expanded"><a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">        <tt id="link-2910" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2983', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2984" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2984', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">                          <tt id="link-2985" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2985', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2986" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2986', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2987" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2987', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L2890"></a><tt class="py-lineno">2890</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_base_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base_tag-expanded"><a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt id="link-2988" class="py-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-2910', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2911" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2988', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2989" class="py-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-2911', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line">        <tt id="link-2912" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2912', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2913" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2989', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line">        <tt id="link-2990" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2990', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2991" class="py-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-2913', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2914" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2991', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2992" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2914', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2915" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2915', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;head&gt;&lt;base href="http://no/such/url"&gt;&lt;/head&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2916" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2916', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2917" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2917', 'base', 'link-2875');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L2809"></a><tt class="py-lineno">2809</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_fileobject_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_fileobject_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-expanded"><a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
-<a name="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2918" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-2918', 'LargeFileLikeUnicode', 'link-16');">LargeFileLikeUnicode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2812"></a><tt class="py-lineno">2812</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-2919" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2992', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2993" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2993', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;head&gt;&lt;base href="http://no/such/url"&gt;&lt;/head&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2994" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2994', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2995" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2995', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L2895"></a><tt class="py-lineno">2895</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_fileobject_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_fileobject_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-expanded"><a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
+<a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2996" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-2996', 'LargeFileLikeUnicode', 'link-16');">LargeFileLikeUnicode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2919', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2920" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2997', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2998" 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-2920', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">        <tt id="link-2921" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2921', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2922', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-2923" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2923', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2924" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2998', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2899"></a><tt class="py-lineno">2899</tt>  <tt class="py-line">        <tt id="link-2999" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2999', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3000" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3000', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3001" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3001', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3002" 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-2924', 'tag', 'link-65');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L2816"></a><tt class="py-lineno">2816</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dtd_io-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dtd_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_dtd_io-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dtd_io-expanded"><a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
-<a name="L2818"></a><tt class="py-lineno">2818</tt>  <tt class="py-line">        <tt id="link-2925" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2925', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2926" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2926', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L2819"></a><tt class="py-lineno">2819</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
-<a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
-<a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
-<a name="L2822"></a><tt class="py-lineno">2822</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
-<a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L2824"></a><tt class="py-lineno">2824</tt>  <tt class="py-line"><tt class="py-string">        &lt;test&gt;&lt;a&gt;test-test&lt;/a&gt;&lt;/test&gt;\</tt> </tt>
-<a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2826"></a><tt class="py-lineno">2826</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-2927" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2927', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2928" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3002', 'tag', 'link-65');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L2902"></a><tt class="py-lineno">2902</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dtd_io-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dtd_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_dtd_io-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dtd_io-expanded"><a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
+<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">        <tt id="link-3003" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3003', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3004" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3004', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
+<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
+<a name="L2907"></a><tt class="py-lineno">2907</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
+<a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
+<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line"><tt class="py-string">        &lt;test&gt;&lt;a&gt;test-test&lt;/a&gt;&lt;/test&gt;\</tt> </tt>
+<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3005" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3005', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3006" 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-2928', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2929" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2929', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3006', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3007" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3007', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3008" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2930', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2931" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2931', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2932', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2933', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2934" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2934', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">                         <tt id="link-2935" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2935', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-2936" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2936', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2937" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2937', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2938" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2938', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L2830"></a><tt class="py-lineno">2830</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_zero-expanded"><a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">        <tt id="link-2939" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3008', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3009" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3009', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3010" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3010', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3011" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3011', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3012" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3012', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line">                         <tt id="link-3013" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3013', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3014', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3015" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3015', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3016" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3016', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L2916"></a><tt class="py-lineno">2916</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_zero-expanded"><a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">        <tt id="link-3017" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2939', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2940" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3017', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3018" class="py-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-2940', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2941" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3018', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3019" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2941', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line"> </tt>
-<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2942" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3019', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line"> </tt>
+<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3020" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2942', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2943" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2943', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2944" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2944', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line"> </tt>
-<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2945" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3020', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3021" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3021', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2921"></a><tt class="py-lineno">2921</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3022" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3022', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line"> </tt>
+<a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3023" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2945', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L2839"></a><tt class="py-lineno">2839</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-expanded"><a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">        <tt id="link-2946" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3023', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2924"></a><tt class="py-lineno">2924</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L2925"></a><tt class="py-lineno">2925</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-expanded"><a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">        <tt id="link-3024" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2946', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2947" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3024', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3025" class="py-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-2947', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2948" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3025', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3026" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2948', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line"> </tt>
-<a name="L2842"></a><tt class="py-lineno">2842</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2949" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3026', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line"> </tt>
+<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3027" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2949', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2950" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2950', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">                          <tt id="link-2951" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2951', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2952" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2952', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">                          <tt id="link-2953" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2953', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line"> </tt>
-<a name="L2848"></a><tt class="py-lineno">2848</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2954" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3027', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3028" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3028', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">                          <tt id="link-3029" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3029', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3030" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3030', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2932"></a><tt class="py-lineno">2932</tt>  <tt class="py-line">                          <tt id="link-3031" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3031', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line"> </tt>
+<a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3032" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2954', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">                          <tt id="link-2955" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2955', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2850"></a><tt class="py-lineno">2850</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L2851"></a><tt class="py-lineno">2851</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_invalid-expanded"><a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt id="link-2956" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3032', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">                          <tt id="link-3033" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3033', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L2937"></a><tt class="py-lineno">2937</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_invalid-expanded"><a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line">        <tt id="link-3034" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2956', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2957" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3034', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3035" class="py-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-2957', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2958" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3035', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3036" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2958', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line"> </tt>
-<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2959" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3036', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line"> </tt>
+<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3037" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2959', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2960" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2960', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2856"></a><tt class="py-lineno">2856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2961" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2961', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line"> </tt>
-<a name="L2858"></a><tt class="py-lineno">2858</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2962" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2962', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2859"></a><tt class="py-lineno">2859</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2963" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2963', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line"> </tt>
-<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2964" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3037', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3038" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3038', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2942"></a><tt class="py-lineno">2942</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3039" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3039', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line"> </tt>
+<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3040" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3040', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3041" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3041', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line"> </tt>
+<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3042" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2964', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2965" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3042', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3043" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2965', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L2864"></a><tt class="py-lineno">2864</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-expanded"><a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line">        <tt id="link-2966" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3043', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L2950"></a><tt class="py-lineno">2950</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-expanded"><a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line">        <tt id="link-3044" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2966', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2967" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3044', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2967', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2968" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3045', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3046" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2968', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2866"></a><tt class="py-lineno">2866</tt>  <tt class="py-line"> </tt>
-<a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2969" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3046', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line"> </tt>
+<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3047" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2969', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2970" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2970', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line">                          <tt id="link-2971" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2971', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2972" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2972', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2871"></a><tt class="py-lineno">2871</tt>  <tt class="py-line">                          <tt id="link-2973" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2973', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line"> </tt>
-<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2974" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2974', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">                          <tt id="link-2975" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2975', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2976" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2976', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">                          <tt id="link-2977" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2977', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line"> </tt>
-<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2978" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3047', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3048" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3048', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line">                          <tt id="link-3049" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3049', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3050" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3050', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line">                          <tt id="link-3051" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3051', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line"> </tt>
+<a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3052" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3052', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">                          <tt id="link-3053" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3053', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3054" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3054', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">                          <tt id="link-3055" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3055', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line"> </tt>
+<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3056" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2978', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">                          <tt id="link-2979" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2979', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2980" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3056', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2965"></a><tt class="py-lineno">2965</tt>  <tt class="py-line">                          <tt id="link-3057" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3057', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3058" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2980', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line">                          <tt id="link-2981" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2981', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-def"><a name="L2883"></a><tt class="py-lineno">2883</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-expanded"><a name="L2884"></a><tt class="py-lineno">2884</tt>  <tt class="py-line">        <tt id="link-2982" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3058', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">                          <tt id="link-3059" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3059', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-def"><a name="L2969"></a><tt class="py-lineno">2969</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-expanded"><a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line">        <tt id="link-3060" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2982', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2983" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3060', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3061" class="py-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-2983', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2984" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3061', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3062" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2984', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line"> </tt>
-<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2985" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3062', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line"> </tt>
+<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3063" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2985', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2986" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2986', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">                          <tt id="link-2987" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2987', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2988" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2988', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2890"></a><tt class="py-lineno">2890</tt>  <tt class="py-line">                          <tt id="link-2989" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2989', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line"> </tt>
-<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2990" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2990', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line">                          <tt id="link-2991" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2991', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2992" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-2992', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">                          <tt id="link-2993" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2993', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line"> </tt>
-<a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2994" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3063', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3064" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3064', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">                          <tt id="link-3065" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3065', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3066" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3066', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line">                          <tt id="link-3067" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3067', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line"> </tt>
+<a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3068" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3068', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2979"></a><tt class="py-lineno">2979</tt>  <tt class="py-line">                          <tt id="link-3069" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3069', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3070" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3070', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">                          <tt id="link-3071" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3071', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line"> </tt>
+<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3072" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2994', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">                          <tt id="link-2995" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2995', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2899"></a><tt class="py-lineno">2899</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-2996" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3072', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line">                          <tt id="link-3073" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3073', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3074" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2996', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">                          <tt id="link-2997" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-2997', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L2902"></a><tt class="py-lineno">2902</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_encoding_tostring_utf16-toggle" onclick="return toggle('ETreeOnlyTestCase.test_encoding_tostring_utf16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-expanded"><a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
-<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">        <tt id="link-2998" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2998', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2999" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3074', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">                          <tt id="link-3075" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3075', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L2988"></a><tt class="py-lineno">2988</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_encoding_tostring_utf16-toggle" onclick="return toggle('ETreeOnlyTestCase.test_encoding_tostring_utf16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-expanded"><a name="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
+<a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line">        <tt id="link-3076" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3076', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3077" class="py-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-2999', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3000" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3000', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line">        <tt id="link-3001" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3077', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3078" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3078', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line">        <tt id="link-3079" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3001', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3002" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3079', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3080" class="py-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-3002', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3003" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3080', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3081" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3003', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line">        <tt id="link-3004" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3004', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3005" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3081', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line">        <tt id="link-3082" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3082', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3083" class="py-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-3005', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3006" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3006', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2907"></a><tt class="py-lineno">2907</tt>  <tt class="py-line">         </tt>
-<a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3007" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3083', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3084', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">         </tt>
+<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3085" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3007', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3008" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3008', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3009" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3009', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line"> </tt>
-<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3010" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3010', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3011" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3011', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3012" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3012', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line">                          <tt id="link-3013" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3013', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L2916"></a><tt class="py-lineno">2916</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_none-expanded"><a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
-<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line">        <tt id="link-3014" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3014', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3015" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3085', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3086', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3087" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3087', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2997"></a><tt class="py-lineno">2997</tt>  <tt class="py-line"> </tt>
+<a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3088" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3088', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3089" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3089', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3090" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3090', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line">                          <tt id="link-3091" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3091', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L3002"></a><tt class="py-lineno">3002</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_none-expanded"><a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
+<a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-line">        <tt id="link-3092" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3092', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3093" class="py-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-3015', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3016" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3016', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3017" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3093', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3094', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3095" class="py-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-3017', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3018" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3018', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L2921"></a><tt class="py-lineno">2921</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_pretty-expanded"><a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line">        <tt id="link-3019" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3019', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3020" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3095', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3096', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L3007"></a><tt class="py-lineno">3007</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_pretty-expanded"><a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line">        <tt id="link-3097" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3097', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3098" class="py-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-3020', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3021" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3021', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line">        <tt id="link-3022" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3098', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3099" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3099', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line">        <tt id="link-3100" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3022', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3023" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3100', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3101" class="py-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-3023', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3024" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3101', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3024', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2924"></a><tt class="py-lineno">2924</tt>  <tt class="py-line">        <tt id="link-3025" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3025', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3026" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3102', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line">        <tt id="link-3103" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3103', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3104" class="py-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-3026', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3027" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3027', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2925"></a><tt class="py-lineno">2925</tt>  <tt class="py-line"> </tt>
-<a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3028" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3104', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3105', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3011"></a><tt class="py-lineno">3011</tt>  <tt class="py-line"> </tt>
+<a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3106" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3028', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3029" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3029', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3030" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3030', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line"> </tt>
-<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3031" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3031', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3032" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3032', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2932"></a><tt class="py-lineno">2932</tt>  <tt class="py-line"> </tt>
-<a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3033" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3033', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3034" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3034', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line"> </tt>
-<a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3035" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3035', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L2937"></a><tt class="py-lineno">2937</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3036" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3036', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L2939"></a><tt class="py-lineno">2939</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_with_tail-expanded"><a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">        <tt id="link-3037" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3037', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3038" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3106', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3107" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3107', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3108', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line"> </tt>
+<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3109" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3109', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3017"></a><tt class="py-lineno">3017</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3110" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3110', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line"> </tt>
+<a name="L3019"></a><tt class="py-lineno">3019</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3111" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3111', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3112" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3112', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line"> </tt>
+<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3113" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3113', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3114" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3114', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L3025"></a><tt class="py-lineno">3025</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_with_tail-expanded"><a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">        <tt id="link-3115" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3115', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3116" class="py-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-3038', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3039" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3039', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line">        <tt id="link-3040" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3116', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3117" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3117', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line">        <tt id="link-3118" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3040', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3041" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3118', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3119" class="py-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-3041', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3042" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3119', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3120" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3042', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2942"></a><tt class="py-lineno">2942</tt>  <tt class="py-line">        <tt id="link-3043" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3043', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3044" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3120', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line">        <tt id="link-3121" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3121', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3122" class="py-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-3044', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3045', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line"> </tt>
-<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3046" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3046', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3047" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3047', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
-<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3048" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3048', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3049" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3049', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
-<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3050" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3050', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line"> </tt>
-<a name="L2950"></a><tt class="py-lineno">2950</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3051" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3051', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3052" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3052', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line"> </tt>
-<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3053" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3053', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3054" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3054', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line"> </tt>
-<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3055" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3055', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3056" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3056', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L2959"></a><tt class="py-lineno">2959</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_standalone-expanded"><a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">        <tt id="link-3057" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3057', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3058" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3122', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3123" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3123', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line"> </tt>
+<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3124" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3124', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3031"></a><tt class="py-lineno">3031</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3125" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3125', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
+<a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3126" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3126', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3033"></a><tt class="py-lineno">3033</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3127', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
+<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3128" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3128', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line"> </tt>
+<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3129" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3129', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3130" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3130', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line"> </tt>
+<a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3131" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3131', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3040"></a><tt class="py-lineno">3040</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3132" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3132', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line"> </tt>
+<a name="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3133" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3133', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3134" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3134', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L3045"></a><tt class="py-lineno">3045</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_standalone-expanded"><a name="L3046"></a><tt class="py-lineno">3046</tt>  <tt class="py-line">        <tt id="link-3135" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3135', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3136" class="py-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-3058', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3059" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3059', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line">        <tt id="link-3060" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3136', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3137" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3137', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3047"></a><tt class="py-lineno">3047</tt>  <tt class="py-line">        <tt id="link-3138" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3060', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3061" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3138', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3139" class="py-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-3061', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3062" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3139', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3140" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3062', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">        <tt id="link-3063" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3140', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">        <tt id="link-3141" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3063', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3064" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3141', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3142" class="py-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-3064', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3065" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3142', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3143" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3065', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">        <tt id="link-3066" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3143', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line">        <tt id="link-3144" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3066', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3067" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3144', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3145" class="py-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-3067', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3068" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3145', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3068', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line"> </tt>
-<a name="L2965"></a><tt class="py-lineno">2965</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3069" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3146', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line"> </tt>
+<a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3147" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3069', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3070" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3070', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3071" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3071', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3072" class="py-name" targets="Variable lxml.etree.DocInfo.standalone=lxml.etree.DocInfo-class.html#standalone"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3072', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line"> </tt>
-<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3073" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3147', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3148" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3148', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3149" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3149', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3150" class="py-name" targets="Variable lxml.etree.DocInfo.standalone=lxml.etree.DocInfo-class.html#standalone"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3150', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line"> </tt>
+<a name="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3151" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3073', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3074" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3074', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3075" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3075', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3076" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3076', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3077" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3077', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line"> </tt>
-<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3078" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3151', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3152" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3152', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3153', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3154" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3154', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3155" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3155', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line"> </tt>
+<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3156" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3078', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3079" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3079', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt> </tt>
-<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3080" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3080', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3081" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3081', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3082" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3082', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line"> </tt>
-<a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3083" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3156', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3157" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3157', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt> </tt>
+<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3158" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3158', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3159', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3160" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3160', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line"> </tt>
+<a name="L3062"></a><tt class="py-lineno">3062</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3161" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3083', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3084" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3084', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt> </tt>
-<a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3085" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3085', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2979"></a><tt class="py-lineno">2979</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3086" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3086', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3087" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3087', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L2981"></a><tt class="py-lineno">2981</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone-expanded"><a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">        <tt id="link-3088" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3088', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3089" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3161', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3162" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3162', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt> </tt>
+<a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3163', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3065"></a><tt class="py-lineno">3065</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3164" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3164', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3165', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L3067"></a><tt class="py-lineno">3067</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone-expanded"><a name="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">        <tt id="link-3166" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3166', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3167" class="py-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-3089', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3090" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3090', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">        <tt id="link-3091" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3167', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3168" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3168', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">        <tt id="link-3169" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3091', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3092" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3169', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3170" class="py-name"><a title="lxml.etree
 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-3092', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3093" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3170', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3093', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line">        <tt id="link-3094" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3171', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line">        <tt id="link-3172" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3094', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3095" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3172', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3173" class="py-name"><a title="lxml.etree
 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-3095', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3173', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3096', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line"> </tt>
-<a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">        <tt id="link-3097" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3097', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3098" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3174', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3071"></a><tt class="py-lineno">3071</tt>  <tt class="py-line"> </tt>
+<a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt id="link-3175" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3175', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3176" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3098', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3099" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3099', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line"> </tt>
-<a name="L2988"></a><tt class="py-lineno">2988</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3100" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3176', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3177" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3177', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line"> </tt>
+<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3178" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3100', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3101" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3101', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3102', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3103" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3103', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line"> </tt>
-<a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3104" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3104', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3105" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3105', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3106" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3106', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3107" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3107', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line"> </tt>
-<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3108" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3108', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3109" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3109', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3110" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3110', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">                          <tt id="link-3111" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3111', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L2997"></a><tt class="py-lineno">2997</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3112" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3112', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line"> </tt>
-<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3113" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3178', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3179" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3179', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3180', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3181" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3181', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line"> </tt>
+<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3182" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3182', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3183" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3183', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3184" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3184', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3185" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3185', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3080"></a><tt class="py-lineno">3080</tt>  <tt class="py-line"> </tt>
+<a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3186" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3186', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3187" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3187', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3188" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3188', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">                          <tt id="link-3189" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3189', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3190" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3190', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3085"></a><tt class="py-lineno">3085</tt>  <tt class="py-line"> </tt>
+<a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3191" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3113', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3114" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3114', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3115" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3115', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3116', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3002"></a><tt class="py-lineno">3002</tt>  <tt class="py-line"> </tt>
-<a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3117" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3117', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3118" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3118', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3119" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3119', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-line">                          <tt id="link-3120" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3120', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3121" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3121', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3007"></a><tt class="py-lineno">3007</tt>  <tt class="py-line"> </tt>
-<a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3122" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3191', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3192" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3192', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3193" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3193', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3194', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3088"></a><tt class="py-lineno">3088</tt>  <tt class="py-line"> </tt>
+<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3195" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3195', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3196" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3196', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3197" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3197', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line">                          <tt id="link-3198" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3198', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3091"></a><tt class="py-lineno">3091</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3199" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3199', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line"> </tt>
+<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3200" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3122', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3123" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3200', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3201" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3123', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3124" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3124', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3125" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3125', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_standalone_in_out"></a><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-def"><a name="L3011"></a><tt class="py-lineno">3011</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone_in_out-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone_in_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-expanded"><a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line">        <tt id="link-3126" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3126', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3201', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3202" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3202', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3203" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3203', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_standalone_in_out"></a><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-def"><a name="L3097"></a><tt class="py-lineno">3097</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone_in_out-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone_in_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-expanded"><a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line">        <tt id="link-3204" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3204', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3205" class="py-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-3127', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3128" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3128', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line">        <tt id="link-3129" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3205', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3206', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3099"></a><tt class="py-lineno">3099</tt>  <tt class="py-line">        <tt id="link-3207" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3129', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3130" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3207', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3208" class="py-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-3130', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3131" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3208', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3131', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">        <tt id="link-3132" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3209', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L3100"></a><tt class="py-lineno">3100</tt>  <tt class="py-line">        <tt id="link-3210" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3132', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3133" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3210', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3211" class="py-name"><a title="lxml.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-3133', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3134" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3211', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3212" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3134', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line"> </tt>
-<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">        <tt id="link-3135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3135', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3136" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3212', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line"> </tt>
+<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">        <tt id="link-3213" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3213', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3214" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3136', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3137" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3137', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3017"></a><tt class="py-lineno">3017</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line"> </tt>
-<a name="L3019"></a><tt class="py-lineno">3019</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3138" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3214', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3215" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3215', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3104"></a><tt class="py-lineno">3104</tt>  <tt class="py-line"> </tt>
+<a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3216" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3138', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3139" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3139', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3140" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3140', 'docinfo', 'link-2704');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3141" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3141', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line"> </tt>
-<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3142" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3142', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3143" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3143', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3144" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3144', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3145" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3145', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3025"></a><tt class="py-lineno">3025</tt>  <tt class="py-line"> </tt>
-<a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3146" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3146', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3147" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3147', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3148" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3148', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line">                          <tt id="link-3149" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3149', 'standalone', 'link-3072');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3150" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3150', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_method_text_encoding"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-def"><a name="L3031"></a><tt class="py-lineno">3031</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-expanded"><a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line">        <tt id="link-3151" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3151', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3152" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3216', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3217" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3217', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3218" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3218', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3219', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line"> </tt>
+<a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3220" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3220', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3221', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3222" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3222', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3223" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3223', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3110"></a><tt class="py-lineno">3110</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line"> </tt>
+<a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3224" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3224', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3225" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3225', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3226" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3226', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line">                          <tt id="link-3227" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3227', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3228" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3228', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_method_text_encoding"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-def"><a name="L3117"></a><tt class="py-lineno">3117</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-expanded"><a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line">        <tt id="link-3229" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3229', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3230" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3152', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3153', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3033"></a><tt class="py-lineno">3033</tt>  <tt class="py-line">        <tt id="link-3154" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3230', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3231" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3231', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">        <tt id="link-3232" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3154', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3155" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3232', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3233" class="py-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-3155', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3156" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3233', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3234" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3156', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt id="link-3157" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3157', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3158" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3234', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line">        <tt id="link-3235" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3235', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3236" class="py-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-3158', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3159', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line">         </tt>
-<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3160" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3236', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3237" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3237', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line">         </tt>
+<a name="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3238" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3160', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3161" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3238', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3239" 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-3161', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3162" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3162', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3163" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3163', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3040"></a><tt class="py-lineno">3040</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3164" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3239', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3240" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3240', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3241" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3241', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3242" 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-3164', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3165', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3166" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3166', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"S&#248;k p&#229; nettet"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3167" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3167', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3168" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3242', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3243" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3243', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3244" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3244', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"S&#248;k p&#229; nettet"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3245" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3245', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3246" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3168', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line"> </tt>
-<a name="L3045"></a><tt class="py-lineno">3045</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3169" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3169', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3170" 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-3170', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-3171" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3171', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3046"></a><tt class="py-lineno">3046</tt>  <tt class="py-line"> </tt>
-<a name="L3047"></a><tt class="py-lineno">3047</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3172" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3172', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABS&#248;k p&#229; nettetCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_method_text_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-def"><a name="L3050"></a><tt class="py-lineno">3050</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-expanded"><a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt id="link-3173" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3173', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3246', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line"> </tt>
+<a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3247', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3248" 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-3248', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-3249" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3249', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line"> </tt>
+<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3250" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3250', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABS&#248;k p&#229; nettetCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3135"></a><tt class="py-lineno">3135</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_method_text_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-def"><a name="L3136"></a><tt class="py-lineno">3136</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-expanded"><a name="L3137"></a><tt class="py-lineno">3137</tt>  <tt class="py-line">        <tt id="link-3251" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3251', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3252" class="py-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-3174', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3175" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3175', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">        <tt id="link-3176" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3252', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3253" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3253', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line">        <tt id="link-3254" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3176', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3177" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3254', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3255" class="py-name"><a title="lxml.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-3177', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3178" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3255', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3256" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3178', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">        <tt id="link-3179" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3179', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3256', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt id="link-3257" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3257', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3258" class="py-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-3180', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3181" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3181', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line">         </tt>
-<a name="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3182" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3258', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3259" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3259', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">         </tt>
+<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3260" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3182', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3183" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3260', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3183', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3184" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3184', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetA'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3185" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3185', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3186" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3186', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3187" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3261', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3262" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3262', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetA'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3263', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3264" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3264', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3265" 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-3187', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3188" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3188', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3189" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3189', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetB'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3190" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3190', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3062"></a><tt class="py-lineno">3062</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3191" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3265', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3146"></a><tt class="py-lineno">3146</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3266" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3266', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3267" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3267', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetB'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3268" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3268', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3269" 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-3191', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">         </tt>
-<a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">UnicodeEncodeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L3065"></a><tt class="py-lineno">3065</tt>  <tt class="py-line">                          <tt id="link-3192" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3192', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3193" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3193', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line">         </tt>
-<a name="L3067"></a><tt class="py-lineno">3067</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">            <tt id="link-3194" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3194', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetABS&#248;k p&#229; nettetBCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">            <tt id="link-3195" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3195', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3196" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3196', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-3197" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3197', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3071"></a><tt class="py-lineno">3071</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode-expanded"><a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt id="link-3198" class="py-name" targets="Function lxml.etree.tounicode()=lxml.etree-module.html#tounicode"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3198', 'tounicode', 'link-3198');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3199" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3269', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line">         </tt>
+<a name="L3150"></a><tt class="py-lineno">3150</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">UnicodeEncodeError</tt><tt class="py-op">,</tt> </tt>
+<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">                          <tt id="link-3270" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3270', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3271" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3271', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">         </tt>
+<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line">            <tt id="link-3272" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3272', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetABS&#248;k p&#229; nettetBCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3155"></a><tt class="py-lineno">3155</tt>  <tt class="py-line">            <tt id="link-3273" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3273', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3274" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3274', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-3275" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3275', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3157"></a><tt class="py-lineno">3157</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode-expanded"><a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt id="link-3276" class="py-name" targets="Function lxml.etree.tounicode()=lxml.etree-module.html#tounicode"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3276', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3277" class="py-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-3199', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3200" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3200', 'tounicode', 'link-3198');">tounicode</a></tt> </tt>
-<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line">        <tt id="link-3201" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3277', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3278" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3278', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
+<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt id="link-3279" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3201', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3202" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3279', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3280" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3202', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3203" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3280', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3281" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3203', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt id="link-3204" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3204', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3205" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3281', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt id="link-3282" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3282', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3283" class="py-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-3205', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3206', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">         </tt>
-<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3207" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3283', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3284" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3284', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">         </tt>
+<a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3285" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3207', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3208" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3208', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3209" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3209', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line">         </tt>
-<a name="L3080"></a><tt class="py-lineno">3080</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3210" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3210', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3211" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3211', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">                          <tt id="link-3212" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3212', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3213" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3213', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L3084"></a><tt class="py-lineno">3084</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element-expanded"><a name="L3085"></a><tt class="py-lineno">3085</tt>  <tt class="py-line">        <tt id="link-3214" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3214', 'tounicode', 'link-3198');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3215" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3285', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3286" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3286', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3287" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3287', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">         </tt>
+<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3288" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3288', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3289" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3289', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">                          <tt id="link-3290" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3290', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3291" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3291', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L3170"></a><tt class="py-lineno">3170</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element-expanded"><a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line">        <tt id="link-3292" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3292', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3293" class="py-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-3215', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3216" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3216', 'tounicode', 'link-3198');">tounicode</a></tt> </tt>
-<a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">        <tt id="link-3217" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3293', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3294" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3294', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
+<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line">        <tt id="link-3295" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3217', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3218" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3295', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3296" class="py-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-3218', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3296', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3297" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3219', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line">        <tt id="link-3220" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3220', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3221" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3297', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt id="link-3298" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3298', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3299" class="py-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-3221', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3222" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3222', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3088"></a><tt class="py-lineno">3088</tt>  <tt class="py-line">         </tt>
-<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3223" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3299', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3300', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">         </tt>
+<a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3301" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3223', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3224" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3224', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3091"></a><tt class="py-lineno">3091</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3225" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3225', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3226" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3226', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3227" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3227', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3228" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3228', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3229" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3229', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line">                          <tt id="link-3230" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3230', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3231" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3231', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3097"></a><tt class="py-lineno">3097</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3232" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3232', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line">                          <tt id="link-3233" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3233', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3234" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3234', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3099"></a><tt class="py-lineno">3099</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L3100"></a><tt class="py-lineno">3100</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_none-expanded"><a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line">        <tt id="link-3235" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3235', 'tounicode', 'link-3198');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3236" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3301', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3302', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3303" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3303', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3304" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3304', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3305" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3305', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3306" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3306', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3307" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3307', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">                          <tt id="link-3308" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3308', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3309" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3309', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3310" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3310', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line">                          <tt id="link-3311" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3311', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3312" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3312', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L3186"></a><tt class="py-lineno">3186</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_none-expanded"><a name="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">        <tt id="link-3313" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3313', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3314" class="py-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-3236', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3237" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3237', 'tounicode', 'link-3198');">tounicode</a></tt> </tt>
-<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3238" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3314', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3315" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3315', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
+<a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3316" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3238', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3239', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L3104"></a><tt class="py-lineno">3104</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-expanded"><a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt id="link-3240" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3240', 'tounicode', 'link-3198');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3241" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3316', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3317" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3317', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L3190"></a><tt class="py-lineno">3190</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-expanded"><a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line">        <tt id="link-3318" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3318', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3319" class="py-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-3241', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3242', 'tounicode', 'link-3198');">tounicode</a></tt> </tt>
-<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt id="link-3243" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3319', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3320" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3320', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
+<a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line">        <tt id="link-3321" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3243', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3244" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3321', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3322" class="py-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-3244', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3245" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3322', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3323" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3245', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line">        <tt id="link-3246" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3246', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3247" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3323', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3193"></a><tt class="py-lineno">3193</tt>  <tt class="py-line">        <tt id="link-3324" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3324', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3325" class="py-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-3247', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3248" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3248', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">         </tt>
-<a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3249" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3325', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3326" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3326', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line">         </tt>
+<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3327" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3249', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3110"></a><tt class="py-lineno">3110</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3250" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3250', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3251" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3251', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3252" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3252', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3253" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3253', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line"> </tt>
-<a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3254" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3254', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3255" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3255', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line">                     <tt id="link-3256" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3256', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L3119"></a><tt class="py-lineno">3119</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_pretty-expanded"><a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line">        <tt id="link-3257" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3257', 'tounicode', 'link-3198');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3258" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3327', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3328" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3328', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3329" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3329', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3330" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3330', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3331" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3331', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line"> </tt>
+<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3332" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3332', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3333" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3333', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line">                     <tt id="link-3334" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3334', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3204"></a><tt class="py-lineno">3204</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L3205"></a><tt class="py-lineno">3205</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_pretty-expanded"><a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">        <tt id="link-3335" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3335', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3336" class="py-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-3258', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3259" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3259', 'tounicode', 'link-3198');">tounicode</a></tt> </tt>
-<a name="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line">        <tt id="link-3260" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3336', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3337" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3337', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
+<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line">        <tt id="link-3338" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3260', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3338', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3339" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3261', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3262" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3339', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3340" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3262', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">        <tt id="link-3263" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3263', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3264" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3340', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line">        <tt id="link-3341" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3341', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3342" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3264', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3265" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3265', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line"> </tt>
-<a name="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3266" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3342', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3343" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3343', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3209"></a><tt class="py-lineno">3209</tt>  <tt class="py-line"> </tt>
+<a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3344" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3266', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3267" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3267', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3268" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3268', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line"> </tt>
-<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3269" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3269', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line"> </tt>
-<a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3270" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3270', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line"> </tt>
-<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3271" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3271', 'tounicode', 'link-3198');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3135"></a><tt class="py-lineno">3135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3136"></a><tt class="py-lineno">3136</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L3137"></a><tt class="py-lineno">3137</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode-expanded"><a name="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line">        <tt id="link-3272" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3272', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3273" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3344', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3345" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3345', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3346" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3346', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line"> </tt>
+<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3347" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3347', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line"> </tt>
+<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3348" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3348', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3218"></a><tt class="py-lineno">3218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line"> </tt>
+<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3349" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3349', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3222"></a><tt class="py-lineno">3222</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L3223"></a><tt class="py-lineno">3223</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode-expanded"><a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">        <tt id="link-3350" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3350', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3351" class="py-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-3273', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3274" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3274', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt id="link-3275" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3351', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3352" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3352', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line">        <tt id="link-3353" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3275', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3276" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3353', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3354" class="py-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-3276', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3277" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3354', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3355" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3277', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">        <tt id="link-3278" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3278', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3279" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3355', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line">        <tt id="link-3356" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3356', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3357" class="py-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-3279', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3280" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3280', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line">         </tt>
-<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3281" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3357', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3358" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3358', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line">         </tt>
+<a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3359" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3281', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3282" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3282', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3283" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3283', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line">         </tt>
-<a name="L3146"></a><tt class="py-lineno">3146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3284" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3284', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3285" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3285', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3286" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3286', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">                          <tt id="link-3287" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3287', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3288" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3288', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3289" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3289', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L3150"></a><tt class="py-lineno">3150</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-expanded"><a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">        <tt id="link-3290" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3290', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3291" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3359', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3360" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3360', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3361" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3361', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-line">         </tt>
+<a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3362" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3362', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3363" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3363', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3364" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3364', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">                          <tt id="link-3365" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3365', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3366" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3366', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3367" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3367', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L3236"></a><tt class="py-lineno">3236</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-expanded"><a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line">        <tt id="link-3368" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3368', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3369" class="py-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-3291', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3292" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3292', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">        <tt id="link-3293" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3369', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3370" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3370', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line">        <tt id="link-3371" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3293', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3294" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3371', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3372" class="py-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-3294', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3295" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3372', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3373" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3295', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">        <tt id="link-3296" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3296', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3297" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3373', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line">        <tt id="link-3374" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3374', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3375" class="py-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-3297', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3298" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3298', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line">         </tt>
-<a name="L3155"></a><tt class="py-lineno">3155</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3299" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3375', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3376" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3376', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line">         </tt>
+<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3377" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3299', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3300', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3157"></a><tt class="py-lineno">3157</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3301" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3301', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3302', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3303" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3303', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3304" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3304', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3305" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3305', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3306" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3306', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3307" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3307', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line">                          <tt id="link-3308" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3308', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3309" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3309', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3310" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3310', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3311" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3311', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">                          <tt id="link-3312" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3312', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3313" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3313', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3314" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3314', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L3166"></a><tt class="py-lineno">3166</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-expanded"><a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt id="link-3315" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3315', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3316" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3377', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3378" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3378', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3379" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3379', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3244"></a><tt class="py-lineno">3244</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3380" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3380', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3245"></a><tt class="py-lineno">3245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3381" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3381', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3382" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3382', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3383" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3383', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3384" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3384', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3385" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3385', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">                          <tt id="link-3386" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3386', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3387" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3387', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3388" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3388', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3389" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3389', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-line">                          <tt id="link-3390" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3390', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3391" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3391', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3392" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3392', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L3252"></a><tt class="py-lineno">3252</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-expanded"><a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line">        <tt id="link-3393" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3393', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3394" class="py-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-3316', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3317" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3317', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3318" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3394', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3395', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3396" class="py-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-3318', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3319" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3319', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-3320" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3320', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3170"></a><tt class="py-lineno">3170</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-def"><a name="L3171"></a><tt class="py-lineno">3171</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-expanded"><a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line">        <tt id="link-3321" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3321', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3322" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3396', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3397" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3397', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-3398" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3398', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-def"><a name="L3257"></a><tt class="py-lineno">3257</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-expanded"><a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line">        <tt id="link-3399" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3399', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3400" class="py-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-3322', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3323" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3323', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt id="link-3324" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3400', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3401" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3401', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3259"></a><tt class="py-lineno">3259</tt>  <tt class="py-line">        <tt id="link-3402" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3324', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3402', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3403" class="py-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-3325', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3326" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3403', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3404" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3326', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">        <tt id="link-3327" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3327', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3328" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3404', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt id="link-3405" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3405', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3406" class="py-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-3328', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3329" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3329', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">         </tt>
-<a name="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3330" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3406', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3407" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3407', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">         </tt>
+<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3408" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3330', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3331" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3331', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3332" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3332', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3333" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3333', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3334" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3334', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line"> </tt>
-<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3335" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3335', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3336" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3336', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3337" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3337', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3338" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3338', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line">                     <tt id="link-3339" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3339', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3340" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3340', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L3186"></a><tt class="py-lineno">3186</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-expanded"><a name="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">        <tt id="link-3341" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3341', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3342" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3408', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3263"></a><tt class="py-lineno">3263</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3409" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3409', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3410" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3410', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3411" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3411', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3412" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3412', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line"> </tt>
+<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3413" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3413', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3414" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3414', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3415" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3415', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3416" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3416', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">                     <tt id="link-3417" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3417', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3418" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3418', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L3272"></a><tt class="py-lineno">3272</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-expanded"><a name="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line">        <tt id="link-3419" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3419', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3420" class="py-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-3342', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3343" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3343', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt id="link-3344" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3420', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3421', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">        <tt id="link-3422" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3344', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3345" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3422', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3423" class="py-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-3345', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3346" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3423', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3346', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line">        <tt id="link-3347" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3347', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3348" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3424', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt id="link-3425" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3425', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree
 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-3348', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3349" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3349', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3190"></a><tt class="py-lineno">3190</tt>  <tt class="py-line"> </tt>
-<a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3350" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3426', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3427" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3427', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line"> </tt>
+<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3428" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3350', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3351" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3351', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3193"></a><tt class="py-lineno">3193</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3352" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3352', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line"> </tt>
-<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3353" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3353', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3354" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3354', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-<a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line"> </tt>
-<a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3355" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3355', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3356" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3356', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line"> </tt>
-<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3357" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3357', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3358" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3358', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L3204"></a><tt class="py-lineno">3204</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pypy_proxy_collect-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pypy_proxy_collect');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-expanded"><a name="L3205"></a><tt class="py-lineno">3205</tt>  <tt class="py-line">        <tt id="link-3359" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3359', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3360" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3428', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3429" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3429', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3430" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3430', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line"> </tt>
+<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3431" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3431', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3432" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3432', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line"> </tt>
+<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3433" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3433', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3434" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3434', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3285"></a><tt class="py-lineno">3285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line"> </tt>
+<a name="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3435" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3435', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3436" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3436', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L3290"></a><tt class="py-lineno">3290</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pypy_proxy_collect-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pypy_proxy_collect');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-expanded"><a name="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line">        <tt id="link-3437" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3437', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3438" class="py-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-3360', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3361" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3438', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3439" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3361', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">        <tt id="link-3362" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3439', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line">        <tt id="link-3440" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3362', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3363" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3363', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3364" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3364', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line"> </tt>
-<a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3365" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3365', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3209"></a><tt class="py-lineno">3209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3366" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3366', 'root', 'link-212');">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-3367" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3440', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3441', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3442', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line"> </tt>
+<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3443" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3443', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3444', 'root', 'link-212');">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-3445" 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-3367', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line"> </tt>
-<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt class="py-comment"># in PyPy, GC used to kill the Python proxy instance without cleanup</tt> </tt>
-<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3368" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3368', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3369', 'root', 'link-212');">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-3370" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3445', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line"> </tt>
+<a name="L3297"></a><tt class="py-lineno">3297</tt>  <tt class="py-line">        <tt class="py-comment"># in PyPy, GC used to kill the Python proxy instance without cleanup</tt> </tt>
+<a name="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3446', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3447', 'root', 'link-212');">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-3448" 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-3370', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line"> </tt>
-<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
-<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L3218"></a><tt class="py-lineno">3218</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._writeElement-toggle" onclick="return toggle('ETreeOnlyTestCase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">,</tt> <tt class="py-param">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._writeElement-expanded"><a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
-<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line">        <tt id="link-3371" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3448', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line"> </tt>
+<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
+<a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L3304"></a><tt class="py-lineno">3304</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._writeElement-toggle" onclick="return toggle('ETreeOnlyTestCase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">,</tt> <tt class="py-param">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._writeElement-expanded"><a name="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
+<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3307"></a><tt class="py-lineno">3307</tt>  <tt class="py-line">        <tt id="link-3449" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3371', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3372" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3449', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3450" class="py-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-3372', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3373" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3450', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3451" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3373', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L3222"></a><tt class="py-lineno">3222</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="L3223"></a><tt class="py-lineno">3223</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3374" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3451', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3308"></a><tt class="py-lineno">3308</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="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3452" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3374', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3375" 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-3375', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3376" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3376', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3377" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3377', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-name">compression</tt><tt class="py-op">)</tt> </tt>
-<a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line">        <tt id="link-3378" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3378', 'data', 'link-983');">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="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">compression</tt><tt class="py-op">:</tt> </tt>
-<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line">            <tt id="link-3379" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3379', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt id="link-3380" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3380', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3381" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3381', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3382" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3382', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line"> </tt>
-<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L3231"></a><tt class="py-lineno">3231</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase-toggle" onclick="return toggle('_XIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</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="_XIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XIncludeTestCase-expanded"><a name="_XIncludeTestCase.test_xinclude_text"></a><div id="_XIncludeTestCase.test_xinclude_text-def"><a name="L3232"></a><tt class="py-lineno">3232</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_text-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_text-expanded"><a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line">        <tt id="link-3383" 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-3383', 'filename', 'link-3383');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-3384" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3384', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">        <tt id="link-3385" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3385', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3386" class="py-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-3386', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3387" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3387', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3388" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3388', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L3236"></a><tt class="py-lineno">3236</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
-<a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
-<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-3389" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3389', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-3390" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3390', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3391" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3452', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L3310"></a><tt class="py-lineno">3310</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3453" 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-3453', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3454" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3454', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3455" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3455', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-name">compression</tt><tt class="py-op">)</tt> </tt>
+<a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">        <tt id="link-3456" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3456', 'data', 'link-983');">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="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">compression</tt><tt class="py-op">:</tt> </tt>
+<a name="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">            <tt id="link-3457" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3457', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt id="link-3458" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3458', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3459" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3459', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3460" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3460', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3315"></a><tt class="py-lineno">3315</tt>  <tt class="py-line"> </tt>
+<a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L3317"></a><tt class="py-lineno">3317</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase-toggle" onclick="return toggle('_XIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</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="_XIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XIncludeTestCase-expanded"><a name="_XIncludeTestCase.test_xinclude_text"></a><div id="_XIncludeTestCase.test_xinclude_text-def"><a name="L3318"></a><tt class="py-lineno">3318</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_text-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_text-expanded"><a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line">        <tt id="link-3461" 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-3461', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-3462" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3462', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line">        <tt id="link-3463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3463', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3464" class="py-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-3464', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3465" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3465', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3466" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3466', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L3322"></a><tt class="py-lineno">3322</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
+<a name="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
+<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-3467" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3467', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-3468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3468', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3469" 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-3391', 'text', 'link-186');">text</a></tt> </tt>
-<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-3392" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3392', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3393" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3393', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-3394" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3394', 'root', 'link-212');">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-3395" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3395', 'tail', 'link-842');">tail</a></tt> </tt>
-<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line"> </tt>
-<a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3396" class="py-name" targets="Function lxml.ElementInclude.include()=lxml.ElementInclude-module.html#include,Method lxml.tests.test_etree.ETreeXIncludeTestCase.include()=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include,Method lxml.tests.test_etree.ElementIncludeTestCase.include()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#include"><a title="lxml.ElementInclude.include
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3469', 'text', 'link-186');">text</a></tt> </tt>
+<a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-3470" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3470', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3471" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3471', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-3472" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3472', 'root', 'link-212');">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-3473" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3473', 'tail', 'link-842');">tail</a></tt> </tt>
+<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line"> </tt>
+<a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3474" class="py-name" targets="Function lxml.ElementInclude.include()=lxml.ElementInclude-module.html#include,Method lxml.tests.test_etree.ETreeXIncludeTestCase.include()=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include,Method lxml.tests.test_etree.ElementIncludeTestCase.include()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#include"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3396', 'include', 'link-3396');">include</a></tt><tt class="py-op">(</tt> <tt id="link-3397" class="py-name"><a title="lxml.etree
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3474', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt> <tt id="link-3475" class="py-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-3397', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3398" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3475', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3476" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3398', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3399', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3244"></a><tt class="py-lineno">3244</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">old_text</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> <tt class="py-op">+</tt> <tt class="py-name">old_tail</tt><tt class="py-op">,</tt> </tt>
-<a name="L3245"></a><tt class="py-lineno">3245</tt>  <tt class="py-line">                          <tt id="link-3400" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3400', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3401" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3476', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3477" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3477', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3330"></a><tt class="py-lineno">3330</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">old_text</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> <tt class="py-op">+</tt> <tt class="py-name">old_tail</tt><tt class="py-op">,</tt> </tt>
+<a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">                          <tt id="link-3478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3478', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3479" 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-3401', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L3247"></a><tt class="py-lineno">3247</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude-expanded"><a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3402" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3479', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L3333"></a><tt class="py-lineno">3333</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude-expanded"><a name="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3480" class="py-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-3402', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3403" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3480', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3481" 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-3403', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3404" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3404', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3405" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3405', 'getroot', 'link-692');">getroot</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 class="py-op">.</tt><tt id="link-3406" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3481', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3482" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3482', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3483" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3483', 'getroot', 'link-692');">getroot</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 class="py-op">.</tt><tt id="link-3484" 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-3406', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3252"></a><tt class="py-lineno">3252</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
-<a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3407" class="py-name"><a title="lxml.ElementInclude.include
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3484', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
+<a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3407', 'include', 'link-3396');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
-<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3257"></a><tt class="py-lineno">3257</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3408" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3408', 'getroot', 'link-692');">getroot</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 class="py-op">.</tt><tt id="link-3409" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3485', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3340"></a><tt class="py-lineno">3340</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
+<a name="L3341"></a><tt class="py-lineno">3341</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3342"></a><tt class="py-lineno">3342</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3486" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3486', 'getroot', 'link-692');">getroot</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 class="py-op">.</tt><tt id="link-3487" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3409', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L3259"></a><tt class="py-lineno">3259</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver-expanded"><a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">res</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-3410" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3410', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3411" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3411', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">            <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L3263"></a><tt class="py-lineno">3263</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">".dtd"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"dtd"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3266"></a><tt class="py-lineno">3266</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-3412" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-3412', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line">                        <tt id="link-3413" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3413', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"input"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment"># delegate to default resolver</tt> </tt>
-<a name="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3272"></a><tt class="py-lineno">3272</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"include"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3273"></a><tt class="py-lineno">3273</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-3414" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-3414', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">include_text</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line"> </tt>
-<a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt class="py-name">res</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line">        <tt id="link-3415" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3415', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3416" class="py-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-3416', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3417" class="py-name"><a title="lxml.etree.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3417', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">        <tt id="link-3418" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3418', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-3419" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-3419', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
-<a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line"> </tt>
-<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3420" class="py-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-3420', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3487', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L3345"></a><tt class="py-lineno">3345</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver-expanded"><a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">res</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-3488" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3488', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3489" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3489', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">            <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3350"></a><tt class="py-lineno">3350</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">".dtd"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"dtd"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3352"></a><tt class="py-lineno">3352</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-3490" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-3490', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">                        <tt id="link-3491" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3491', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"input"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment"># delegate to default resolver</tt> </tt>
+<a name="L3357"></a><tt class="py-lineno">3357</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"include"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3359"></a><tt class="py-lineno">3359</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-3492" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-3492', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">include_text</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3360"></a><tt class="py-lineno">3360</tt>  <tt class="py-line"> </tt>
+<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt class="py-name">res</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt id="link-3493" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3493', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3494" class="py-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-3494', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3495" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3495', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line">        <tt id="link-3496" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3496', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-3497" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-3497', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
+<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line"> </tt>
+<a name="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3498" class="py-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-3498', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3499" 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-3421', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3422" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3422', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line">                           <tt id="link-3423" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3423', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3424" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3424', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line"> </tt>
-<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3425" class="py-name"><a title="lxml.ElementInclude.include
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3499', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3500" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3500', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line">                           <tt id="link-3501" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3501', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3502" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3502', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line"> </tt>
+<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3503" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3425', 'include', 'link-3396');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line"> </tt>
-<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3503', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line"> </tt>
+<a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-3504" 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-3426', 'items', 'link-2171');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3285"></a><tt class="py-lineno">3285</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"dtd"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"include"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L3290"></a><tt class="py-lineno">3290</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase-toggle" onclick="return toggle('ETreeXIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXIncludeTestCase-expanded"><a name="ETreeXIncludeTestCase.include"></a><div id="ETreeXIncludeTestCase.include-def"><a name="L3291"></a><tt class="py-lineno">3291</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase.include-toggle" onclick="return toggle('ETreeXIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXIncludeTestCase.include-expanded"><a name="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3427" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude"><a title="lxml.etree._ElementTree.xinclude" class="py-name" href="#" onclick="return doclink('link-3427', 'xinclude', 'link-3427');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line"> </tt>
-<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line"> </tt>
-<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L3295"></a><tt class="py-lineno">3295</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase-toggle" onclick="return toggle('ElementIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ElementIncludeTestCase-expanded"><a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-3428" class="py-name" targets="Package lxml=lxml-module.html"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-3428', 'lxml', 'link-3428');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3429" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3429', 'ElementInclude', 'link-3429');">ElementInclude</a></tt> </tt>
-<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L3297"></a><tt class="py-lineno">3297</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.include-toggle" onclick="return toggle('ElementIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.include-expanded"><a name="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3430" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3430', 'ElementInclude', 'link-3429');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-3431" class="py-name"><a title="lxml.ElementInclude.include
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3504', 'items', 'link-2171');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"dtd"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"include"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L3376"></a><tt class="py-lineno">3376</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase-toggle" onclick="return toggle('ETreeXIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXIncludeTestCase-expanded"><a name="ETreeXIncludeTestCase.include"></a><div id="ETreeXIncludeTestCase.include-def"><a name="L3377"></a><tt class="py-lineno">3377</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase.include-toggle" onclick="return toggle('ETreeXIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXIncludeTestCase.include-expanded"><a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3505" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude"><a title="lxml.etree._ElementTree.xinclude" class="py-name" href="#" onclick="return doclink('link-3505', 'xinclude', 'link-3505');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line"> </tt>
+<a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line"> </tt>
+<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L3381"></a><tt class="py-lineno">3381</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase-toggle" onclick="return toggle('ElementIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ElementIncludeTestCase-expanded"><a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-3506" class="py-name" targets="Package lxml=lxml-module.html"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-3506', 'lxml', 'link-3506');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3507" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3507', 'ElementInclude', 'link-3507');">ElementInclude</a></tt> </tt>
+<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L3383"></a><tt class="py-lineno">3383</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.include-toggle" onclick="return toggle('ElementIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.include-expanded"><a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3508" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3508', 'ElementInclude', 'link-3507');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-3509" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3431', 'include', 'link-3396');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3432" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3432', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line"> </tt>
-<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L3301"></a><tt class="py-lineno">3301</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase-toggle" onclick="return toggle('ETreeC14NTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</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="ETreeC14NTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeC14NTestCase-expanded"><a name="ETreeC14NTestCase.test_c14n"></a><div id="ETreeC14NTestCase.test_c14n-def"><a name="L3302"></a><tt class="py-lineno">3302</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n-expanded"><a name="L3303"></a><tt class="py-lineno">3303</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-3433" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3509', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3510" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3510', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line"> </tt>
+<a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L3387"></a><tt class="py-lineno">3387</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase-toggle" onclick="return toggle('ETreeC14NTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</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="ETreeC14NTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeC14NTestCase-expanded"><a name="ETreeC14NTestCase.test_c14n"></a><div id="ETreeC14NTestCase.test_c14n-def"><a name="L3388"></a><tt class="py-lineno">3388</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n-expanded"><a name="L3389"></a><tt class="py-lineno">3389</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-3511" 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-3433', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3434" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3434', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3304"></a><tt class="py-lineno">3304</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="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3435" class="py-name" targets="Method lxml.etree._ElementTree.write_c14n()=lxml.etree._ElementTree-class.html#write_c14n"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3435', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3307"></a><tt class="py-lineno">3307</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3436" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3436', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L3310"></a><tt class="py-lineno">3310</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_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="ETreeC14NTestCase.test_c14n_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_gzip-expanded"><a name="L3311"></a><tt class="py-lineno">3311</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-3437" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3511', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3512', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">        <tt class="py-name">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="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3513" class="py-name" targets="Method lxml.etree._ElementTree.write_c14n()=lxml.etree._ElementTree-class.html#write_c14n"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3513', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3514" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3514', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3395"></a><tt class="py-lineno">3395</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L3396"></a><tt class="py-lineno">3396</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_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="ETreeC14NTestCase.test_c14n_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_gzip-expanded"><a name="L3397"></a><tt class="py-lineno">3397</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-3515" 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-3437', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3438" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3438', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line">        <tt class="py-name">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="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3439" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3439', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3315"></a><tt class="py-lineno">3315</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3440" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3440', 'read', 'link-3440');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3317"></a><tt class="py-lineno">3317</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3318"></a><tt class="py-lineno">3318</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3441', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3442" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3442', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L3322"></a><tt class="py-lineno">3322</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file-expanded"><a name="L3323"></a><tt class="py-lineno">3323</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-3443" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3515', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3516" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3516', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">        <tt class="py-name">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="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3517', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3400"></a><tt class="py-lineno">3400</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3518" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3518', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3519', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3520', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L3408"></a><tt class="py-lineno">3408</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file-expanded"><a name="L3409"></a><tt class="py-lineno">3409</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-3521" 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-3443', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3444" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3444', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line">        <tt id="link-3445" 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.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3521', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3522" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3522', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">        <tt id="link-3523" 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-3445', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3446" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3446', 'filename', 'link-3383');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3447" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3447', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3448" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3448', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">            <tt id="link-3449" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3449', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3450" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3450', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3451" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3451', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3452" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3452', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3453" 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-3523', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3524" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3524', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3525" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3525', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3526" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3526', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3413"></a><tt class="py-lineno">3413</tt>  <tt class="py-line">            <tt id="link-3527" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3527', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3528" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3528', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3529" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3529', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3530" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3530', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3531" 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-3453', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3330"></a><tt class="py-lineno">3330</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3454" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3531', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3532" 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-3454', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3455" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3455', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3456" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3456', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line">                          <tt id="link-3457" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3457', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3333"></a><tt class="py-lineno">3333</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L3334"></a><tt class="py-lineno">3334</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_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="ETreeC14NTestCase.test_c14n_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file_gzip-expanded"><a name="L3335"></a><tt class="py-lineno">3335</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-3458" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3532', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3533" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3533', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3534" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3534', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3418"></a><tt class="py-lineno">3418</tt>  <tt class="py-line">                          <tt id="link-3535" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3535', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L3420"></a><tt class="py-lineno">3420</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_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="ETreeC14NTestCase.test_c14n_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file_gzip-expanded"><a name="L3421"></a><tt class="py-lineno">3421</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-3536" 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-3458', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3459" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3459', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">        <tt id="link-3460" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3536', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3537" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3537', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line">        <tt id="link-3538" 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-3460', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3461" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3461', 'filename', 'link-3383');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3462" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3462', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3463" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3463', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3464" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3464', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3340"></a><tt class="py-lineno">3340</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3341"></a><tt class="py-lineno">3341</tt>  <tt class="py-line">                <tt id="link-3465" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3465', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3466" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3466', 'read', 'link-3440');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3342"></a><tt class="py-lineno">3342</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3467" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3467', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3345"></a><tt class="py-lineno">3345</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3468" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3468', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3469" 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-3538', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3539" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3539', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3540" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3540', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3541" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3541', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3542" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3542', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">                <tt id="link-3543" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3543', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3544" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3544', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3545" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3545', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3546" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3546', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3547" 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-3469', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3470" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3547', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3432"></a><tt class="py-lineno">3432</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3548" 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-3470', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3471" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3471', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3472" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3472', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">                          <tt id="link-3473" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3473', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L3350"></a><tt class="py-lineno">3350</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_with_comments-expanded"><a name="L3351"></a><tt class="py-lineno">3351</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-3474" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3548', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3549" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3549', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3550" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3550', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line">                          <tt id="link-3551" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3551', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L3436"></a><tt class="py-lineno">3436</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_with_comments-expanded"><a name="L3437"></a><tt class="py-lineno">3437</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-3552" 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-3474', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3475" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3475', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3352"></a><tt class="py-lineno">3352</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="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3476" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3476', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3477" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3477', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3357"></a><tt class="py-lineno">3357</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="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3478" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3478', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3359"></a><tt class="py-lineno">3359</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3360"></a><tt class="py-lineno">3360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3479" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3479', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt class="py-name">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="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3480" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3480', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3481" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3481', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-def"><a name="L3368"></a><tt class="py-lineno">3368</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-expanded"><a name="L3369"></a><tt class="py-lineno">3369</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-3482" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3552', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3553" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3553', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line">        <tt class="py-name">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="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3554" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3554', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3555" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3555', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3442"></a><tt class="py-lineno">3442</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3443"></a><tt class="py-lineno">3443</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="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3556" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3556', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3557" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3557', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line">        <tt class="py-name">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="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3558" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3558', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3559', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-def"><a name="L3454"></a><tt class="py-lineno">3454</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-expanded"><a name="L3455"></a><tt class="py-lineno">3455</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-3560" 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-3482', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3483" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3483', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3484" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3560', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3561" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3561', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3562" class="py-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-3484', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3485', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3486" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3486', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3487" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3487', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3488" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3562', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3563" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3563', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3564" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3564', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3565" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3565', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3566" class="py-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-3488', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3489" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3489', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3490" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3490', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3491" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3491', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3376"></a><tt class="py-lineno">3376</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3492" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3566', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3567" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3567', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3568" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3568', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3460"></a><tt class="py-lineno">3460</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3569" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3569', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3570" class="py-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-3492', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3493" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3493', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3494" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3494', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3377"></a><tt class="py-lineno">3377</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3495" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3495', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_element_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-def"><a name="L3380"></a><tt class="py-lineno">3380</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-expanded"><a name="L3381"></a><tt class="py-lineno">3381</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-3496" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3570', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3571" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3571', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3572" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3572', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3573" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3573', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_element_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-def"><a name="L3466"></a><tt class="py-lineno">3466</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-expanded"><a name="L3467"></a><tt class="py-lineno">3467</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-3574" 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-3496', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3497" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3497', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3498" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3574', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3575" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3575', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3468"></a><tt class="py-lineno">3468</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3576" class="py-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-3498', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3499" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3499', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3500" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3500', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3501" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3501', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3383"></a><tt class="py-lineno">3383</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3502" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3502', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3503" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3576', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3577" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3577', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3578" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3578', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3579" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3579', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3580" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3580', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3470"></a><tt class="py-lineno">3470</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3471"></a><tt class="py-lineno">3471</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3581" class="py-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-3503', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3504" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3504', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3505" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3505', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3506" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3506', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3507" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3507', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3388"></a><tt class="py-lineno">3388</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3508" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3581', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3582" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3582', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3583" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3583', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3584" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3584', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3585" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3585', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3586" class="py-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-3508', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3509" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3509', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3510" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3510', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3511" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3511', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3512', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L3392"></a><tt class="py-lineno">3392</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_exclusive-expanded"><a name="L3393"></a><tt class="py-lineno">3393</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-3513" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3586', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3587" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3587', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3588" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3588', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3589" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3589', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3475"></a><tt class="py-lineno">3475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3590" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3590', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L3478"></a><tt class="py-lineno">3478</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_exclusive-expanded"><a name="L3479"></a><tt class="py-lineno">3479</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-3591" 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-3513', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3514" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3514', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3395"></a><tt class="py-lineno">3395</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="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3515" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3515', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3516" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3516', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3400"></a><tt class="py-lineno">3400</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="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3517', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3518" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3518', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">        <tt class="py-name">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="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3519', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3408"></a><tt class="py-lineno">3408</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3520', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line"> </tt>
-<a name="L3411"></a><tt class="py-lineno">3411</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="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3521" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3521', 'write_c14n', 'link-3435');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3413"></a><tt class="py-lineno">3413</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3522" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3522', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L3417"></a><tt class="py-lineno">3417</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-expanded"><a name="L3418"></a><tt class="py-lineno">3418</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-3523" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3591', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3592" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3592', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">        <tt 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="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3593" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3593', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3594" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3594', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line">        <tt class="py-name">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="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3595" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3595', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3596" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3596', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3490"></a><tt class="py-lineno">3490</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3491"></a><tt class="py-lineno">3491</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="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3597" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3597', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3598" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3598', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line"> </tt>
+<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">        <tt 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="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3599" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3599', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3499"></a><tt class="py-lineno">3499</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3600" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3600', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3502"></a><tt class="py-lineno">3502</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L3503"></a><tt class="py-lineno">3503</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-expanded"><a name="L3504"></a><tt class="py-lineno">3504</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-3601" 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-3523', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3524" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3524', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3420"></a><tt class="py-lineno">3420</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3525" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3601', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3602" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3602', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3603" class="py-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-3525', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3526" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3526', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3527" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3527', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3421"></a><tt class="py-lineno">3421</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3528" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3528', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3529" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3603', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3604" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3604', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3605" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3605', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3606" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3606', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3607" class="py-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-3529', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3530" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3530', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3531" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3531', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3532" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3532', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3533" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3607', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3608" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3608', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3609" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3609', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3610" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3610', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3512"></a><tt class="py-lineno">3512</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3611" class="py-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-3533', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3534" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3534', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3535" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3535', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3536" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3536', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line"> </tt>
-<a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3537" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3611', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3612" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3612', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3613" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3613', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3614" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3614', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3515"></a><tt class="py-lineno">3515</tt>  <tt class="py-line"> </tt>
+<a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3615" class="py-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-3537', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3538" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3538', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3539" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3539', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3540" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3540', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3432"></a><tt class="py-lineno">3432</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_element_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-def"><a name="L3434"></a><tt class="py-lineno">3434</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-expanded"><a name="L3435"></a><tt class="py-lineno">3435</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-3541" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3615', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3616" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3616', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3617" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3617', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3618" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3618', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_element_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-def"><a name="L3520"></a><tt class="py-lineno">3520</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-expanded"><a name="L3521"></a><tt class="py-lineno">3521</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-3619" 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-3541', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3542', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3436"></a><tt class="py-lineno">3436</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3543" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3619', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3620" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3620', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3523"></a><tt class="py-lineno">3523</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3621" class="py-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-3543', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3544" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3544', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3545" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3545', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3546" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3546', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3547" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3547', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3548" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3621', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3622" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3622', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3623" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3623', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3624" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3624', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3625" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3625', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3626" class="py-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-3548', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3549" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3549', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3550" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3550', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3551" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3551', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3552" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3552', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3442"></a><tt class="py-lineno">3442</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3443"></a><tt class="py-lineno">3443</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3553" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3626', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3627" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3627', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3628" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3628', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3629" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3629', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3630" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3630', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3631" class="py-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-3553', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3554" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3554', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3555" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3555', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3556" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3556', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3557" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3557', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line"> </tt>
-<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3558" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3631', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3632" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3632', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3633" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3633', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3634" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3634', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3635" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3635', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line"> </tt>
+<a name="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3636" class="py-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-3558', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3559" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3559', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3560" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3560', 'getroot', 'link-692');">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-3561" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3561', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3562" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3562', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3563" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3636', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3637', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3638', 'getroot', 'link-692');">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-3639" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3639', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3640" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3640', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3641" class="py-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-3563', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3564" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3564', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3565" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3565', 'getroot', 'link-692');">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-3566" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3566', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3567" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3567', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line"> </tt>
-<a name="L3454"></a><tt class="py-lineno">3454</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3568" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3641', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3642" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3642', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3643" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3643', 'getroot', 'link-692');">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-3644" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3644', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3537"></a><tt class="py-lineno">3537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3645" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3645', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3539"></a><tt class="py-lineno">3539</tt>  <tt class="py-line"> </tt>
+<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3646" class="py-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-3568', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3569" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3569', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3570" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3570', 'getroot', 'link-692');">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-3571" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3571', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3455"></a><tt class="py-lineno">3455</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3572" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3572', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes"></a><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-def"><a name="L3458"></a><tt class="py-lineno">3458</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-expanded"><a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">        <tt class="py-docstring">""" Regression test to fix memory allocation issues (use 3+ inclusive NS spaces)"""</tt> </tt>
-<a name="L3460"></a><tt class="py-lineno">3460</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-3573" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3646', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3647" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3647', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3648" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3648', 'getroot', 'link-692');">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-3649" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3649', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3650" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3650', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes"></a><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-def"><a name="L3544"></a><tt class="py-lineno">3544</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-expanded"><a name="L3545"></a><tt class="py-lineno">3545</tt>  <tt class="py-line">        <tt class="py-docstring">""" Regression test to fix memory allocation issues (use 3+ inclusive NS spaces)"""</tt> </tt>
+<a name="L3546"></a><tt class="py-lineno">3546</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-3651" 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-3573', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3574" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3574', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line"> </tt>
-<a name="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3575" class="py-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-3575', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3576" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3576', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3577" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3577', 'method', 'link-3170');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3578" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3578', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3466"></a><tt class="py-lineno">3466</tt>  <tt class="py-line"> </tt>
-<a name="L3467"></a><tt class="py-lineno">3467</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L3468"></a><tt class="py-lineno">3468</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase-toggle" onclick="return toggle('ETreeWriteTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</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="ETreeWriteTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeWriteTestCase-expanded"><a name="ETreeWriteTestCase.test_write"></a><div id="ETreeWriteTestCase.test_write-def"><a name="L3469"></a><tt class="py-lineno">3469</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write-toggle" onclick="return toggle('ETreeWriteTestCase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write-expanded"><a name="L3470"></a><tt class="py-lineno">3470</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-3579" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3651', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3652" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3652', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line"> </tt>
+<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3653" class="py-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-3653', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3654" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3654', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3655" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3655', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3656" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3656', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3552"></a><tt class="py-lineno">3552</tt>  <tt class="py-line"> </tt>
+<a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L3554"></a><tt class="py-lineno">3554</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase-toggle" onclick="return toggle('ETreeWriteTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</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="ETreeWriteTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeWriteTestCase-expanded"><a name="ETreeWriteTestCase.test_write"></a><div id="ETreeWriteTestCase.test_write-def"><a name="L3555"></a><tt class="py-lineno">3555</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write-toggle" onclick="return toggle('ETreeWriteTestCase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write-expanded"><a name="L3556"></a><tt class="py-lineno">3556</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-3657" 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-3579', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3580" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3580', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3471"></a><tt class="py-lineno">3471</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="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3581" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3581', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3582" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3582', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3475"></a><tt class="py-lineno">3475</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L3477"></a><tt class="py-lineno">3477</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_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="ETreeWriteTestCase.test_write_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip-expanded"><a name="L3478"></a><tt class="py-lineno">3478</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-3583" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3657', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3658" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3658', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3557"></a><tt class="py-lineno">3557</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="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3659" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3659', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3660" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3660', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L3563"></a><tt class="py-lineno">3563</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_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="ETreeWriteTestCase.test_write_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip-expanded"><a name="L3564"></a><tt class="py-lineno">3564</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-3661" 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-3583', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3584" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3584', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">        <tt 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="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3585" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3585', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3586" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3586', 'read', 'link-3440');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3587" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3587', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3588" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3588', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L3489"></a><tt class="py-lineno">3489</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_level-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_level');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_gzip_level-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_level-expanded"><a name="L3490"></a><tt class="py-lineno">3490</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-3589" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3661', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3662" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3662', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line">        <tt class="py-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="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3663" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3663', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3567"></a><tt class="py-lineno">3567</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3664" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3664', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3665" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3665', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3666', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3574"></a><tt class="py-lineno">3574</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L3575"></a><tt class="py-lineno">3575</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_level-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_level');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_gzip_level-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_level-expanded"><a name="L3576"></a><tt class="py-lineno">3576</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-3667" 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-3589', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3590" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3590', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3491"></a><tt class="py-lineno">3491</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="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3591" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3591', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line">        <tt class="py-name">s0</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="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line"> </tt>
-<a name="L3495"></a><tt class="py-lineno">3495</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="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3592" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3592', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line"> </tt>
-<a name="L3499"></a><tt class="py-lineno">3499</tt>  <tt class="py-line">        <tt class="py-name">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="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3593" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3593', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3502"></a><tt class="py-lineno">3502</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">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">            <tt class="py-name">s1</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3594" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3594', 'read', 'link-3440');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3595" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3595', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line"> </tt>
-<a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line">        <tt 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="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3596" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3596', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3512"></a><tt class="py-lineno">3512</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">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3515"></a><tt class="py-lineno">3515</tt>  <tt class="py-line">            <tt class="py-name">s9</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3597" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3597', 'read', 'link-3440');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3598" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3598', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line"> </tt>
-<a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3599" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3599', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3520"></a><tt class="py-lineno">3520</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3521"></a><tt class="py-lineno">3521</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3600" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3600', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3523"></a><tt class="py-lineno">3523</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3601" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3601', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L3526"></a><tt class="py-lineno">3526</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file-expanded"><a name="L3527"></a><tt class="py-lineno">3527</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-3602" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3667', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3668" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3668', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3577"></a><tt class="py-lineno">3577</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="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3669" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3669', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line">        <tt class="py-name">s0</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="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line"> </tt>
+<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line">        <tt class="py-name">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="L3582"></a><tt class="py-lineno">3582</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3670" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3670', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line"> </tt>
+<a name="L3585"></a><tt class="py-lineno">3585</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="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3671" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3671', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3588"></a><tt class="py-lineno">3588</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">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">            <tt class="py-name">s1</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3672" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3672', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3673" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3673', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line"> </tt>
+<a name="L3595"></a><tt class="py-lineno">3595</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="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3674" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3674', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">        <tt class="py-name">s</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="L3598"></a><tt class="py-lineno">3598</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">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3599"></a><tt class="py-lineno">3599</tt>  <tt class="py-line">        <tt class="py-name">gzfile</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">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line">            <tt class="py-name">s9</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3675" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3675', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3676" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3676', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3604"></a><tt class="py-lineno">3604</tt>  <tt class="py-line"> </tt>
+<a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3677" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3677', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3678" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3678', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3679" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3679', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L3612"></a><tt class="py-lineno">3612</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file-expanded"><a name="L3613"></a><tt class="py-lineno">3613</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-3680" 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-3602', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3603" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3603', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">        <tt id="link-3604" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3680', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3681" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3681', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">        <tt id="link-3682" 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-3604', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3605" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3605', 'filename', 'link-3383');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3606" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3606', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt id="link-3607" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3607', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line">            <tt id="link-3608" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3608', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3609" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3609', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3610" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3610', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3611" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3611', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3612" 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-3682', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3683" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3683', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3616"></a><tt class="py-lineno">3616</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3684" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3684', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3685" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3685', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line">            <tt id="link-3686" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3686', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3687" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3687', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3688" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3688', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3689" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3689', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3690" 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-3612', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3613" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3690', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3691" 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-3613', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3614" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3614', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3615" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3615', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line">                          <tt id="link-3616" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3616', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3537"></a><tt class="py-lineno">3537</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L3538"></a><tt class="py-lineno">3538</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_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="ETreeWriteTestCase.test_write_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip-expanded"><a name="L3539"></a><tt class="py-lineno">3539</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-3617" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3691', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3692" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3692', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3693" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3693', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line">                          <tt id="link-3694" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3694', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L3624"></a><tt class="py-lineno">3624</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_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="ETreeWriteTestCase.test_write_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip-expanded"><a name="L3625"></a><tt class="py-lineno">3625</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-3695" 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-3617', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3618" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3618', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">        <tt id="link-3619" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3695', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3696" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3696', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">        <tt id="link-3697" 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-3619', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3620" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3620', 'filename', 'link-3383');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3621" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3621', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt id="link-3622" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3622', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3623" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3623', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3544"></a><tt class="py-lineno">3544</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3545"></a><tt class="py-lineno">3545</tt>  <tt class="py-line">                <tt id="link-3624" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3624', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3625" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3625', 'read', 'link-3440');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3626" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3626', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3627" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3627', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3628" 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-3697', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3698" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3698', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3699" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3699', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3700" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3700', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3701" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3701', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3630"></a><tt class="py-lineno">3630</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line">                <tt id="link-3702" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3702', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3703" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3703', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3632"></a><tt class="py-lineno">3632</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3704" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3704', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3635"></a><tt class="py-lineno">3635</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3705" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3705', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3706" 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-3628', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3629" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3706', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3707" 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-3629', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3630" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3630', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3631" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3631', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3552"></a><tt class="py-lineno">3552</tt>  <tt class="py-line">                          <tt id="link-3632" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3632', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzip_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzip_parse-def"><a name="L3554"></a><tt class="py-lineno">3554</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-expanded"><a name="L3555"></a><tt class="py-lineno">3555</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-3633" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3707', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3708" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3708', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3709" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3709', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">                          <tt id="link-3710" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3710', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzip_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzip_parse-def"><a name="L3640"></a><tt class="py-lineno">3640</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-expanded"><a name="L3641"></a><tt class="py-lineno">3641</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-3711" 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-3633', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3634" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3634', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">        <tt id="link-3635" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3711', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3712" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3712', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-line">        <tt id="link-3713" 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-3635', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3636" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3636', 'filename', 'link-3383');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3637', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt id="link-3638" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3638', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">            <tt id="link-3639" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3639', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3640" class="py-name"><a title="lxml.etree
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3713', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3714" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3714', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3715" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3715', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3716" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3716', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line">            <tt id="link-3717" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3717', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3718" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3640', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3641" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3641', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3642" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3718', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3719" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3719', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3720" class="py-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-3642', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3643" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3720', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3721" 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-3643', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3644" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3644', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3645" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3645', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3646" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3721', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3722" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3722', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3723" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3723', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3724" 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-3646', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3647" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3724', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3725" 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-3647', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3648" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3648', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3649" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3649', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">                          <tt id="link-3650" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3650', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzipfile_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-def"><a name="L3566"></a><tt class="py-lineno">3566</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzipfile_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzipfile_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-expanded"><a name="L3567"></a><tt class="py-lineno">3567</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-3651" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3725', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3726" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3726', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3727" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3727', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3650"></a><tt class="py-lineno">3650</tt>  <tt class="py-line">                          <tt id="link-3728" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3728', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzipfile_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-def"><a name="L3652"></a><tt class="py-lineno">3652</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzipfile_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzipfile_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-expanded"><a name="L3653"></a><tt class="py-lineno">3653</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-3729" 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-3651', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3652" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3652', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line">        <tt id="link-3653" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3729', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3730" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3730', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-line">        <tt id="link-3731" 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-3653', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3654" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3654', 'filename', 'link-3383');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3655" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3655', 'write', 'link-3375');">write</a></tt><tt class="py-op">(</tt><tt id="link-3656" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3656', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">            <tt id="link-3657" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3657', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3658" class="py-name"><a title="lxml.etree
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3731', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3732" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3732', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3655"></a><tt class="py-lineno">3655</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3733" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3733', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3734" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3734', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line">            <tt id="link-3735" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3735', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3736" class="py-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-3658', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3659" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3659', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3660" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3736', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3737" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3737', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3738" class="py-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-3660', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3661" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3738', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3739" 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-3661', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">                <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt id="link-3662" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3662', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3574"></a><tt class="py-lineno">3574</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3663" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3663', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3664" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3739', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3658"></a><tt class="py-lineno">3658</tt>  <tt class="py-line">                <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt id="link-3740" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3740', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3741" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3741', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3742" 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-3664', 'handle', 'link-3445');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3575"></a><tt class="py-lineno">3575</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3665" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3742', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3743" 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-3665', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3666" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3666', 'filename', 'link-3383');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3667" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3667', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">                          <tt id="link-3668" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3668', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L3579"></a><tt class="py-lineno">3579</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest-toggle" onclick="return toggle('ETreeErrorLogTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</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="ETreeErrorLogTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeErrorLogTest-expanded"><a name="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line">    <tt id="link-3669" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3743', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3744" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3744', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3745" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3745', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3663"></a><tt class="py-lineno">3663</tt>  <tt class="py-line">                          <tt id="link-3746" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3746', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3664"></a><tt class="py-lineno">3664</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L3665"></a><tt class="py-lineno">3665</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest-toggle" onclick="return toggle('ETreeErrorLogTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</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="ETreeErrorLogTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeErrorLogTest-expanded"><a name="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line">    <tt id="link-3747" class="py-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-3669', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3670" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3747', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3748" class="py-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-3670', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L3582"></a><tt class="py-lineno">3582</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest.test_parse_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest.test_parse_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest.test_parse_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest.test_parse_error_logging-expanded"><a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt id="link-3671" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3748', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3667"></a><tt class="py-lineno">3667</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L3668"></a><tt class="py-lineno">3668</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest.test_parse_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest.test_parse_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest.test_parse_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest.test_parse_error_logging-expanded"><a name="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">        <tt id="link-3749" 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-3671', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3672" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3749', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3750" class="py-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-3672', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3673" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3750', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3751" 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-3673', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3674" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3751', 'parse', 'link-749');">parse</a></tt> </tt>
+<a name="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3752" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3674', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3675" class="py-name" targets="Function lxml.etree.clear_error_log()=lxml.etree-module.html#clear_error_log"><a title="lxml.etree.clear_error_log" class="py-name" href="#" onclick="return doclink('link-3675', 'clear_error_log', 'link-3675');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line">            <tt id="link-3676" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3752', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3753" class="py-name" targets="Function lxml.etree.clear_error_log()=lxml.etree-module.html#clear_error_log"><a title="lxml.etree.clear_error_log" class="py-name" href="#" onclick="return doclink('link-3753', 'clear_error_log', 'link-3753');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">            <tt id="link-3754" 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-3676', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3588"></a><tt class="py-lineno">3588</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3677" class="py-name" targets="Variable lxml.etree.XInclude.error_log=lxml.etree.XInclude-class.html#error_log,Variable lxml.etree.XSLT.error_log=lxml.etree.XSLT-class.html#error_log,Variable lxml.etree._Validator.error_log=lxml.etree._Validator-class.html#error_log,Variable lxml.etree._XPathEvaluatorBase.error_log=lxml.etree._XPathEvaluatorBase-class.html#error_log,Variable lxml.etree.iterparse.error_log=lxml.etree.iterparse-class.html#error_log"><a title="lxml.etree.XInclude.error_log
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3754', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3676"></a><tt class="py-lineno">3676</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3755" class="py-name" targets="Variable lxml.etree.XInclude.error_log=lxml.etree.XInclude-class.html#error_log,Variable lxml.etree.XSLT.error_log=lxml.etree.XSLT-class.html#error_log,Variable lxml.etree._Validator.error_log=lxml.etree._Validator-class.html#error_log,Variable lxml.etree._XPathEvaluatorBase.error_log=lxml.etree._XPathEvaluatorBase-class.html#error_log,Variable lxml.etree.iterparse.error_log=lxml.etree.iterparse-class.html#error_log"><a title="lxml.etree.XInclude.error_log
 lxml.etree.XSLT.error_log
 lxml.etree._Validator.error_log
 lxml.etree._XPathEvaluatorBase.error_log
-lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-3677', 'error_log', 'link-3677');">error_log</a></tt> </tt>
-<a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3678" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3678', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3679" class="py-name" targets="Method lxml.etree.PyErrorLog.log()=lxml.etree.PyErrorLog-class.html#log"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3679', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3680" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3680', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3681" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3681', 'log', 'link-3679');">log</a></tt><tt class="py-op">.</tt><tt id="link-3682" class="py-name" targets="Variable lxml.etree._LogEntry.message=lxml.etree._LogEntry-class.html#message"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3682', 'message', 'link-3682');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3595"></a><tt class="py-lineno">3595</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-op">[</tt> <tt id="link-3683" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3683', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3684" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3684', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'PARSER'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3685" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3685', 'log', 'link-3679');">log</a></tt><tt class="py-op">.</tt><tt id="link-3686" class="py-name" targets="Variable lxml.etree._LogEntry.domain_name=lxml.etree._LogEntry-class.html#domain_name"><a title="lxml.etree._LogEntry.domain_name" class="py-name" href="#" onclick="return doclink('link-3686', 'domain_name', 'link-3686');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3597"></a><tt class="py-lineno">3597</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-op">[</tt> <tt id="link-3687" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3687', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3688" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3688', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'ERR_TAG_NAME_MISMATCH'</tt> <tt class="py-keyword">in</tt> <tt id="link-3689" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3689', 'log', 'link-3679');">log</a></tt><tt class="py-op">.</tt><tt id="link-3690" class="py-name" targets="Variable lxml.etree._LogEntry.type_name=lxml.etree._LogEntry-class.html#type_name"><a title="lxml.etree._LogEntry.type_name" class="py-name" href="#" onclick="return doclink('link-3690', 'type_name', 'link-3690');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3599"></a><tt class="py-lineno">3599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3691" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3691', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3692" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3692', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">1</tt> <tt class="py-op">==</tt> <tt id="link-3693" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3693', 'log', 'link-3679');">log</a></tt><tt class="py-op">.</tt><tt id="link-3694" class="py-name" targets="Variable lxml.etree._LogEntry.line=lxml.etree._LogEntry-class.html#line"><a title="lxml.etree._LogEntry.line" class="py-name" href="#" onclick="return doclink('link-3694', 'line', 'link-3694');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3695" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3695', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3696" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3696', 'log', 'link-3679');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">15</tt> <tt class="py-op">==</tt> <tt id="link-3697" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3697', 'log', 'link-3679');">log</a></tt><tt class="py-op">.</tt><tt id="link-3698" class="py-name" targets="Variable lxml.etree._LogEntry.column=lxml.etree._LogEntry-class.html#column"><a title="lxml.etree._LogEntry.column" class="py-name" href="#" onclick="return doclink('link-3698', 'column', 'link-3698');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L3604"></a><tt class="py-lineno">3604</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest._test_python_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest._test_python_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest._test_python_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest._test_python_error_logging-expanded"><a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">        <tt class="py-docstring">"""This can't really be tested as long as there isn't a way to</tt> </tt>
-<a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
-<a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line">        <tt id="link-3699" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-3755', 'error_log', 'link-3755');">error_log</a></tt> </tt>
+<a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3756" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3756', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3679"></a><tt class="py-lineno">3679</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-op">[</tt> <tt id="link-3757" class="py-name" targets="Method lxml.etree.PyErrorLog.log()=lxml.etree.PyErrorLog-class.html#log"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3757', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3758" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3758', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3759" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3759', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3760" class="py-name" targets="Variable lxml.etree._LogEntry.message=lxml.etree._LogEntry-class.html#message"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3760', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3761" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3761', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3762" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3762', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'PARSER'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3763" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3763', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3764" class="py-name" targets="Variable lxml.etree._LogEntry.domain_name=lxml.etree._LogEntry-class.html#domain_name"><a title="lxml.etree._LogEntry.domain_name" class="py-name" href="#" onclick="return doclink('link-3764', 'domain_name', 'link-3764');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3765" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3765', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3766" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3766', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3684"></a><tt class="py-lineno">3684</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'ERR_TAG_NAME_MISMATCH'</tt> <tt class="py-keyword">in</tt> <tt id="link-3767" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3767', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3768" class="py-name" targets="Variable lxml.etree._LogEntry.type_name=lxml.etree._LogEntry-class.html#type_name"><a title="lxml.etree._LogEntry.type_name" class="py-name" href="#" onclick="return doclink('link-3768', 'type_name', 'link-3768');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3769" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3769', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3770" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3770', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">1</tt> <tt class="py-op">==</tt> <tt id="link-3771" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3771', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3772" class="py-name" targets="Variable lxml.etree._LogEntry.line=lxml.etree._LogEntry-class.html#line"><a title="lxml.etree._LogEntry.line" class="py-name" href="#" onclick="return doclink('link-3772', 'line', 'link-3772');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3773" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3773', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3774" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3774', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3688"></a><tt class="py-lineno">3688</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">15</tt> <tt class="py-op">==</tt> <tt id="link-3775" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3775', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3776" class="py-name" targets="Variable lxml.etree._LogEntry.column=lxml.etree._LogEntry-class.html#column"><a title="lxml.etree._LogEntry.column" class="py-name" href="#" onclick="return doclink('link-3776', 'column', 'link-3776');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L3690"></a><tt class="py-lineno">3690</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest._test_python_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest._test_python_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest._test_python_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest._test_python_error_logging-expanded"><a name="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line">        <tt class="py-docstring">"""This can't really be tested as long as there isn't a way to</tt> </tt>
+<a name="L3692"></a><tt class="py-lineno">3692</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
+<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line">        <tt id="link-3777" 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-3699', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3700" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3777', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3778" class="py-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-3700', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3701" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3778', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3779" 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-3701', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line"> </tt>
-<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line">        <tt class="py-name">messages</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Logger</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PyErrorLog</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">log</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">,</tt> <tt class="py-param">message</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>
-<a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-3702" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3702', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-3703" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3703', 'message', 'link-3682');">message</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line"> </tt>
-<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3704" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3779', 'parse', 'link-749');">parse</a></tt> </tt>
+<a name="L3695"></a><tt class="py-lineno">3695</tt>  <tt class="py-line"> </tt>
+<a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">        <tt class="py-name">messages</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Logger</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PyErrorLog</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">log</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">,</tt> <tt class="py-param">message</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>
+<a name="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-3780" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3780', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-3781" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3781', 'message', 'link-3760');">message</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line"> </tt>
+<a name="L3701"></a><tt class="py-lineno">3701</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3782" class="py-name"><a title="lxml.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-3704', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3705" class="py-name" targets="Function lxml.etree.use_global_python_log()=lxml.etree-module.html#use_global_python_log"><a title="lxml.etree.use_global_python_log" class="py-name" href="#" onclick="return doclink('link-3705', 'use_global_python_log', 'link-3705');">use_global_python_log</a></tt><tt class="py-op">(</tt><tt class="py-name">Logger</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3616"></a><tt class="py-lineno">3616</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line">            <tt id="link-3706" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3782', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3783" class="py-name" targets="Function lxml.etree.use_global_python_log()=lxml.etree-module.html#use_global_python_log"><a title="lxml.etree.use_global_python_log" class="py-name" href="#" onclick="return doclink('link-3783', 'use_global_python_log', 'link-3783');">use_global_python_log</a></tt><tt class="py-op">(</tt><tt class="py-name">Logger</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3704"></a><tt class="py-lineno">3704</tt>  <tt class="py-line">            <tt id="link-3784" 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-3706', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3707" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3707', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line"> </tt>
-<a name="L3623"></a><tt class="py-lineno">3623</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-op">[</tt> <tt id="link-3708" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3708', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3709" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3709', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3624"></a><tt class="py-lineno">3624</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3710" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3710', 'message', 'link-3682');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3625"></a><tt class="py-lineno">3625</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3711" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3711', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3712" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3712', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':PARSER:'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3713" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3713', 'message', 'link-3682');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3714" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3714', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3715" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3715', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':ERR_TAG_NAME_MISMATCH:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3716" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3716', 'message', 'link-3682');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3717" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3717', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3718" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3718', 'message', 'link-3682');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3630"></a><tt class="py-lineno">3630</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':1:15:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3719" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3719', 'message', 'link-3682');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L3632"></a><tt class="py-lineno">3632</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_etree-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="L3633"></a><tt class="py-lineno">3633</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="L3634"></a><tt class="py-lineno">3634</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-3720" class="py-name" targets="Class lxml.tests.test_etree.ETreeOnlyTestCase=lxml.tests.test_etree.ETreeOnlyTestCase-class.html"><a title="lxml.tests.test_etree.ETreeOnlyTestCase" class="py-name" href="#" onclick="return doclink('link-3720', 'ETreeOnlyTestCase', 'link-3720');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3635"></a><tt class="py-lineno">3635</tt>  <tt class="py-line">    <tt class="py-name">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-3721" class="py-name" targets="Class lxml.tests.test_etree.ETreeXIncludeTestCase=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ETreeXIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3721', 'ETreeXIncludeTestCase', 'link-3721');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">    <tt class="py-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-3722" class="py-name" targets="Class lxml.tests.test_etree.ElementIncludeTestCase=lxml.tests.test_etree.ElementIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ElementIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3722', 'ElementIncludeTestCase', 'link-3722');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">    <tt class="py-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-3723" class="py-name" targets="Class lxml.tests.test_etree.ETreeC14NTestCase=lxml.tests.test_etree.ETreeC14NTestCase-class.html"><a title="lxml.tests.test_etree.ETreeC14NTestCase" class="py-name" href="#" onclick="return doclink('link-3723', 'ETreeC14NTestCase', 'link-3723');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">    <tt class="py-name">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-3724" class="py-name" targets="Class lxml.tests.test_etree.ETreeWriteTestCase=lxml.tests.test_etree.ETreeWriteTestCase-class.html"><a title="lxml.tests.test_etree.ETreeWriteTestCase" class="py-name" href="#" onclick="return doclink('link-3724', 'ETreeWriteTestCase', 'link-3724');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line">    <tt class="py-name">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-3725" class="py-name" targets="Class lxml.tests.test_etree.ETreeErrorLogTest=lxml.tests.test_etree.ETreeErrorLogTest-class.html"><a title="lxml.tests.test_etree.ETreeErrorLogTest" class="py-name" href="#" onclick="return doclink('link-3725', 'ETreeErrorLogTest', 'link-3725');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3640"></a><tt class="py-lineno">3640</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>
-<a name="L3641"></a><tt class="py-lineno">3641</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3726" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3726', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/tutorial.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">        <tt class="py-comment"># now requires the 'with' statement</tt> </tt>
-<a name="L3644"></a><tt class="py-lineno">3644</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>
-<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-3727" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3727', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/api.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3728" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3728', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/FAQ.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3729" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3729', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/parsing.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3650"></a><tt class="py-lineno">3650</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>
-<a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3730" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3730', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/resolvers.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3652"></a><tt class="py-lineno">3652</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line"> </tt>
-<a name="L3654"></a><tt class="py-lineno">3654</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="L3655"></a><tt class="py-lineno">3655</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="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3784', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L3707"></a><tt class="py-lineno">3707</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3785" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3785', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line"> </tt>
+<a name="L3709"></a><tt class="py-lineno">3709</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3786" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3786', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3787" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3787', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3788" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3788', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3711"></a><tt class="py-lineno">3711</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-op">[</tt> <tt id="link-3789" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3789', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3790" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3790', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3712"></a><tt class="py-lineno">3712</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':PARSER:'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3791" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3791', 'message', 'link-3760');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3713"></a><tt class="py-lineno">3713</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3792" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3792', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3793" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3793', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':ERR_TAG_NAME_MISMATCH:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3794" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3794', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3715"></a><tt class="py-lineno">3715</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3795" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3795', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3796" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3796', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':1:15:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3797" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3797', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3717"></a><tt class="py-lineno">3717</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L3718"></a><tt class="py-lineno">3718</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_etree-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="L3719"></a><tt class="py-lineno">3719</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="L3720"></a><tt class="py-lineno">3720</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-3798" class="py-name" targets="Class lxml.tests.test_etree.ETreeOnlyTestCase=lxml.tests.test_etree.ETreeOnlyTestCase-class.html"><a title="lxml.tests.test_etree.ETreeOnlyTestCase" class="py-name" href="#" onclick="return doclink('link-3798', 'ETreeOnlyTestCase', 'link-3798');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">    <tt class="py-name">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-3799" class="py-name" targets="Class lxml.tests.test_etree.ETreeXIncludeTestCase=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ETreeXIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3799', 'ETreeXIncludeTestCase', 'link-3799');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line">    <tt class="py-name">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-3800" class="py-name" targets="Class lxml.tests.test_etree.ElementIncludeTestCase=lxml.tests.test_etree.ElementIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ElementIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3800', 'ElementIncludeTestCase', 'link-3800');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3723"></a><tt class="py-lineno">3723</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-3801" class="py-name" targets="Class lxml.tests.test_etree.ETreeC14NTestCase=lxml.tests.test_etree.ETreeC14NTestCase-class.html"><a title="lxml.tests.test_etree.ETreeC14NTestCase" class="py-name" href="#" onclick="return doclink('link-3801', 'ETreeC14NTestCase', 'link-3801');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line">    <tt class="py-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-3802" class="py-name" targets="Class lxml.tests.test_etree.ETreeWriteTestCase=lxml.tests.test_etree.ETreeWriteTestCase-class.html"><a title="lxml.tests.test_etree.ETreeWriteTestCase" class="py-name" href="#" onclick="return doclink('link-3802', 'ETreeWriteTestCase', 'link-3802');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3725"></a><tt class="py-lineno">3725</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-3803" class="py-name" targets="Class lxml.tests.test_etree.ETreeErrorLogTest=lxml.tests.test_etree.ETreeErrorLogTest-class.html"><a title="lxml.tests.test_etree.ETreeErrorLogTest" class="py-name" href="#" onclick="return doclink('link-3803', 'ETreeErrorLogTest', 'link-3803');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3726"></a><tt class="py-lineno">3726</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>
+<a name="L3727"></a><tt class="py-lineno">3727</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3804" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3804', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/tutorial.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3729"></a><tt class="py-lineno">3729</tt>  <tt class="py-line">        <tt class="py-comment"># now requires the 'with' statement</tt> </tt>
+<a name="L3730"></a><tt class="py-lineno">3730</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>
+<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-3805" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3805', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/api.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3733"></a><tt class="py-lineno">3733</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3806" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3806', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/FAQ.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3807" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3807', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/parsing.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3737"></a><tt class="py-lineno">3737</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3808" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3808', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/resolvers.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3738"></a><tt class="py-lineno">3738</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line"> </tt>
+<a name="L3740"></a><tt class="py-lineno">3740</tt>  <tt class="py-line"><tt 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="L3741"></a><tt class="py-lineno">3741</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="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -9271,7 +9532,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 41d4f466e6360046267f0a7b6ea183d2837dd3d5..ff257bc4f607a28e3d7520ba9b17c5d4cd5d08c9 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ef50e0054ae8d8053589c8b8ad027fd257911748..5bc8058d3d00cfc7a4a99379dd112cdc70851247 100644 (file)
@@ -402,7 +402,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 47958251c54fbbf3a8a0e64cba24a32184e23588..e402a9b4df3be60a8b73b3c3926eb702dad012e0 100644 (file)
@@ -2358,6 +2358,70 @@ Tests only for etree, not ElementTree
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_attribute_keeps_namespace_prefix_on_merge"></a><span class="summary-sig-name">test_attribute_keeps_namespace_prefix_on_merge</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_attribute_keeps_namespace_prefix_on_merge_with_nons"></a><span class="summary-sig-name">test_attribute_keeps_namespace_prefix_on_merge_with_nons</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_attribute_gets_namespace_prefix_on_merge_with_nons"></a><span class="summary-sig-name">test_attribute_gets_namespace_prefix_on_merge_with_nons</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_attribute_gets_namespace_prefix_on_merge"></a><span class="summary-sig-name">test_attribute_gets_namespace_prefix_on_merge</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr>
@@ -3848,7 +3912,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f18a3be4e58ce38359334a6e1f163a27b9f434ee..3676330aa9bb346ea0c24a16ce67680415edb336 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3f25bbd7f8d144f74a96804440d46c7bb2ede787..5be802be7b891a963f3daac19b0ca1d20cd865ed 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ca4c225f9db5ef06ba5778447e2e82d9a674ac6b..2ec5055ffe1628b3d3c63ad8f28877b9a34f52d2 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ee32cfb53f51aa65e7761e1dcd79c6f6d59a5b25..f7a68191dd8acf1824b60c17aa066f3ac7128d62 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3353d2b2b3134fa634cd5686a674c2bbeafc81b2..a0a54ec8feac7dbb2cd1bd9e42a4ae636ebdba21 100644 (file)
@@ -86,7 +86,7 @@ HTML parser test cases for etree
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name">unicode</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -232,7 +232,7 @@ HTML parser test cases for etree
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6d2f4f2042414a2d5e512cc8384a4ee56cd4e086..856bb2ae04585887a5da76b94fffbfd04d1b9d4e 100644 (file)
@@ -1278,7 +1278,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 60116ee5006ab75510cae05e4174f2dc4e0205b8..33df4708c98c1c02fe9e85b7f23db8de67e7ea8e 100644 (file)
@@ -1004,7 +1004,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8e76dbf44b4334501db831316e10040fd116fee8..60771327365ebb8baa4fd2f8eddb392c7c7d7aeb 100644 (file)
@@ -223,7 +223,7 @@ Web IO test cases that need Python 2.5+ (wsgiref)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d1d023865c251e3331ea92ff311e6a23a85e2ff7..8110481bf4e9701d48724a41cefc8e0f0148bf5b 100644 (file)
@@ -354,7 +354,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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
+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,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.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>
@@ -386,6 +387,7 @@ 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
+lxml.tests.test_elementtree._ETreeTestCaseBase.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
@@ -445,7 +447,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fc87908dfcf946860b5edb3e1f1c7868c4055d56..9e46603d246b4b46a986244f26f203c4a66d249d 100644 (file)
@@ -468,7 +468,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8dddcdac6b927c8495884d13319b69fd9724fc8c..835271e8ee440850f55ac58e1686a11167ad00ed 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bbeb18533171a79a89ecc76671da5cc892ec322f..1ce8513a59de8ca2f179733be43e0189daee99d1 100644 (file)
@@ -552,7 +552,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 572c05ccffaeb521579faebf3cac4982f4e7c66e..bcdf304b83c7ffddf5e2b28785fa98951eff2866 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7044eb69222d5cb10fdaaa90d55304171fbeaa30..1e98ee2112b87a154e5426a9543dcb9c491ae314 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 16024fa1ac381ae2abd278d5d34082392ab7eeb4..ec4bd72265876acd626dc8c905f1bed50b11e432 100644 (file)
@@ -225,7 +225,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8c70ea832a1e738b08443ffa6650dac955c5fe43..5869cd782172842a8596db497e4b494152be2366 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fc1ffec30584b2efdf13a6e40d3625ac5affc071..73078e2bdff53eba77df6c71a7dde16e3a97fc7f 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index faeca85c01d8aa6c7c6b4804815940b8c0bb4872..9978784799bd044a5f5437e30df2acc017df0429 100644 (file)
@@ -238,7 +238,7 @@ IO test cases that apply to both etree and ElementTree
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1161c91242958a36b59564f11fd325e960cef70d..94de60fde89a38a8dec8e286b0d306a42566adb9 100644 (file)
@@ -838,7 +838,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f262738dcba61071eff20d6f863c68b7c9820cc4..90461b5ee6b51800a39c3ffb79cc8054ed8ecd38 100644 (file)
@@ -388,7 +388,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f601fe9f07316f8bc547f190250d30303d906493..5eae3422e84384257469c98dbce6c30f8bb6b3dc 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b7c2c18725c62bcbfda23a9564dfa0f315b34bc8..52640234a442c4ba46c5ffe94e01cb832bed758f 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e9b77263c2f7871ab12fdb8440e61e7c561e1063..166e73f16f2105b2987cf78f05a9f700fc364f17 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to ISO-Schematron parsing and validation
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 94a240ff168f91ac24dea8b5ce9b6797b6b0de13..0b5b9213af3153d2d47ca7ff84cd9bdc30b83203 100644 (file)
@@ -1600,7 +1600,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e724160775bf7b95009300dff5ed31f1072ee230..a0a5e6f8adf939c9512d847d21c8436792bbccaa 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d705b7f188a9afd90b583ebd95de66a93b3f5dee..7dcb4b1519cd3ed0a08cb0a24ff7b39d3dec7abb 100644 (file)
@@ -224,7 +224,7 @@ namespace registry mechanism
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0040752b086a7e2dc543851ad81c151347c11100..e6270f52b266d710d806bfcdaaae42a8c461ed18 100644 (file)
@@ -178,7 +178,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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-22', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-23" 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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-22', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-23', 'XMLParser', 'link-23');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt id="link-24" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-24', 'parser', 'link-21');">parser</a></tt><tt class="py-op">.</tt><tt id="link-25" 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-25', 'set_element_class_lookup', 'link-25');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="lxml.etree.CustomElementClassLookup.lookup
@@ -572,7 +573,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a798c43b87351c7bd7d8870acf93f8c41b0b07ca..c46e15f52a739d8db375c03c8ac1e88e89b11a52 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f866e9ea84c124680951265d79200353bc810513..bed5e6bbe0b150f153006a72bfd82e30f4573909 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c436f76372322fdd16214523b95ce116ae3b6eac..30421458f089ef0ad4a42c7ec06fba608ca37016 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 647b868d066c5c204c7985705583ff97809ad829..f72df870b9bc93a3ce4db35937d6b6e66bd8d592 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6869cfb9c88f7b1de270ea328b6e3af4553c6d34..66f1ead043e3cc24d09d3a79c14a35e96ac62eea 100644 (file)
@@ -203,15 +203,15 @@ Tests specific to the lxml.objectify API
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_objectify-module.html#objectclass2xsitype" class="summary-name">objectclass2xsitype</a> = <code title="{&lt;type 'lxml.objectify.IntElement'&gt;: ('int',
+        <a href="lxml.tests.test_objectify-module.html#objectclass2xsitype" class="summary-name">objectclass2xsitype</a> = <code title="{&lt;type 'lxml.objectify.FloatElement'&gt;: ('float', 'double'),
+ &lt;type 'lxml.objectify.IntElement'&gt;: ('int',
                                       'short',
                                       'byte',
                                       'unsignedShort',
                                       'unsignedByte',
                                       'integer',
                                       'nonPositiveInteger',
-                                      'negativeInteger',
-..."><code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">i</code><code class="variable-ellipsis">...</code></code>
+..."><code class="variable-group">{</code>&lt;type 'lxml.objectify.FloatElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -233,10 +233,10 @@ Tests specific to the lxml.objectify API
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.tests.test_objectify-module.html#objectclass2pytype" class="summary-name">objectclass2pytype</a> = <code title="{&lt;type 'lxml.objectify.IntElement'&gt;: 'int',
- &lt;type 'lxml.objectify.FloatElement'&gt;: 'float',
- &lt;type 'lxml.objectify.StringElement'&gt;: 'str',
- &lt;type 'lxml.objectify.BoolElement'&gt;: 'bool'}"><code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-ellipsis">...</code></code>
+        <a href="lxml.tests.test_objectify-module.html#objectclass2pytype" class="summary-name">objectclass2pytype</a> = <code title="{&lt;type 'lxml.objectify.FloatElement'&gt;: 'float',
+ &lt;type 'lxml.objectify.IntElement'&gt;: 'int',
+ &lt;type 'lxml.objectify.BoolElement'&gt;: 'bool',
+ &lt;type 'lxml.objectify.StringElement'&gt;: 'str'}"><code class="variable-group">{</code>&lt;type 'lxml.objectify.FloatElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">f</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -401,14 +401,14 @@ Tests specific to the lxml.objectify API
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-group">{</code>&lt;type 'lxml.objectify.FloatElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">float</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">double</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">,</code>
+ &lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">,</code>
                                       <code class="variable-quote">'</code><code class="variable-string">short</code><code class="variable-quote">'</code><code class="variable-op">,</code>
                                       <code class="variable-quote">'</code><code class="variable-string">byte</code><code class="variable-quote">'</code><code class="variable-op">,</code>
                                       <code class="variable-quote">'</code><code class="variable-string">unsignedShort</code><code class="variable-quote">'</code><code class="variable-op">,</code>
                                       <code class="variable-quote">'</code><code class="variable-string">unsignedByte</code><code class="variable-quote">'</code><code class="variable-op">,</code>
                                       <code class="variable-quote">'</code><code class="variable-string">integer</code><code class="variable-quote">'</code><code class="variable-op">,</code>
                                       <code class="variable-quote">'</code><code class="variable-string">nonPositiveInteger</code><code class="variable-quote">'</code><code class="variable-op">,</code>
-                                      <code class="variable-quote">'</code><code class="variable-string">negativeInteger</code><code class="variable-quote">'</code><code class="variable-op">,</code>
 <code class="variable-ellipsis">...</code>
 </pre></td></tr></table>
 </dd>
@@ -453,10 +453,10 @@ Tests specific to the lxml.objectify API
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code>&lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- &lt;type 'lxml.objectify.FloatElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">float</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- &lt;type 'lxml.objectify.StringElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">str</code><code class="variable-quote">'</code><code class="variable-op">,</code>
- &lt;type 'lxml.objectify.BoolElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">bool</code><code class="variable-quote">'</code><code class="variable-group">}</code>
+<code class="variable-group">{</code>&lt;type 'lxml.objectify.FloatElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">float</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ &lt;type 'lxml.objectify.IntElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">int</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ &lt;type 'lxml.objectify.BoolElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">bool</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ &lt;type 'lxml.objectify.StringElement'&gt;<code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">str</code><code class="variable-quote">'</code><code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -541,7 +541,7 @@ Tests specific to the lxml.objectify API
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cd5568037f73df5971d275c8f66240add815b1d5..3a80ad9531176c47b93b306c320026038937491d 100644 (file)
@@ -238,7 +238,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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-69', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-70" 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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-69', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-70', 'XMLParser', 'link-70');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</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">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name" targets="Method lxml.etree.CustomElementClassLookup.lookup()=lxml.etree.CustomElementClassLookup-class.html#lookup,Method lxml.etree.PythonElementClassLookup.lookup()=lxml.etree.PythonElementClassLookup-class.html#lookup,Method lxml.html.HtmlElementClassLookup.lookup()=lxml.html.HtmlElementClassLookup-class.html#lookup"><a title="lxml.etree.CustomElementClassLookup.lookup
 lxml.etree.PythonElementClassLookup.lookup
@@ -5604,7 +5605,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 03255a00d280733f7936efc1603db459dc8d5920..b43500a6cb70cff336a46bdc8f983bded4a0dff7 100644 (file)
@@ -3557,7 +3557,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8892e536a52cd1b4167e331521a01bf65a4602fd..e8f7b47d02753438b8be1eb399bf9d0d60957377 100644 (file)
@@ -265,7 +265,7 @@ Tests specific to the Python based class lookup.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a0e752aca8e363151920607544b840e0ad1fa181..e316b45cfd246cd506946f52f60350bce156a78e 100644 (file)
@@ -182,7 +182,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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-24', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-25" 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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-24', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-25', 'XMLParser', 'link-25');">XMLParser</a></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 id="link-26" 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
@@ -861,7 +862,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d33e78996376f6ee61a5605af57c569555f2921c..7ce72f9995384f60c6730770d21ba007f455ec63 100644 (file)
@@ -858,7 +858,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5771aa9d2fe010cdb8472a0b23013302c51f8fd3..aa0ad8aac49b9445e49f4412cc035c85287cec95 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to RelaxNG parsing and validation
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a140d902a57aaeaa530d5442207e5c1354c33633..a2b58f1f18efa3f5b887752ad840e48a9dc5a2c5 100644 (file)
@@ -523,7 +523,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e2ef1a8e7e2a817564eba80cdaa8387aaf3dd9b0..908361171f25e648cf70d4e461ccd913ba49f036 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2bd28eef1842f75f21d53888da7f33e51e78d426..37468c32d1dfda1bb640dd32ff0916b2ff18b9f4 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to SAX I/O
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6589c656dd36a00e175603a98b7d9709c99ca640..94a66ea1b25167792ad0ad8ad8e18ab8e86acb8c 100644 (file)
@@ -647,7 +647,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0ccab4ad807eb3a365dac91b06b81837f1aca52..82028b6ea15b54a5bcb80bd976789cda3ef9f4d9 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7ded139ae827bb18e60c28adc1f6672eb8830847..de2018c52b55905023c62bc4f4c0efd6bbc9a6c5 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to Schematron parsing and validation
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3939acb7d13a98fdece075f7f5429fb23201d760..bd15582ba2a1239a9e154cbe79cb6e348eeedaad 100644 (file)
@@ -324,7 +324,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ac5d98111dddbdfd59856e6d3061b24d09747148..26afbb33e4a804427597368db53f835178347f7d 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a3c675c3ecf10b31c72516d96d64af1414319477..66253a86616bccd0ced791079bcd9ae51c923dea 100644 (file)
@@ -232,7 +232,7 @@ Tests for thread usage in lxml.etree.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4153a627cf72e0b9114cc81020cefd763a15d283..6ff5877afdbf76961ffca9f473a0be2b6b1b9198 100644 (file)
@@ -454,7 +454,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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-126', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-127" 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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-126', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-127', 'XMLParser', 'link-127');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">_</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">                <tt class="py-name">errors</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
@@ -717,6 +718,7 @@ 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.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-218', 'XMLParser', 'link-127');">XMLParser</a></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 id="link-219" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-219', 'parser', 'link-125');">parser</a></tt><tt class="py-op">.</tt><tt id="link-220" 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-220', 'set_element_class_lookup', 'link-220');">set_element_class_lookup</a></tt><tt class="py-op">(</tt><tt class="py-name">MyLookup</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -1068,7 +1070,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e325acc894d9906c5ad9bfc5801c22b29e0610d..c9796513e1f1db1d7af7139eea90a52dfde8f7c0 100644 (file)
@@ -511,7 +511,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 37d2512382aba775314b5b5bce38b5353d9806f6..de9a731626a984e87da06e2041f41d1fa8955a7c 100644 (file)
@@ -290,7 +290,7 @@ the document to support relative Paths when looking up external entities
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e2a8f767f209f4671d854639e1b5033c9571f476..e80fa5e25338c064ea823cf942bf1b2c7799949c 100644 (file)
@@ -290,7 +290,7 @@ the document to support relative Paths when looking up external entities
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index caf8283182dae8fc54412023a85900dc63bba2e4..d05ffd1980c60983a69b8d9c9ce946c561adac1e 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d4e11371d6f01d98574d3eec1d3f5fbe73228719..bc3fd7c407eaa9c9c128323f8ad04f22ab721526 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 06cb0fbd85a09e704d9718dae4056093bf661cc0..a5ad3eaaa4012054adaad75ac1ace03b3f7ea756 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2007963883a0432c6d9f37e5652bc0b98874616e..bfe257c055af0d5cc3e2622dd04387bdd6573167 100644 (file)
@@ -108,7 +108,7 @@ threading._Verbose --+
         <span class="summary-sig-arg">in_queue</span>,
         <span class="summary-sig-arg">in_count</span>,
         <span class="summary-sig-arg">**kwargs</span>)</span><br />
-      x.__init__(...) initializes x; see help(type(x)) for signature</td>
+      This constructor should always be called with keyword arguments. Arguments are:</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.Worker.__init__">source&nbsp;code</a></span>
             
@@ -124,7 +124,8 @@ threading._Verbose --+
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run" class="summary-sig-name">run</a>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td><span class="summary-sig"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#run" class="summary-sig-name">run</a>(<span class="summary-sig-arg">self</span>)</span><br />
+      Method representing the thread's activity.</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_threading-pysrc.html#ThreadPipelineTestCase.Worker.run">source&nbsp;code</a></span>
             
@@ -240,7 +241,19 @@ threading._Verbose --+
     </td>
   </tr></table>
   
-  x.__init__(...) initializes x; see help(type(x)) for signature
+  <p>This constructor should always be called with keyword arguments. Arguments are:</p>
+<p><em>group</em> should be None; reserved for future extension when a ThreadGroup
+class is implemented.</p>
+<p><em>target</em> is the callable object to be invoked by the run()
+method. Defaults to None, meaning nothing is called.</p>
+<p><em>name</em> is the thread name. By default, a unique name is constructed of
+the form &quot;Thread-N&quot; where N is a small decimal number.</p>
+<p><em>args</em> is the argument tuple for the target invocation. Defaults to ().</p>
+<p><em>kwargs</em> is a dictionary of keyword arguments for the target
+invocation. Defaults to {}.</p>
+<p>If a subclass overrides the constructor, it must make sure to invoke
+the base class constructor (Thread.__init__()) before doing anything
+else to the thread.</p>
   <dl class="fields">
     <dt>Overrides:
         object.__init__
@@ -263,10 +276,15 @@ threading._Verbose --+
     </td>
   </tr></table>
   
-  
+  <p>Method representing the thread's activity.</p>
+<p>You may override this method in a subclass. The standard run() method
+invokes the callable object passed to the object's constructor as the
+target argument, if any, with sequential and keyword arguments taken
+from the args and kwargs arguments, respectively.</p>
   <dl class="fields">
     <dt>Overrides:
         threading.Thread.run
+        <dd><em class="note">(inherited documentation)</em></dd>
     </dt>
   </dl>
 </td></tr></table>
@@ -303,7 +321,7 @@ threading._Verbose --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index af433711dbd4bd1f3b13c505c425a8bb1370b33b..6fe30566bd12d98cee52b7e22c71d308109e43d0 100644 (file)
@@ -531,7 +531,7 @@ for XML.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2746fde6263c8ab6aee5210c80ac017b3edaba00..97b3203526f799621c591869b4f2e9e25702dea3 100644 (file)
@@ -84,7 +84,7 @@
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name">unicode</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </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 Sun Apr 28 21:00:10 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9a0fe4146b2dbe2c89418ac45f081c16277dbeec..6497d639b0239b8eaccdff560a145e85d89e941e 100644 (file)
@@ -416,7 +416,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e37f1dadeafa27bbc7c09f94c01b12c4f56f91bd..214d7b9a5b4a56fb8db73db59898495c81439255 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c3691e455022ef6664c0d9c84a9f20081c9a3ebc..9de74a7a7d7527df4375dc2e208fe53efa8dc56a 100644 (file)
@@ -230,7 +230,7 @@ Test cases related to XML Schema parsing and validation
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 01a6cb4d38be07144cb413cab4bb4c178c930437..385090bf07651432fd88e5ba9011670e2b17ad7e 100644 (file)
@@ -283,7 +283,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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-49', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-50" 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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-49', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-50', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">schema</tt><tt class="py-op">=</tt><tt class="py-name">schema</tt><tt class="py-op">)</tt> </tt>
 <a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"> </tt>
 <a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-name">tree_valid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="lxml.etree._ElementTree.parse
@@ -349,6 +350,7 @@ 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-65', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-66', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">schema</tt><tt class="py-op">=</tt><tt class="py-name">schema</tt><tt class="py-op">,</tt> <tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
 <a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">tree_valid</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._ElementTree.parse
@@ -411,6 +413,7 @@ 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-84', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-85', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">schema</tt><tt class="py-op">=</tt><tt class="py-name">schema</tt><tt class="py-op">)</tt> </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-name">tree_valid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.etree._ElementTree.parse
@@ -473,6 +476,7 @@ 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-103', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-104', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">schema</tt><tt class="py-op">=</tt><tt class="py-name">schema</tt><tt class="py-op">,</tt> <tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
 <a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"> </tt>
 <a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-name">tree_valid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="lxml.etree._ElementTree.parse
@@ -521,6 +525,7 @@ 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-119', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-120', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">schema</tt><tt class="py-op">=</tt><tt class="py-name">schema</tt><tt class="py-op">)</tt> </tt>
 <a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"> </tt>
 <a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-name">tree_valid</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="lxml.etree._ElementTree.parse
@@ -804,6 +809,7 @@ 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-181', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-182" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-182', 'XMLParser', 'link-50');">XMLParser</a></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 id="link-183" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-183', 'parser', 'link-48');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-184" 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
@@ -890,6 +896,7 @@ 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-211', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-212', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">        <tt id="link-213" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-213', 'parser', 'link-48');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-214" class="py-name"><a title="lxml.html.CheckboxValues.add
@@ -949,6 +956,7 @@ 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-229', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-230" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-230', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</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">new_parser</tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-231', 'add', 'link-184');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_nested</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ext_schema_2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
@@ -978,6 +986,7 @@ 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-239', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-240', 'XMLParser', 'link-50');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L375"></a><tt class="py-lineno">375</tt>  <tt class="py-line">        <tt id="link-241" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-241', 'parser', 'link-48');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="lxml.html.CheckboxValues.add
@@ -1049,7 +1058,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a39feb78e5adef710351a877b517dcc077edab75..382a78e2e4049b77189a85deb7f5117e107e5ae5 100644 (file)
@@ -529,7 +529,7 @@ BytesIO(&quot;&quot;&quot;\
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4cbd3cf623eac4ee1b267de081bf49b974f20f12..92cfdbb9bf24a5a4af60308676f7ac9ed71a0c54 100644 (file)
@@ -284,7 +284,7 @@ opaque context object.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7ecaa7e22117f301f4a19f440152bbed2fa4ebaf..56ca4ce29344b93e56a43d2334da222c90af3082 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d186fe265be2d0699781ce62d7c0a35f5c46c4b7..0fc4c890028bf36ccaac4c3aebd6d9eafd8feb82 100644 (file)
@@ -424,7 +424,7 @@ tTest, (None, 'floatTest'): floatTest, (None, 'booleanTest'): booleanT\
 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>&lt;function argsTest1 at 0x48b<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>&lt;function argsTest1 at 0x351<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -552,7 +552,7 @@ Test2,}
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 38b356fdf227fd7df899d71b78c1a860a925d897..4bbac7dd6a875755e3c9004948add6d0b5fd5551 100644 (file)
@@ -1912,7 +1912,7 @@ 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 Sun Apr 28 21:00:12 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:58 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 05d2b5b74750cb60a71d30d6858326faa4ad3302..7ccf185e9136b4b95a5f8e693c9f3384c968909b 100644 (file)
@@ -358,7 +358,7 @@ Tests for the ETXPath class
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f26ba15bdf1c56399ee30be6f4c052e1e6148498..ac410f20bc57fae73af6215e2d136f0019e0749e 100644 (file)
@@ -406,7 +406,7 @@ Tests for the XPath class
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f19a833f08c8c53e829ca05dd7ead86d4252228..734a09ff233b49c1bb21c5e2646f99ed1938525d 100644 (file)
@@ -408,7 +408,7 @@ Tests for the EXSLT support in XPath (requires libxslt 1.1.25+)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3863c9791527831e8a3c15600807ae0e751ef696..c5038f77fe6164c95e4b955b392f1909aa8216d2 100644 (file)
@@ -1030,7 +1030,7 @@ XPath tests etree
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b1d023ac55a040e79d9181508cb17b2ed6bdf6ac..5471fd9c3cb9ae5dd13db6aeaf425beff21cb6a7 100644 (file)
@@ -86,7 +86,7 @@ Test cases related to XSLT processing
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name">unicode</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -94,7 +94,7 @@ Test cases related to XSLT processing
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="str-class.html" class="summary-name">basestring</a><br />
-      str(object) -&gt; string
+      str(object='') -&gt; string
     </td>
   </tr>
 <tr>
@@ -279,7 +279,7 @@ Test cases related to XSLT processing
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e841f166bb61201f1c0f6190c2caf9a44d351d6..5596545f8a81bb72d3ac8fb87a1d5bf0ed69794b 100644 (file)
@@ -1547,7 +1547,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 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-417', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-418" 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
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-417', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-418" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-418', 'XMLParser', 'link-418');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">        <tt id="link-419" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-419', 'parser', 'link-416');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-420" 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
@@ -1687,6 +1688,7 @@ 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-455', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-456" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-456', 'XMLParser', 'link-418');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">        <tt id="link-457" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-457', 'parser', 'link-416');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-458" class="py-name"><a title="lxml.html.CheckboxValues.add
@@ -3382,8 +3384,8 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-954', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
 <a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">                          <tt id="link-955" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-955', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;T&gt;Y&lt;/T&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1500"></a><tt class="py-lineno">1500</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1501"></a><tt class="py-lineno">1501</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-956" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-def"><a name="L1500"></a><tt class="py-lineno">1500</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-expanded"><a name="L1501"></a><tt class="py-lineno">1501</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-956" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3404,409 +3406,510 @@ lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick
 <a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
 <a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
 <a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
 <a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
 <a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
 <a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"> </tt>
 <a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</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-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L1516"></a><tt class="py-lineno">1516</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">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-959', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line"> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line"> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-960" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-960', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-961" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-961', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-962" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-962', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">                          <tt id="link-963" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-963', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1525"></a><tt class="py-lineno">1525</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1526"></a><tt class="py-lineno">1526</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-964" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-959', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">                                                       <tt class="py-name">elements_only</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="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">                        <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-960" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-960', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-961', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line"> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-962" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-962', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-963" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-963', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-964', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">                          <tt id="link-965" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-965', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-def"><a name="L1528"></a><tt class="py-lineno">1528</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-expanded"><a name="L1529"></a><tt class="py-lineno">1529</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-966" 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-964', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt id="link-965" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-965', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-966', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt id="link-967" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-967', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-968" 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-966', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line"> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-967" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-967', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line"> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-968" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-968', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-969" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-969', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-970" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-968', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;xsl:text&gt;   &lt;/xsl:text&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</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">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-969" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-969', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">                                                       <tt class="py-name">remove_blank_text</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="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-970" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-970', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">                            <tt class="py-keyword">assert</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-971', 'strip', 'link-221');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-972" class="py-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-970', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-971', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">                          <tt id="link-972" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-972', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1551"></a><tt class="py-lineno">1551</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1552"></a><tt class="py-lineno">1552</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-973" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-972', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-973" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-973', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-974" 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-974', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-975', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-976" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-976', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-977" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-977', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-978" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-978', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">                          <tt id="link-979" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-979', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1562"></a><tt class="py-lineno">1562</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1563"></a><tt class="py-lineno">1563</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-980" 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-973', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt id="link-974" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-974', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-980', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt id="link-981" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-981', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-982" 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-975', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-982', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
 <a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
 <a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"> </tt>
 <a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-976" class="py-name"><a title="lxml.etree
+<a name="L1578"></a><tt class="py-lineno">1578</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">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-983" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-983', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line"> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-984', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-985" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-985', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-986', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">                          <tt id="link-987" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-987', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1587"></a><tt class="py-lineno">1587</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1588"></a><tt class="py-lineno">1588</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-988" 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-988', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt id="link-989" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-989', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-990" 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-990', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</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">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-991" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-991', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-992', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-993" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-993', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-994" class="py-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-994', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-995', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                          <tt id="link-996" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-996', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</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="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1613"></a><tt class="py-lineno">1613</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1614"></a><tt class="py-lineno">1614</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-997" 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-997', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">        <tt id="link-998" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-998', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-999" 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-999', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
+<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1000" class="py-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-976', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1000', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-977', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-978" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-978', 'process_children', 'link-978');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-979" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-979', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line"> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-980', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-981" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-981', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-982', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">                          <tt id="link-983" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-983', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1588"></a><tt class="py-lineno">1588</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1589"></a><tt class="py-lineno">1589</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-984" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1001', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1002', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1003" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1003', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1004', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1005" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1005', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1006', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">                          <tt id="link-1007" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1007', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1651"></a><tt class="py-lineno">1651</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-1008" 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-984', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">        <tt id="link-985" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-985', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1008', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">        <tt id="link-1009" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1009', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name"><a title="lxml.etree._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-986', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-987', 'process_children', 'link-978');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line"> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-988" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-988', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-989" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-989', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</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">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-990', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                          <tt id="link-991" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-991', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1612"></a><tt class="py-lineno">1612</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1613"></a><tt class="py-lineno">1613</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-992" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1010', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1011" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1011', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1012" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1012', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1013" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1013', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1014" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1014', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">                          <tt id="link-1015" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1015', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1674"></a><tt class="py-lineno">1674</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1675"></a><tt class="py-lineno">1675</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-1016" 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-992', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt id="link-993" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-993', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-994" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1016', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">        <tt id="link-1017" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1017', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1018" 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-994', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-995', 'process_children', 'link-978');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-996', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-997" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-997', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1634"></a><tt class="py-lineno">1634</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1635"></a><tt class="py-lineno">1635</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-998" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1018', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line"> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1019" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1019', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line"> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1020" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1020', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1021" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1021', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1696"></a><tt class="py-lineno">1696</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" 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><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1697"></a><tt class="py-lineno">1697</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-1022" 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-998', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">        <tt id="link-999" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-999', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1000" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1022', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt id="link-1023" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1023', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1024" 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-1000', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line"> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1001" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1024', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1025" class="py-name"><a title="lxml.etree
 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-1001', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1025', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1002', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1003" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1003', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1004', 'process_children', 'link-978');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1005" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1005', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line"> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1006', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1007" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1007', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1008" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1008', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">                          <tt id="link-1009" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1009', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1662"></a><tt class="py-lineno">1662</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1663"></a><tt class="py-lineno">1663</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-1010" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1026', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1027" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1027', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1028', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1029" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1029', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1030', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1031" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1031', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1032', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">                          <tt id="link-1033" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1033', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1724"></a><tt class="py-lineno">1724</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1725"></a><tt class="py-lineno">1725</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-1034" 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-1010', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt id="link-1011" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1011', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1012" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1034', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt id="link-1035" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1035', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1036" 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-1012', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line"> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"> </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</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">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1013', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1014" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1014', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1686"></a><tt class="py-lineno">1686</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</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="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line"> </tt>
-<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">    <tt id="link-1015" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
-lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1015', 'pytestmark', 'link-1015');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1016" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1016', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1691"></a><tt class="py-lineno">1691</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1692"></a><tt class="py-lineno">1692</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-1017" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1036', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"> </tt>
+<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1037" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1037', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1038" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1038', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line"> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1748"></a><tt class="py-lineno">1748</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</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="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">    <tt id="link-1039" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
+lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1039', 'pytestmark', 'link-1039');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1040" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1040', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1753"></a><tt class="py-lineno">1753</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1754"></a><tt class="py-lineno">1754</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-1041" 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-1017', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt id="link-1018" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1018', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1019" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1041', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt id="link-1042" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1042', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1043" 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-1019', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1020" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1043', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line"> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1044" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1020', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1021', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1022" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1022', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1023" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1023', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1710"></a><tt class="py-lineno">1710</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1711"></a><tt class="py-lineno">1711</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-1024" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1044', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1045', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1046" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1046', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1047" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1047', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1772"></a><tt class="py-lineno">1772</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1773"></a><tt class="py-lineno">1773</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-1048" 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-1024', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">        <tt id="link-1025" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1025', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1048', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt id="link-1049" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1049', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1050" 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-1026', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line"> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1027" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1050', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line"> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1051" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1027', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1028', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1029" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1029', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1030" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1030', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1729"></a><tt class="py-lineno">1729</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1730"></a><tt class="py-lineno">1730</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-1031" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1051', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1052', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1053" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1053', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1054" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1054', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1791"></a><tt class="py-lineno">1791</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1792"></a><tt class="py-lineno">1792</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-1055" 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-1031', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt id="link-1032" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1032', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1055', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt id="link-1056" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1056', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1057" 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-1033', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1034" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1057', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line"> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1058" class="py-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-1034', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1035', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1036" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1036', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1037" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1037', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L1749"></a><tt class="py-lineno">1749</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_xslt-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="L1750"></a><tt class="py-lineno">1750</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="L1751"></a><tt class="py-lineno">1751</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-1038" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1038', 'ETreeXSLTTestCase', 'link-1038');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">    <tt class="py-name">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-1039" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1039', 'ETreeEXSLTTestCase', 'link-1039');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">    <tt class="py-name">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-1040" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1040', 'ETreeXSLTExtFuncTestCase', 'link-1040');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</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-1041" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1041', 'ETreeXSLTExtElementTestCase', 'link-1041');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1042" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1042', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">        <tt class="py-name">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-1043" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1043', 'Py3XSLTTestCase', 'link-1043');">Py3XSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1044" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1044', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1759"></a><tt class="py-lineno">1759</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>
-<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1045" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1045', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line"><tt class="py-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="L1764"></a><tt class="py-lineno">1764</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="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1058', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1059" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1059', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1060" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1060', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1061" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1061', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"> </tt>
+<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L1811"></a><tt class="py-lineno">1811</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_xslt-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="L1812"></a><tt class="py-lineno">1812</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="L1813"></a><tt class="py-lineno">1813</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-1062" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1062', 'ETreeXSLTTestCase', 'link-1062');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</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-1063" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1063', 'ETreeEXSLTTestCase', 'link-1063');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</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-1064" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1064', 'ETreeXSLTExtFuncTestCase', 'link-1064');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">    <tt class="py-name">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-1065" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1065', 'ETreeXSLTExtElementTestCase', 'link-1065');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1066" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1066', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</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-1067" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1067', 'Py3XSLTTestCase', 'link-1067');">Py3XSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1068" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1068', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</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>
+<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1069" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1069', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line"> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</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="L1826"></a><tt class="py-lineno">1826</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="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -3844,7 +3947,7 @@ 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 Sun Apr 28 21:00:14 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bb8aa73f84ede72530660dd0694a4f8fcc7d69a0..e5cf41bee5d543a7cd73be35bb80b38c292aff90 100644 (file)
@@ -502,7 +502,7 @@ EXSLT tests
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e3675de6a267c6d3b1a4da865eb9ec55830fd094..0fb74f18d76935c85d50e345cb87b8f390fe4677 100644 (file)
@@ -212,6 +212,38 @@ Tests for extension elements in XSLT.
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_extension_element_apply_templates_elements_only"></a><span class="summary-sig-name">test_extension_element_apply_templates_elements_only</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_xslt-pysrc.html#ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_extension_element_apply_templates_remove_blank_text"></a><span class="summary-sig-name">test_extension_element_apply_templates_remove_blank_text</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_xslt-pysrc.html#ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr>
@@ -534,7 +566,7 @@ Tests for extension elements in XSLT.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 832773890a5d25e480f62a2121f628c4a2069cab..5ccc4c65e4076f032482faa5d19a2b50cb042d7d 100644 (file)
@@ -374,7 +374,7 @@ Tests for XPath extension functions in XSLT.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 96e49314abdec2cebbea09a46df1b4b37c00d6a7..67b3e023fb3bcdae02e67f80b956268e382a301b 100644 (file)
@@ -1126,7 +1126,7 @@ XSLT tests etree
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9c9a65731d6e9948b7b7435f2a492444e142ce4a..6a5d64f583eb29e150d5a2ae725b67ceecd93018 100644 (file)
@@ -420,7 +420,7 @@ s': {}}&gt;
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 72adf15fcbed2e93041a567b920e589046bb6492..bcfbb8f219b45dc70eefeffbe5d8b15f9c710e8d 100644 (file)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a2336f3c23a488fcce7e195ad788e2ff9714bf5b..80077555b59e0e5a7a633c7fc2f6bdd180086573 100644 (file)
@@ -112,7 +112,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:37:00 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 32270341ded8b444d4d330459d62ffa6c6743d1d..a03d7ab9529bed8c4b5b8ba775cc86da8d1dc8dd 100644 (file)
@@ -363,7 +363,7 @@ contains some hooks for decoding encoded and multipart messages.
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4e33bf1feeaab349c69f18d4d8fbc071498f70db..9df364d244177e785f338de54d77ab0d93f388cd 100644 (file)
@@ -155,7 +155,7 @@ namespace registry mechanism</em>    </li>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:55 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fbb62b6ac65e398ad16d96a7b554842ddccd12bb..dd14cf2b4d87d97574dd79e814ebc674531d7fea 100644 (file)
@@ -7,7 +7,7 @@
 <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.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 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", "cssselect.parser.SelectorSyntaxError-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", "cssselect.xpath.ExpressionError-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", "cssselect.parser.SelectorError-c", "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", "cssselect.xpath.XPathExpr-c", "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);
index f78d9cf2a1332174694a4df543e2cdea5bc609bd..508e641145d8ada6a4e1c7679b7c9c4b282b710d 100644 (file)
@@ -76,7 +76,7 @@ basestring --+
 </dd></dl>
 
 <hr />
-<p>str(object) -&gt; string</p>
+<p>str(object='') -&gt; string</p>
 <p>Return a nice string representation of the object.
 If the argument is a string, the return value is the same object.</p>
 
@@ -1628,7 +1628,7 @@ arguments start and end are interpreted as in slice notation.</p>
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 845a4e85341290e753eac5d63a4ff40b81fcf2d4..e32cb1e9e8c4093d42b99f855ef0afee8284101a 100644 (file)
 <hr />
   <h2 class="toc">All Classes</h2>
     <a target="mainFrame" href="abc.ABCMeta-class.html"
-     >abc.ABCMeta</a><br />    <a target="mainFrame" href="exceptions.AssertionError-class.html"
+     >abc.ABCMeta</a><br />    <a target="mainFrame" href="cssselect.parser.SelectorError-class.html"
+     >cssselect.parser.SelectorError</a><br />    <a target="mainFrame" href="cssselect.parser.SelectorSyntaxError-class.html"
+     >cssselect.parser.SelectorSyntaxError</a><br />    <a target="mainFrame" href="cssselect.xpath.ExpressionError-class.html"
+     >cssselect.xpath.ExpressionError</a><br />    <a target="mainFrame" href="cssselect.xpath.XPathExpr-class.html"
+     >cssselect.xpath.XPathExpr</a><br />    <a target="mainFrame" href="exceptions.AssertionError-class.html"
      >exceptions.AssertionError</a><br />    <a target="mainFrame" href="lxml.ElementInclude.FatalIncludeError-class.html"
      >lxml.ElementInclude.FatalIncludeError</a><br />    <a target="mainFrame" href="lxml.builder.ElementMaker-class.html"
      >lxml.builder.ElementMaker</a><br />    <a target="mainFrame" href="lxml.cssselect.CSSSelector-class.html"
      >lxml.ElementInclude.__package__</a><br />    <a target="mainFrame" href="lxml-module.html#__package__"
      >lxml.__package__</a><br />    <a target="mainFrame" href="lxml.builder-module.html#E"
      >lxml.builder.E</a><br />    <a target="mainFrame" href="lxml.builder-module.html#__package__"
-     >lxml.builder.__package__</a><br />    <a target="mainFrame" href="lxml.cssselect-module.html#ExpressionError"
-     >lxml.cssselect.ExpressionError</a><br />    <a target="mainFrame" href="lxml.cssselect-module.html#SelectorError"
-     >lxml.cssselect.SelectorError</a><br />    <a target="mainFrame" href="lxml.cssselect-module.html#SelectorSyntaxError"
-     >lxml.cssselect.SelectorSyntaxError</a><br />  <div class="private">
-    <a target="mainFrame" href="lxml.cssselect-module.html#external_cssselect"
-     >lxml.cssselect.external_cssselect</a><br />  </div>
+     >lxml.builder.__package__</a><br />  <div class="private">
+    <a target="mainFrame" href="lxml.cssselect-module.html#__package__"
+     >lxml.cssselect.__package__</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.cssselect-module.html#ns"
      >lxml.cssselect.ns</a><br />  </div>
      >lxml.tests.test_classlookup.this_dir</a><br />    <a target="mainFrame" href="lxml.tests.test_classlookup-module.html#xml_str"
      >lxml.tests.test_classlookup.xml_str</a><br />    <a target="mainFrame" href="lxml.tests.test_css-module.html#HTML"
      >lxml.tests.test_css.HTML</a><br />    <a target="mainFrame" href="lxml.tests.test_css-module.html#__package__"
-     >lxml.tests.test_css.__package__</a><br />    <a target="mainFrame" href="lxml.tests.test_css-module.html#cssselect"
-     >lxml.tests.test_css.cssselect</a><br />    <a target="mainFrame" href="lxml.tests.test_dtd-module.html#__package__"
+     >lxml.tests.test_css.__package__</a><br />    <a target="mainFrame" href="lxml.tests.test_dtd-module.html#__package__"
      >lxml.tests.test_dtd.__package__</a><br />    <a target="mainFrame" href="lxml.tests.test_dtd-module.html#this_dir"
      >lxml.tests.test_dtd.this_dir</a><br />    <a target="mainFrame" href="lxml.tests.test_elementtree-module.html#__package__"
      >lxml.tests.test_elementtree.__package__</a><br />    <a target="mainFrame" href="lxml.tests.test_elementtree-module.html#cElementTree"
index 1cd7e5381a0f1e6446ea2493d1503290467a9cb5..bbfaec1faf3e418b032ffc7976759f5d9675e664 100644 (file)
 <hr />
   <h2 class="toc">Classes</h2>
     <a target="mainFrame" href="lxml.cssselect.CSSSelector-class.html"
-     >CSSSelector</a><br />  <div class="private">
+     >CSSSelector</a><br />    <a target="mainFrame" href="cssselect.xpath.ExpressionError-class.html"
+     >ExpressionError</a><br />  <div class="private">
     <a target="mainFrame" href="lxml.cssselect.LxmlHTMLTranslator-class.html"
      >LxmlHTMLTranslator</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.cssselect.LxmlTranslator-class.html"
      >LxmlTranslator</a><br />  </div>
-  <h2 class="toc">Functions</h2>
+    <a target="mainFrame" href="cssselect.parser.SelectorError-class.html"
+     >SelectorError</a><br />    <a target="mainFrame" href="cssselect.parser.SelectorSyntaxError-class.html"
+     >SelectorSyntaxError</a><br />  <h2 class="toc">Functions</h2>
   <div class="private">
     <a target="mainFrame" href="lxml.cssselect-module.html#_make_lower_case"
      >_make_lower_case</a><br />  </div>
   <h2 class="toc">Variables</h2>
-    <a target="mainFrame" href="lxml.cssselect-module.html#ExpressionError"
-     >ExpressionError</a><br />    <a target="mainFrame" href="lxml.cssselect-module.html#SelectorError"
-     >SelectorError</a><br />    <a target="mainFrame" href="lxml.cssselect-module.html#SelectorSyntaxError"
-     >SelectorSyntaxError</a><br />  <div class="private">
-    <a target="mainFrame" href="lxml.cssselect-module.html#external_cssselect"
-     >external_cssselect</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="lxml.cssselect-module.html#__package__"
+     >__package__</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.cssselect-module.html#ns"
      >ns</a><br />  </div>
index 7227c9e94c8b87b3113c767d3aef64af7e5ab4df..05606f2fa2b771b1b466abf128076d4a769277cb 100644 (file)
@@ -19,8 +19,7 @@
      >test_suite</a><br />  <h2 class="toc">Variables</h2>
     <a target="mainFrame" href="lxml.tests.test_css-module.html#HTML"
      >HTML</a><br />    <a target="mainFrame" href="lxml.tests.test_css-module.html#__package__"
-     >__package__</a><br />    <a target="mainFrame" href="lxml.tests.test_css-module.html#cssselect"
-     >cssselect</a><br /><hr />
+     >__package__</a><br /><hr />
 <span class="options">[<a href="javascript:void(0);" class="privatelink"
     onclick="toggle_private();">hide&nbsp;private</a>]</span>
 
index 967f58f0dbbe3a96f989f20f5ff44bcf338679ae..2db498ff618a341344def6f4401639ae0f839264 100644 (file)
@@ -657,9 +657,9 @@ hash(x)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': &lt;function _serialize_html at 0x3d68410&gt;,
- 'text': &lt;function _serialize_text at 0x3d68488&gt;,
- 'xml': &lt;function _serialize_xml at 0x3d68398&gt;}"><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>&lt;function _serialize_html at 0x3d68410&gt;<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': &lt;function _serialize_html at 0x2a167d0&gt;,
+ 'text': &lt;function _serialize_text at 0x2a16848&gt;,
+ 'xml': &lt;function _serialize_xml at 0x2a16758&gt;}"><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>&lt;function _serialize_html at 0x2a167d0&gt;<code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 </table>
@@ -743,9 +743,9 @@ hash(x)
   <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>&lt;function _serialize_html at 0x3d68410&gt;<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>&lt;function _serialize_text at 0x3d68488&gt;<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>&lt;function _serialize_xml at 0x3d68398&gt;<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>&lt;function _serialize_html at 0x2a167d0&gt;<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>&lt;function _serialize_text at 0x2a16848&gt;<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>&lt;function _serialize_xml at 0x2a16758&gt;<code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -783,7 +783,7 @@ hash(x)
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:56 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e9817cf3a78f0759693c2663c2fafcdcb0e1dab9..aac83a8f65e0d70aae500de080f989b919a7a213 100644 (file)
@@ -1032,7 +1032,8 @@ lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick
 <a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-121" 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-121', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
 <a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">                <tt id="link-122" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-122', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-123" 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
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-122', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-123" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-123', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-124" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-124', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-125" class="py-name" targets="Class lxml.etree.TreeBuilder=lxml.etree.TreeBuilder-class.html,Class xml.etree.ElementTree.TreeBuilder=xml.etree.ElementTree.TreeBuilder-class.html"><a title="lxml.etree.TreeBuilder
 xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-125', 'TreeBuilder', 'link-125');">TreeBuilder</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">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
@@ -1086,8 +1087,8 @@ lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-138', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"> </tt>
 <a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">    <tt class="py-comment"># Finds the first toplevel element with given tag.</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">    <tt class="py-comment"># Same as getroot().find(path).</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">    <tt class="py-comment"># Same as getroot().find(path), starting at the root of the</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">    <tt class="py-comment"># tree.</tt> </tt>
 <a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
 <a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">    <tt class="py-comment"># @param path What element to look for.</tt> </tt>
 <a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam namespaces Optional namespace prefix map.</tt> </tt>
@@ -1109,210 +1110,209 @@ lxml.etree._ElementTree.find
 lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-143', 'find', 'link-3');">find</a></tt><tt class="py-op">(</tt><tt id="link-144" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-144', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">)</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 class="py-comment">##</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">    <tt class="py-comment"># Finds the element text for the first toplevel element with given</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">    <tt class="py-comment"># tag.  Same as getroot().findtext(path).</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">    <tt class="py-comment"># @param path What toplevel element to look for.</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">    <tt class="py-comment"># @param default What to return if the element was not found.</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam namespaces Optional namespace prefix map.</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">    <tt class="py-comment"># @return The text content of the first matching element, or the</tt> </tt>
-<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">    <tt class="py-comment">#     default value no element was found.  Note that if the element</tt> </tt>
-<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">    <tt class="py-comment">#     is found, but has no text content, this method returns an</tt> </tt>
-<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">    <tt class="py-comment">#     empty string.</tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn string</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line"> </tt>
-<a name="ElementTree.findtext"></a><div id="ElementTree.findtext-def"><a name="L719"></a><tt class="py-lineno"> 719</tt> <a class="py-toggle" href="#" id="ElementTree.findtext-toggle" onclick="return toggle('ElementTree.findtext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#findtext">findtext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">default</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</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="ElementTree.findtext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.findtext-expanded"><a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-145" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-145', 'path', 'link-49');">path</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"/"</tt><tt class="py-op">:</tt> </tt>
-<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">            <tt id="link-146" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-146', 'path', 'link-49');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt id="link-147" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-147', 'path', 'link-49');">path</a></tt> </tt>
-<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">                <tt class="py-string">"This search is broken in 1.3 and earlier, and will be "</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">                <tt class="py-string">"fixed in a future version.  If you rely on the current "</tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">                <tt class="py-string">"behaviour, change it to %r"</tt> <tt class="py-op">%</tt> <tt id="link-148" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-148', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">                <tt class="py-name">FutureWarning</tt><tt class="py-op">,</tt> <tt class="py-name">stacklevel</tt><tt class="py-op">=</tt><tt class="py-number">2</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">                <tt class="py-op">)</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="lxml.etree._Element.findtext
+<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">    <tt class="py-comment"># Same as getroot().findtext(path), starting at the root of the tree.</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">    <tt class="py-comment"># @param path What element to look for.</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">    <tt class="py-comment"># @param default What to return if the element was not found.</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam namespaces Optional namespace prefix map.</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">    <tt class="py-comment"># @return The text content of the first matching element, or the</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">    <tt class="py-comment">#     default value no element was found.  Note that if the element</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">    <tt class="py-comment">#     is found, but has no text content, this method returns an</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">    <tt class="py-comment">#     empty string.</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn string</tt> </tt>
+<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line"> </tt>
+<a name="ElementTree.findtext"></a><div id="ElementTree.findtext-def"><a name="L718"></a><tt class="py-lineno"> 718</tt> <a class="py-toggle" href="#" id="ElementTree.findtext-toggle" onclick="return toggle('ElementTree.findtext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#findtext">findtext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">default</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</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="ElementTree.findtext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.findtext-expanded"><a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-145" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-145', 'path', 'link-49');">path</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"/"</tt><tt class="py-op">:</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">            <tt id="link-146" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-146', 'path', 'link-49');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt id="link-147" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-147', 'path', 'link-49');">path</a></tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">                <tt class="py-string">"This search is broken in 1.3 and earlier, and will be "</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">                <tt class="py-string">"fixed in a future version.  If you rely on the current "</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">                <tt class="py-string">"behaviour, change it to %r"</tt> <tt class="py-op">%</tt> <tt id="link-148" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-148', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">                <tt class="py-name">FutureWarning</tt><tt class="py-op">,</tt> <tt class="py-name">stacklevel</tt><tt class="py-op">=</tt><tt class="py-number">2</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">                <tt class="py-op">)</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="lxml.etree._Element.findtext
 lxml.etree._ElementTree.findtext" class="py-name" href="#" onclick="return doclink('link-149', 'findtext', 'link-50');">findtext</a></tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-150', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">default</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">    <tt class="py-comment"># Finds all toplevel elements with the given tag.</tt> </tt>
-<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">    <tt class="py-comment"># Same as getroot().findall(path).</tt> </tt>
-<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">    <tt class="py-comment"># @param path What element to look for.</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam namespaces Optional namespace prefix map.</tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">    <tt class="py-comment"># @return A list or iterator containing all matching elements,</tt> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">    <tt class="py-comment">#    in document order.</tt> </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn list of Element instances</tt> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line"> </tt>
-<a name="ElementTree.findall"></a><div id="ElementTree.findall-def"><a name="L741"></a><tt class="py-lineno"> 741</tt> <a class="py-toggle" href="#" id="ElementTree.findall-toggle" onclick="return toggle('ElementTree.findall');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#findall">findall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</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="ElementTree.findall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.findall-expanded"><a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-151" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-151', 'path', 'link-49');">path</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"/"</tt><tt class="py-op">:</tt> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">            <tt id="link-152" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-152', 'path', 'link-49');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt id="link-153" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-153', 'path', 'link-49');">path</a></tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">                <tt class="py-string">"This search is broken in 1.3 and earlier, and will be "</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">                <tt class="py-string">"fixed in a future version.  If you rely on the current "</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line">                <tt class="py-string">"behaviour, change it to %r"</tt> <tt class="py-op">%</tt> <tt id="link-154" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-154', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">                <tt class="py-name">FutureWarning</tt><tt class="py-op">,</tt> <tt class="py-name">stacklevel</tt><tt class="py-op">=</tt><tt class="py-number">2</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">                <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">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="lxml.etree._Element.findall
+</div><a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line"> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">    <tt class="py-comment"># Same as getroot().findall(path), starting at the root of the tree.</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">    <tt class="py-comment"># @param path What element to look for.</tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam namespaces Optional namespace prefix map.</tt> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">    <tt class="py-comment"># @return A list or iterator containing all matching elements,</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">    <tt class="py-comment">#    in document order.</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn list of Element instances</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line"> </tt>
+<a name="ElementTree.findall"></a><div id="ElementTree.findall-def"><a name="L739"></a><tt class="py-lineno"> 739</tt> <a class="py-toggle" href="#" id="ElementTree.findall-toggle" onclick="return toggle('ElementTree.findall');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#findall">findall</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</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="ElementTree.findall-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.findall-expanded"><a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-151" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-151', 'path', 'link-49');">path</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"/"</tt><tt class="py-op">:</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">            <tt id="link-152" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-152', 'path', 'link-49');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt id="link-153" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-153', 'path', 'link-49');">path</a></tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">                <tt class="py-string">"This search is broken in 1.3 and earlier, and will be "</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">                <tt class="py-string">"fixed in a future version.  If you rely on the current "</tt> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">                <tt class="py-string">"behaviour, change it to %r"</tt> <tt class="py-op">%</tt> <tt id="link-154" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-154', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">                <tt class="py-name">FutureWarning</tt><tt class="py-op">,</tt> <tt class="py-name">stacklevel</tt><tt class="py-op">=</tt><tt class="py-number">2</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line">                <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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="lxml.etree._Element.findall
 lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-155', 'findall', 'link-52');">findall</a></tt><tt class="py-op">(</tt><tt id="link-156" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-156', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</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"># Finds all matching subelements, by tag name or path.</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">    <tt class="py-comment"># Same as getroot().iterfind(path).</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">    <tt class="py-comment"># @param path What element to look for.</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam namespaces Optional namespace prefix map.</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line">    <tt class="py-comment"># @return An iterator or sequence containing all matching elements,</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">    <tt class="py-comment">#    in document order.</tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn a generated sequence of Element instances</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line"> </tt>
-<a name="ElementTree.iterfind"></a><div id="ElementTree.iterfind-def"><a name="L763"></a><tt class="py-lineno"> 763</tt> <a class="py-toggle" href="#" id="ElementTree.iterfind-toggle" onclick="return toggle('ElementTree.iterfind');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#iterfind">iterfind</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</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="ElementTree.iterfind-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.iterfind-expanded"><a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-157" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-157', 'path', 'link-49');">path</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"/"</tt><tt class="py-op">:</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">            <tt id="link-158" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-158', 'path', 'link-49');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt id="link-159" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-159', 'path', 'link-49');">path</a></tt> </tt>
-<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">                <tt class="py-string">"This search is broken in 1.3 and earlier, and will be "</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">                <tt class="py-string">"fixed in a future version.  If you rely on the current "</tt> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">                <tt class="py-string">"behaviour, change it to %r"</tt> <tt class="py-op">%</tt> <tt id="link-160" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-160', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">                <tt class="py-name">FutureWarning</tt><tt class="py-op">,</tt> <tt class="py-name">stacklevel</tt><tt class="py-op">=</tt><tt class="py-number">2</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">                <tt class="py-op">)</tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.etree._Element.iterfind
+</div><a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">    <tt class="py-comment"># Finds all matching subelements, by tag name or path.</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">    <tt class="py-comment"># Same as getroot().iterfind(path).</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">    <tt class="py-comment"># @param path What element to look for.</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam namespaces Optional namespace prefix map.</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">    <tt class="py-comment"># @return An iterator or sequence containing all matching elements,</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">    <tt class="py-comment">#    in document order.</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn a generated sequence of Element instances</tt> </tt>
+<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line"> </tt>
+<a name="ElementTree.iterfind"></a><div id="ElementTree.iterfind-def"><a name="L761"></a><tt class="py-lineno"> 761</tt> <a class="py-toggle" href="#" id="ElementTree.iterfind-toggle" onclick="return toggle('ElementTree.iterfind');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#iterfind">iterfind</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">path</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</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="ElementTree.iterfind-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.iterfind-expanded"><a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-157" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-157', 'path', 'link-49');">path</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"/"</tt><tt class="py-op">:</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">            <tt id="link-158" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-158', 'path', 'link-49');">path</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"."</tt> <tt class="py-op">+</tt> <tt id="link-159" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-159', 'path', 'link-49');">path</a></tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">            <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">                <tt class="py-string">"This search is broken in 1.3 and earlier, and will be "</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">                <tt class="py-string">"fixed in a future version.  If you rely on the current "</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">                <tt class="py-string">"behaviour, change it to %r"</tt> <tt class="py-op">%</tt> <tt id="link-160" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-160', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">                <tt class="py-name">FutureWarning</tt><tt class="py-op">,</tt> <tt class="py-name">stacklevel</tt><tt class="py-op">=</tt><tt class="py-number">2</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">                <tt class="py-op">)</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.etree._Element.iterfind
 lxml.etree._ElementTree.iterfind" class="py-name" href="#" onclick="return doclink('link-161', 'iterfind', 'link-11');">iterfind</a></tt><tt class="py-op">(</tt><tt id="link-162" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-162', 'path', 'link-49');">path</a></tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">    <tt class="py-comment"># Writes the element tree to a file, as XML.</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">    <tt class="py-comment"># @def write(file, **options)</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">    <tt class="py-comment"># @param file A file name, or a file object opened for writing.</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">    <tt class="py-comment"># @param **options Options, given as keyword arguments.</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam encoding Optional output encoding (default is US-ASCII).</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam method Optional output method ("xml", "html", "text" or</tt> </tt>
-<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">    <tt class="py-comment">#     "c14n"; default is "xml").</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam xml_declaration Controls if an XML declaration should</tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">    <tt class="py-comment">#     be added to the file.  Use False for never, True for always,</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">    <tt class="py-comment">#     None for only if not US-ASCII or UTF-8.  None is default.</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line"> </tt>
-<a name="ElementTree.write"></a><div id="ElementTree.write-def"><a name="L788"></a><tt class="py-lineno"> 788</tt> <a class="py-toggle" href="#" id="ElementTree.write-toggle" onclick="return toggle('ElementTree.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file_or_filename</tt><tt class="py-op">,</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">              <tt class="py-comment"># keyword arguments</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</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>
-<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">              <tt class="py-param">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">              <tt class="py-param">default_namespace</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">              <tt class="py-param">method</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="ElementTree.write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.write-expanded"><a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-163" 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-163', 'method', 'link-163');">method</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">            <tt id="link-164" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-164', 'method', 'link-163');">method</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"xml"</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-165" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-165', 'method', 'link-163');">method</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-166" class="py-name" targets="Variable xml.etree.ElementTree._serialize=xml.etree.ElementTree-module.html#_serialize"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-166', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: raise an ImportError for c14n if ElementC14N is missing?</tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</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">"unknown method %r"</tt> <tt class="py-op">%</tt> <tt id="link-167" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-167', 'method', 'link-163');">method</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-168" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-168', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">file_or_filename</tt><tt class="py-op">,</tt> <tt class="py-string">"write"</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-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">file_or_filename</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">            <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file_or_filename</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt><tt class="py-op">)</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">        <tt id="link-169" 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-169', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-170', 'write', 'link-169');">write</a></tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-171" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-171', 'encoding', 'link-171');">encoding</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-172" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-172', 'method', 'link-163');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"c14n"</tt><tt class="py-op">:</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">                <tt id="link-173" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-173', 'encoding', 'link-171');">encoding</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"utf-8"</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">                <tt id="link-174" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-174', 'encoding', 'link-171');">encoding</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"us-ascii"</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">xml_declaration</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">xml_declaration</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">                                 <tt id="link-175" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-175', 'encoding', 'link-171');">encoding</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">,</tt> <tt class="py-string">"us-ascii"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-176" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-176', 'method', 'link-163');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">                <tt id="link-177" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-177', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?xml version='1.0' encoding='%s'?&gt;\n"</tt> <tt class="py-op">%</tt> <tt id="link-178" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-178', 'encoding', 'link-171');">encoding</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-179" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-179', 'method', 'link-163');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"text"</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">_serialize_text</tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-180', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">,</tt> <tt id="link-181" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-181', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">            <tt class="py-name">qnames</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>
-<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">,</tt> <tt id="link-182" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-182', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">default_namespace</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">                <tt class="py-op">)</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">            <tt class="py-name">serialize</tt> <tt class="py-op">=</tt> <tt id="link-183" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-183', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">[</tt><tt id="link-184" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-184', 'method', 'link-163');">method</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">            <tt class="py-name">serialize</tt><tt class="py-op">(</tt><tt id="link-185" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-185', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">,</tt> <tt id="link-186" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-186', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">)</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">file_or_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">file</tt><tt class="py-op">:</tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">            <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree.TreeBuilder.close
+</div><a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line">    <tt class="py-comment"># Writes the element tree to a file, as XML.</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">    <tt class="py-comment"># @def write(file, **options)</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">    <tt class="py-comment"># @param file A file name, or a file object opened for writing.</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">    <tt class="py-comment"># @param **options Options, given as keyword arguments.</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam encoding Optional output encoding (default is US-ASCII).</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam xml_declaration Controls if an XML declaration should</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">    <tt class="py-comment">#     be added to the file.  Use False for never, True for always,</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">    <tt class="py-comment">#     None for only if not US-ASCII or UTF-8.  None is default.</tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam default_namespace Sets the default XML namespace (for "xmlns").</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">    <tt class="py-comment"># @keyparam method Optional output method ("xml", "html", "text" or</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">    <tt class="py-comment">#     "c14n"; default is "xml").</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line"> </tt>
+<a name="ElementTree.write"></a><div id="ElementTree.write-def"><a name="L787"></a><tt class="py-lineno"> 787</tt> <a class="py-toggle" href="#" id="ElementTree.write-toggle" onclick="return toggle('ElementTree.write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#write">write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file_or_filename</tt><tt class="py-op">,</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">              <tt class="py-comment"># keyword arguments</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</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>
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">              <tt class="py-param">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">              <tt class="py-param">default_namespace</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">              <tt class="py-param">method</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="ElementTree.write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.write-expanded"><a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-comment"># assert self._root is not None</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-163" 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-163', 'method', 'link-163');">method</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">            <tt id="link-164" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-164', 'method', 'link-163');">method</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"xml"</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-165" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-165', 'method', 'link-163');">method</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-166" class="py-name" targets="Variable xml.etree.ElementTree._serialize=xml.etree.ElementTree-module.html#_serialize"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-166', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">            <tt class="py-comment"># FIXME: raise an ImportError for c14n if ElementC14N is missing?</tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</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">"unknown method %r"</tt> <tt class="py-op">%</tt> <tt id="link-167" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-167', 'method', 'link-163');">method</a></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 id="link-168" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-168', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">file_or_filename</tt><tt class="py-op">,</tt> <tt class="py-string">"write"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">            <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">file_or_filename</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">            <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file_or_filename</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt><tt class="py-op">)</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">        <tt id="link-169" 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-169', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-170', 'write', 'link-169');">write</a></tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-171" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-171', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-172" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-172', 'method', 'link-163');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"c14n"</tt><tt class="py-op">:</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">                <tt id="link-173" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-173', 'encoding', 'link-171');">encoding</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"utf-8"</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">                <tt id="link-174" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-174', 'encoding', 'link-171');">encoding</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"us-ascii"</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">xml_declaration</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">xml_declaration</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">                                 <tt id="link-175" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-175', 'encoding', 'link-171');">encoding</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">(</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">,</tt> <tt class="py-string">"us-ascii"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-176" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-176', 'method', 'link-163');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">                <tt id="link-177" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-177', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?xml version='1.0' encoding='%s'?&gt;\n"</tt> <tt class="py-op">%</tt> <tt id="link-178" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-178', 'encoding', 'link-171');">encoding</a></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">if</tt> <tt id="link-179" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-179', 'method', 'link-163');">method</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"text"</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">_serialize_text</tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-180', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">,</tt> <tt id="link-181" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-181', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">        <tt class="py-keyword">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-name">qnames</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>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">,</tt> <tt id="link-182" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-182', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">default_namespace</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">                <tt class="py-op">)</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">            <tt class="py-name">serialize</tt> <tt class="py-op">=</tt> <tt id="link-183" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-183', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">[</tt><tt id="link-184" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-184', 'method', 'link-163');">method</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">serialize</tt><tt class="py-op">(</tt><tt id="link-185" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-185', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt><tt class="py-op">,</tt> <tt id="link-186" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-186', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</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">if</tt> <tt class="py-name">file_or_filename</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">file</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">file</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-187', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line"> </tt>
-<a name="ElementTree.write_c14n"></a><div id="ElementTree.write_c14n-def"><a name="L825"></a><tt class="py-lineno"> 825</tt> <a class="py-toggle" href="#" id="ElementTree.write_c14n-toggle" onclick="return toggle('ElementTree.write_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#write_c14n">write_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTree.write_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.write_c14n-expanded"><a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree compatibility.  use output method instead</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</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-188" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-188', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-189" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-189', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"c14n"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line"> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"><tt class="py-comment"># serialization support</tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line"> </tt>
-<a name="_namespaces"></a><div id="_namespaces-def"><a name="L832"></a><tt class="py-lineno"> 832</tt> <a class="py-toggle" href="#" id="_namespaces-toggle" onclick="return toggle('_namespaces');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_namespaces">_namespaces</a><tt class="py-op">(</tt><tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">,</tt> <tt class="py-param">default_namespace</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="_namespaces-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_namespaces-expanded"><a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">    <tt class="py-comment"># identify namespaces used in this tree</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line"> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">    <tt class="py-comment"># maps qnames to *encoded* prefix:local names</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line">    <tt class="py-name">qnames</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">}</tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line"> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">    <tt class="py-comment"># maps uri:s to prefixes</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">    <tt class="py-name">namespaces</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">default_namespace</tt><tt class="py-op">:</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">        <tt class="py-name">namespaces</tt><tt class="py-op">[</tt><tt class="py-name">default_namespace</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line"> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">encode</tt><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</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-190" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line"> </tt>
+<a name="ElementTree.write_c14n"></a><div id="ElementTree.write_c14n-def"><a name="L824"></a><tt class="py-lineno"> 824</tt> <a class="py-toggle" href="#" id="ElementTree.write_c14n-toggle" onclick="return toggle('ElementTree.write_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.ElementTree-class.html#write_c14n">write_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTree.write_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementTree.write_c14n-expanded"><a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree compatibility.  use output method instead</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</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-188" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-188', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-189" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-189', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"c14n"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line"><tt class="py-comment"># serialization support</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"> </tt>
+<a name="_namespaces"></a><div id="_namespaces-def"><a name="L831"></a><tt class="py-lineno"> 831</tt> <a class="py-toggle" href="#" id="_namespaces-toggle" onclick="return toggle('_namespaces');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_namespaces">_namespaces</a><tt class="py-op">(</tt><tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">,</tt> <tt class="py-param">default_namespace</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="_namespaces-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_namespaces-expanded"><a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">    <tt class="py-comment"># identify namespaces used in this tree</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line"> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">    <tt class="py-comment"># maps qnames to *encoded* prefix:local names</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">    <tt class="py-name">qnames</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">}</tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">    <tt class="py-comment"># maps uri:s to prefixes</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">    <tt class="py-name">namespaces</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">default_namespace</tt><tt class="py-op">:</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">        <tt class="py-name">namespaces</tt><tt class="py-op">[</tt><tt class="py-name">default_namespace</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line"> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">encode</tt><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</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">return</tt> <tt id="link-190" 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-190', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-191" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-191', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">add_qname</tt><tt class="py-op">(</tt><tt class="py-param">qname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">        <tt class="py-comment"># calculate serialized qname representation</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">if</tt> <tt class="py-name">qname</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">"{"</tt><tt class="py-op">:</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">                <tt id="link-192" class="py-name" targets="Variable lxml.tests.test_xpathevaluator.uri=lxml.tests.test_xpathevaluator-module.html#uri"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-192', 'uri', 'link-192');">uri</a></tt><tt class="py-op">,</tt> <tt id="link-193" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">add_qname</tt><tt class="py-op">(</tt><tt class="py-param">qname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">        <tt class="py-comment"># calculate serialized qname representation</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">qname</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">"{"</tt><tt class="py-op">:</tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">                <tt id="link-192" class="py-name" targets="Variable lxml.tests.test_xpathevaluator.uri=lxml.tests.test_xpathevaluator-module.html#uri"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-192', 'uri', 'link-192');">uri</a></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-193', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">qname</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</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>
-<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">                <tt id="link-194" 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-194', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-name">namespaces</tt><tt class="py-op">.</tt><tt id="link-195" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">                <tt id="link-194" 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-194', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-name">namespaces</tt><tt class="py-op">.</tt><tt id="link-195" 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-195', 'get', 'link-61');">get</a></tt><tt class="py-op">(</tt><tt id="link-196" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-196', 'uri', 'link-192');">uri</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-197" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-197', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">                    <tt id="link-198" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-198', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-199" class="py-name" targets="Variable xml.etree.ElementTree._namespace_map=xml.etree.ElementTree-module.html#_namespace_map"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-199', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">.</tt><tt id="link-200" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-197" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-197', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">                    <tt id="link-198" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-198', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-199" class="py-name" targets="Variable xml.etree.ElementTree._namespace_map=xml.etree.ElementTree-module.html#_namespace_map"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-199', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">.</tt><tt id="link-200" 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-200', 'get', 'link-61');">get</a></tt><tt class="py-op">(</tt><tt id="link-201" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-201', 'uri', 'link-192');">uri</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt id="link-202" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-202', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">                        <tt id="link-203" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-203', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ns%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">namespaces</tt><tt class="py-op">)</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt id="link-204" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-204', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">                        <tt class="py-name">namespaces</tt><tt class="py-op">[</tt><tt id="link-205" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-205', 'uri', 'link-192');">uri</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-206" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-206', 'prefix', 'link-194');">prefix</a></tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-207" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-207', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">                    <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"%s:%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-208" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-208', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-209" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt id="link-202" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-202', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">                        <tt id="link-203" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-203', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ns%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">namespaces</tt><tt class="py-op">)</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">                    <tt class="py-keyword">if</tt> <tt id="link-204" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-204', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">                        <tt class="py-name">namespaces</tt><tt class="py-op">[</tt><tt id="link-205" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-205', 'uri', 'link-192');">uri</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-206" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-206', 'prefix', 'link-194');">prefix</a></tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-207" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-207', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">                    <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"%s:%s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-208" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-208', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">,</tt> <tt id="link-209" 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-209', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">                    <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-210" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">                    <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-210" 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-210', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> <tt class="py-comment"># default element</tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">default_namespace</tt><tt class="py-op">:</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">                    <tt class="py-comment"># FIXME: can this be handled in XML 1.0?</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</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="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">                        <tt class="py-string">"cannot use non-qualified names with "</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">                        <tt class="py-string">"default_namespace option"</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">                        <tt class="py-op">)</tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">                <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">TypeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">            <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line"> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">    <tt class="py-comment"># populate qname and namespaces table</tt> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">        <tt class="py-name">iterate</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="lxml.etree._Element.iter
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">default_namespace</tt><tt class="py-op">:</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">                    <tt class="py-comment"># FIXME: can this be handled in XML 1.0?</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</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="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">                        <tt class="py-string">"cannot use non-qualified names with "</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">                        <tt class="py-string">"default_namespace option"</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">                        <tt class="py-op">)</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">                <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">qname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">TypeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">            <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line"> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">    <tt class="py-comment"># populate qname and namespaces table</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">        <tt class="py-name">iterate</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="lxml.etree._Element.iter
 lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-211', 'iter', 'link-7');">iter</a></tt> </tt>
-<a name="L876"></a><tt class="py-lineno"> 876</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="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">        <tt class="py-name">iterate</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
+<a name="L875"></a><tt class="py-lineno"> 875</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="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">        <tt class="py-name">iterate</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
 lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-212', 'getiterator', 'link-212');">getiterator</a></tt> <tt class="py-comment"># cET compatibility</tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterate</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt id="link-213" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterate</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">        <tt id="link-213" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1323,14 +1323,14 @@ 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-214', 'tag', 'link-1');">tag</a></tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</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-215" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L879"></a><tt class="py-lineno"> 879</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-215" 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-215', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-216" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-216', 'QName', 'link-115');">QName</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 id="link-217" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">            <tt class="py-keyword">if</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
@@ -1340,7 +1340,7 @@ 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-218', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">qnames</tt><tt class="py-op">:</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">                <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt id="link-219" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">                <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt id="link-219" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1350,26 +1350,26 @@ 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-220', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-221" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</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-221', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-222" class="py-name"><a title="lxml.html.basestring
 lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-222', 'basestring', 'link-80');">basestring</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 class="py-keyword">if</tt> <tt id="link-223" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-223" 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-223', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">qnames</tt><tt class="py-op">:</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">                <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt id="link-224" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">                <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt id="link-224" 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-224', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-225" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-225" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1385,29 +1385,29 @@ 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-1');">tag</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt id="link-229" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-229', 'PI', 'link-109');">PI</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">            <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-230" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">            <tt class="py-name">_raise_serialization_error</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-230', 'tag', 'link-1');">tag</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-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-231" class="py-name"><a title="lxml.html.CheckboxGroup.value
+<a name="L887"></a><tt class="py-lineno"> 887</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-231" 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-231', 'value', 'link-63');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-232" 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-232', 'items', 'link-67');">items</a></tt><tt class="py-op">(</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">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-233" class="py-name"><a title="lxml.etree.QName
+<a name="L888"></a><tt class="py-lineno"> 888</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">key</tt><tt class="py-op">,</tt> <tt id="link-233" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-233', 'QName', 'link-115');">QName</a></tt><tt class="py-op">)</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">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="lxml.etree.QName.text
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">                <tt class="py-name">key</tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt><tt class="py-op">.</tt><tt id="link-234" 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-234', 'text', 'link-5');">text</a></tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">qnames</tt><tt class="py-op">:</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line">                <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt class="py-name">key</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">isinstance</tt><tt class="py-op">(</tt><tt id="link-235" class="py-name"><a title="lxml.html.CheckboxGroup.value
+<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">qnames</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">add_qname</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</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-235" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
@@ -1421,7 +1421,7 @@ 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-238', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">qnames</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">add_qname</tt><tt class="py-op">(</tt><tt id="link-239" class="py-name"><a title="lxml.html.CheckboxGroup.value
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">                <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt id="link-239" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
@@ -1430,7 +1430,7 @@ 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-240', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">        <tt id="link-241" class="py-name"><a title="lxml.etree.QName.text
+<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt id="link-241" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1439,7 +1439,7 @@ 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-242', 'text', 'link-5');">text</a></tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</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-243" class="py-name"><a title="lxml.etree.QName.text
+<a name="L895"></a><tt class="py-lineno"> 895</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-243" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1453,7 +1453,7 @@ 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-246', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">qnames</tt><tt class="py-op">:</tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">            <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt id="link-247" class="py-name"><a title="lxml.etree.QName.text
+<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">            <tt class="py-name">add_qname</tt><tt class="py-op">(</tt><tt id="link-247" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1462,10 +1462,10 @@ 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-248', 'text', 'link-5');">text</a></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">return</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt> </tt>
-</div><a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line"> </tt>
-<a name="_serialize_xml"></a><div id="_serialize_xml-def"><a name="L900"></a><tt class="py-lineno"> 900</tt> <a class="py-toggle" href="#" id="_serialize_xml-toggle" onclick="return toggle('_serialize_xml');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_serialize_xml">_serialize_xml</a><tt class="py-op">(</tt><tt class="py-param">write</tt><tt class="py-op">,</tt> <tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">,</tt> <tt class="py-param">qnames</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_serialize_xml-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_xml-expanded"><a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">    <tt id="link-249" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt> </tt>
+</div><a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line"> </tt>
+<a name="_serialize_xml"></a><div id="_serialize_xml-def"><a name="L899"></a><tt class="py-lineno"> 899</tt> <a class="py-toggle" href="#" id="_serialize_xml-toggle" onclick="return toggle('_serialize_xml');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_serialize_xml">_serialize_xml</a><tt class="py-op">(</tt><tt class="py-param">write</tt><tt class="py-op">,</tt> <tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">,</tt> <tt class="py-param">qnames</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_serialize_xml-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_xml-expanded"><a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">    <tt id="link-249" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1476,7 +1476,7 @@ 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-250', 'tag', 'link-1');">tag</a></tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">    <tt id="link-251" class="py-name"><a title="lxml.etree.QName.text
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">    <tt id="link-251" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1485,30 +1485,30 @@ 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-252', 'text', 'link-5');">text</a></tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-253" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-253" 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-253', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">is</tt> <tt id="link-254" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-254', 'Comment', 'link-99');">Comment</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt id="link-255" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-255', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;!--%s--&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-256" class="py-name"><a title="lxml.etree.QName.text
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">        <tt id="link-255" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-255', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;!--%s--&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-256" 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-256', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-257" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-257', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt id="link-258" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt id="link-258" 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-258', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">:</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">        <tt id="link-259" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-259', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?%s?&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-260" class="py-name"><a title="lxml.etree.QName.text
+<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">        <tt id="link-259" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-259', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?%s?&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-260" 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-260', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-261" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-261', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt id="link-262" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">        <tt id="link-262" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1519,112 +1519,112 @@ 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-263', 'tag', 'link-1');">tag</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-264" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-264" 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-264', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</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-265" class="py-name"><a title="lxml.etree.QName.text
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-265" 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-265', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">                <tt id="link-266" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-266', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-267" class="py-name"><a title="lxml.etree.QName.text
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">                <tt id="link-266" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-266', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-267" 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-267', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-268" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-268', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">                <tt class="py-name">_serialize_xml</tt><tt class="py-op">(</tt><tt id="link-269" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-269', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-270" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-270', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">            <tt id="link-271" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-271', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt id="link-272" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</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">_serialize_xml</tt><tt class="py-op">(</tt><tt id="link-269" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-269', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-270" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-270', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</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 id="link-271" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-271', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt id="link-272" 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-272', 'tag', 'link-1');">tag</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-273" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">            <tt id="link-273" 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-273', 'items', 'link-67');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-274" 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-274', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-275" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-275" 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-275', 'items', 'link-67');">items</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">namespaces</tt><tt class="py-op">:</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">namespaces</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">for</tt> <tt id="link-276" 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-276', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">namespaces</tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">namespaces</tt><tt class="py-op">:</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt id="link-276" 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-276', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">namespaces</tt><tt class="py-op">.</tt><tt id="link-277" 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-277', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">                                       <tt class="py-name">key</tt><tt class="py-op">=</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>  <tt class="py-comment"># sort on prefix</tt> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">k</tt><tt class="py-op">:</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">                            <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-string">":"</tt> <tt class="py-op">+</tt> <tt class="py-name">k</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">                        <tt id="link-278" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-278', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" xmlns%s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">                            <tt class="py-name">k</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-279" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-279', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">                            <tt class="py-name">_escape_attrib</tt><tt class="py-op">(</tt><tt id="link-280" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-280', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-281" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-281', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">                            <tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-282" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-282', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt id="link-283" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">                                       <tt class="py-name">key</tt><tt class="py-op">=</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>  <tt class="py-comment"># sort on prefix</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">k</tt><tt class="py-op">:</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">                            <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-string">":"</tt> <tt class="py-op">+</tt> <tt class="py-name">k</tt> </tt>
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">                        <tt id="link-278" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-278', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" xmlns%s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">                            <tt class="py-name">k</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-279" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-279', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">                            <tt class="py-name">_escape_attrib</tt><tt class="py-op">(</tt><tt id="link-280" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-280', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-281" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-281', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">                            <tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-282" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-282', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt id="link-283" 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-283', 'items', 'link-67');">items</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt>  <tt class="py-comment"># lexical order</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</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">k</tt><tt class="py-op">,</tt> <tt id="link-284" class="py-name"><a title="lxml.etree.QName
+<a name="L927"></a><tt class="py-lineno"> 927</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">k</tt><tt class="py-op">,</tt> <tt id="link-284" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-284', 'QName', 'link-115');">QName</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">                        <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="lxml.etree.QName.text
+<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">                        <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt><tt class="py-op">.</tt><tt id="link-285" 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-285', 'text', 'link-5');">text</a></tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</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-286" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-286', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-287" class="py-name"><a title="lxml.etree.QName
+<a name="L929"></a><tt class="py-lineno"> 929</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-286" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-286', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-287" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-287', 'QName', 'link-115');">QName</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">                        <tt id="link-288" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-288', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt id="link-289" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-289', 'v', 'link-276');">v</a></tt><tt class="py-op">.</tt><tt id="link-290" class="py-name"><a title="lxml.etree.QName.text
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">                        <tt id="link-288" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-288', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt id="link-289" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-289', 'v', 'link-276');">v</a></tt><tt class="py-op">.</tt><tt id="link-290" 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-290', 'text', 'link-5');">text</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">                        <tt id="link-291" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-291', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_escape_attrib</tt><tt class="py-op">(</tt><tt id="link-292" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-292', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-293" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-293', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">                    <tt id="link-294" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-294', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" %s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-295" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-295', 'v', 'link-276');">v</a></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-keyword">if</tt> <tt id="link-296" class="py-name"><a title="lxml.etree.QName.text
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">                        <tt id="link-291" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-291', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_escape_attrib</tt><tt class="py-op">(</tt><tt id="link-292" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-292', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-293" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-293', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">                    <tt id="link-294" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-294', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" %s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-295" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-295', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-296" 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-296', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">                <tt id="link-297" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-297', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-298" class="py-name"><a title="lxml.etree.QName.text
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">                <tt id="link-297" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-297', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-298" 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-298', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">                    <tt id="link-299" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-299', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-300" class="py-name"><a title="lxml.etree.QName.text
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">                    <tt id="link-299" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-299', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-300" 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-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-301" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-301', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">                    <tt class="py-name">_serialize_xml</tt><tt class="py-op">(</tt><tt id="link-302" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-302', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-303" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-303', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">                <tt id="link-304" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-304', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt id="link-305" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">                    <tt class="py-name">_serialize_xml</tt><tt class="py-op">(</tt><tt id="link-302" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-302', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-303" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-303', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">                <tt id="link-304" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-304', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt id="link-305" 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-305', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">                <tt id="link-306" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-306', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" /&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">                <tt id="link-306" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-306', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" /&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-307', 'tail', 'link-19');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">        <tt id="link-308" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-308', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-309" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">        <tt id="link-308" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-308', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-309" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-309', 'tail', 'link-19');">tail</a></tt><tt class="py-op">,</tt> <tt id="link-310" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-310', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line"><tt id="link-311" class="py-name" targets="Variable xml.etree.ElementTree.HTML_EMPTY=xml.etree.ElementTree-module.html#HTML_EMPTY"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-311', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">"area"</tt><tt class="py-op">,</tt> <tt class="py-string">"base"</tt><tt class="py-op">,</tt> <tt class="py-string">"basefont"</tt><tt class="py-op">,</tt> <tt class="py-string">"br"</tt><tt class="py-op">,</tt> <tt class="py-string">"col"</tt><tt class="py-op">,</tt> <tt class="py-string">"frame"</tt><tt class="py-op">,</tt> <tt class="py-string">"hr"</tt><tt class="py-op">,</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">              <tt class="py-string">"img"</tt><tt class="py-op">,</tt> <tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-string">"isindex"</tt><tt class="py-op">,</tt> <tt class="py-string">"link"</tt><tt class="py-op">,</tt> <tt class="py-string">"meta"</tt><tt class="py-op">,</tt> <tt class="py-string">"param"</tt><tt class="py-op">)</tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">    <tt id="link-312" class="py-name"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-312', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt> <tt class="py-op">=</tt> <tt id="link-313" 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
+</div><a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"><tt id="link-311" class="py-name" targets="Variable xml.etree.ElementTree.HTML_EMPTY=xml.etree.ElementTree-module.html#HTML_EMPTY"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-311', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">"area"</tt><tt class="py-op">,</tt> <tt class="py-string">"base"</tt><tt class="py-op">,</tt> <tt class="py-string">"basefont"</tt><tt class="py-op">,</tt> <tt class="py-string">"br"</tt><tt class="py-op">,</tt> <tt class="py-string">"col"</tt><tt class="py-op">,</tt> <tt class="py-string">"frame"</tt><tt class="py-op">,</tt> <tt class="py-string">"hr"</tt><tt class="py-op">,</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">              <tt class="py-string">"img"</tt><tt class="py-op">,</tt> <tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-string">"isindex"</tt><tt class="py-op">,</tt> <tt class="py-string">"link"</tt><tt class="py-op">,</tt> <tt class="py-string">"meta"</tt><tt class="py-op">,</tt> <tt class="py-string">"param"</tt><tt class="py-op">)</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line"> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">    <tt id="link-312" class="py-name"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-312', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt> <tt class="py-op">=</tt> <tt id="link-313" 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-313', 'set', 'link-313');">set</a></tt><tt class="py-op">(</tt><tt id="link-314" class="py-name"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-314', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
-<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"> </tt>
-<a name="_serialize_html"></a><div id="_serialize_html-def"><a name="L955"></a><tt class="py-lineno"> 955</tt> <a class="py-toggle" href="#" id="_serialize_html-toggle" onclick="return toggle('_serialize_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_serialize_html">_serialize_html</a><tt class="py-op">(</tt><tt class="py-param">write</tt><tt class="py-op">,</tt> <tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">,</tt> <tt class="py-param">qnames</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_serialize_html-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_html-expanded"><a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">    <tt id="link-315" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"> </tt>
+<a name="_serialize_html"></a><div id="_serialize_html-def"><a name="L954"></a><tt class="py-lineno"> 954</tt> <a class="py-toggle" href="#" id="_serialize_html-toggle" onclick="return toggle('_serialize_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_serialize_html">_serialize_html</a><tt class="py-op">(</tt><tt class="py-param">write</tt><tt class="py-op">,</tt> <tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">,</tt> <tt class="py-param">qnames</tt><tt class="py-op">,</tt> <tt class="py-param">namespaces</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_serialize_html-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_html-expanded"><a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">    <tt id="link-315" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1635,7 +1635,7 @@ 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-316', 'tag', 'link-1');">tag</a></tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">    <tt id="link-317" class="py-name"><a title="lxml.etree.QName.text
+<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">    <tt id="link-317" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1644,30 +1644,30 @@ 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-318', 'text', 'link-5');">text</a></tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-319" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-319" 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-319', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">is</tt> <tt id="link-320" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-320', 'Comment', 'link-99');">Comment</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">        <tt id="link-321" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-321', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;!--%s--&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-322" class="py-name"><a title="lxml.etree.QName.text
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">        <tt id="link-321" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-321', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;!--%s--&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-322" 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-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-323" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-323', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt id="link-324" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">    <tt class="py-keyword">elif</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-324', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">:</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">        <tt id="link-325" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-325', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?%s?&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-326" class="py-name"><a title="lxml.etree.QName.text
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">        <tt id="link-325" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-325', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?%s?&gt;"</tt> <tt class="py-op">%</tt> <tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-326" 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-326', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-327" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-327', 'encoding', 'link-171');">encoding</a></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-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">        <tt id="link-328" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">        <tt id="link-328" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1678,73 +1678,73 @@ 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-329', 'tag', 'link-1');">tag</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-330" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-330" 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-330', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-331" class="py-name"><a title="lxml.etree.QName.text
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">            <tt class="py-keyword">if</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-331', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">                <tt id="link-332" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-332', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-333" class="py-name"><a title="lxml.etree.QName.text
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">                <tt id="link-332" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-332', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-333" 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-333', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-334" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-334', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">                <tt class="py-name">_serialize_html</tt><tt class="py-op">(</tt><tt id="link-335" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-335', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-336" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-336', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">            <tt id="link-337" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-337', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt id="link-338" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">                <tt class="py-name">_serialize_html</tt><tt class="py-op">(</tt><tt id="link-335" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-335', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-336" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-336', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">            <tt id="link-337" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-337', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt> <tt class="py-op">+</tt> <tt id="link-338" 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-338', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">            <tt id="link-339" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">            <tt id="link-339" 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-339', 'items', 'link-67');">items</a></tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-340" 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-340', 'items', 'link-67');">items</a></tt><tt class="py-op">(</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-341" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-341" 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-341', 'items', 'link-67');">items</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">namespaces</tt><tt class="py-op">:</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">namespaces</tt><tt class="py-op">:</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt id="link-342" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-342', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">namespaces</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">namespaces</tt><tt class="py-op">:</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt id="link-342" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-342', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">namespaces</tt><tt class="py-op">.</tt><tt id="link-343" 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-343', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">                                       <tt class="py-name">key</tt><tt class="py-op">=</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>  <tt class="py-comment"># sort on prefix</tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">k</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">k</tt> <tt class="py-op">=</tt> <tt class="py-string">":"</tt> <tt class="py-op">+</tt> <tt class="py-name">k</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line">                        <tt id="link-344" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-344', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" xmlns%s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line">                            <tt class="py-name">k</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-345" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-345', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">                            <tt class="py-name">_escape_attrib</tt><tt class="py-op">(</tt><tt id="link-346" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-346', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-347" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-347', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">                            <tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-348" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-348', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt id="link-349" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">                                       <tt class="py-name">key</tt><tt class="py-op">=</tt><tt class="py-keyword">lambda</tt> <tt class="py-name">x</tt><tt class="py-op">:</tt> <tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt>  <tt class="py-comment"># sort on prefix</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">k</tt><tt class="py-op">:</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">                            <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-string">":"</tt> <tt class="py-op">+</tt> <tt class="py-name">k</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line">                        <tt id="link-344" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-344', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" xmlns%s=\"%s\""</tt> <tt class="py-op">%</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">k</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-345" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-345', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line">                            <tt class="py-name">_escape_attrib</tt><tt class="py-op">(</tt><tt id="link-346" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-346', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-347" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-347', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">                            <tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-348" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-348', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt id="link-349" 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-349', 'items', 'link-67');">items</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt>  <tt class="py-comment"># lexical order</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</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">k</tt><tt class="py-op">,</tt> <tt id="link-350" class="py-name"><a title="lxml.etree.QName
+<a name="L982"></a><tt class="py-lineno"> 982</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">k</tt><tt class="py-op">,</tt> <tt id="link-350" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-350', 'QName', 'link-115');">QName</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">                        <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt><tt class="py-op">.</tt><tt id="link-351" class="py-name"><a title="lxml.etree.QName.text
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line">                        <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-name">k</tt><tt class="py-op">.</tt><tt id="link-351" 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-351', 'text', 'link-5');">text</a></tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</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.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-352', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-353" class="py-name"><a title="lxml.etree.QName
+<a name="L984"></a><tt class="py-lineno"> 984</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.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-352', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-353" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-353', 'QName', 'link-115');">QName</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">                        <tt id="link-354" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-354', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt id="link-355" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-355', 'v', 'link-276');">v</a></tt><tt class="py-op">.</tt><tt id="link-356" class="py-name"><a title="lxml.etree.QName.text
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">                        <tt id="link-354" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-354', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt id="link-355" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-355', 'v', 'link-276');">v</a></tt><tt class="py-op">.</tt><tt id="link-356" 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-356', 'text', 'link-5');">text</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">                        <tt id="link-357" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-357', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_escape_attrib_html</tt><tt class="py-op">(</tt><tt id="link-358" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-358', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-359" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-359', 'encoding', 'link-171');">encoding</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-comment"># FIXME: handle boolean attributes</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">                    <tt id="link-360" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-360', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" %s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-361" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-361', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">            <tt id="link-362" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-362', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">            <tt id="link-363" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">                    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">                        <tt id="link-357" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-357', 'v', 'link-276');">v</a></tt> <tt class="py-op">=</tt> <tt class="py-name">_escape_attrib_html</tt><tt class="py-op">(</tt><tt id="link-358" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-358', 'v', 'link-276');">v</a></tt><tt class="py-op">,</tt> <tt id="link-359" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-359', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">                    <tt class="py-comment"># FIXME: handle boolean attributes</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">                    <tt id="link-360" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-360', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" %s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-361" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-361', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">            <tt id="link-362" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-362', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">            <tt id="link-363" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1755,12 +1755,12 @@ 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-364', 'tag', 'link-1');">tag</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="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-365" class="py-name"><a title="lxml.etree.QName.text
+<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">            <tt class="py-keyword">if</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-365', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-366" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-366" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -1771,89 +1771,89 @@ 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-367', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"style"</tt><tt class="py-op">:</tt> </tt>
-<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">                    <tt id="link-368" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-368', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-369" class="py-name"><a title="lxml.etree.QName.text
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">                    <tt id="link-368" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-368', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-369" 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-369', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-370" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-370', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">                    <tt id="link-371" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-371', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-372" class="py-name"><a title="lxml.etree.QName.text
+<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">                    <tt id="link-371" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-371', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-372" 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-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-373" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-373', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">                <tt class="py-name">_serialize_html</tt><tt class="py-op">(</tt><tt id="link-374" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-374', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-375" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-375', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-376" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">                <tt class="py-name">_serialize_html</tt><tt class="py-op">(</tt><tt id="link-374" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-374', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-375" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-375', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-376" 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-376', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-377" class="py-name"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-377', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">                <tt id="link-378" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-378', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt id="link-379" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">                <tt id="link-378" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-378', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt id="link-379" 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-379', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-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-19');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">        <tt id="link-381" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-381', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">        <tt id="link-381" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-381', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-382', 'tail', 'link-19');">tail</a></tt><tt class="py-op">,</tt> <tt id="link-383" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-383', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line"> </tt>
-<a name="_serialize_text"></a><div id="_serialize_text-def"><a name="L1005"></a><tt class="py-lineno">1005</tt> <a class="py-toggle" href="#" id="_serialize_text-toggle" onclick="return toggle('_serialize_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_serialize_text">_serialize_text</a><tt class="py-op">(</tt><tt class="py-param">write</tt><tt class="py-op">,</tt> <tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_serialize_text-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_text-expanded"><a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-384', 'itertext', 'link-84');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">        <tt id="link-385" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-385', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-386" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-386', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree._Element.tail
+</div><a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"> </tt>
+<a name="_serialize_text"></a><div id="_serialize_text-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <a class="py-toggle" href="#" id="_serialize_text-toggle" onclick="return toggle('_serialize_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_serialize_text">_serialize_text</a><tt class="py-op">(</tt><tt class="py-param">write</tt><tt class="py-op">,</tt> <tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_serialize_text-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_text-expanded"><a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-384', 'itertext', 'link-84');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">        <tt id="link-385" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-385', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-386" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-386', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-387', 'tail', 'link-19');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt id="link-388" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-388', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">        <tt id="link-388" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-388', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-389', 'tail', 'link-19');">tail</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-390" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-390', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line"><tt id="link-391" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-391', '_serialize', 'link-166');">_serialize</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">    <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_xml</tt><tt class="py-op">,</tt> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">    <tt class="py-string">"html"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_html</tt><tt class="py-op">,</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line">    <tt class="py-string">"text"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_text</tt><tt class="py-op">,</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"><tt class="py-comment"># this optional method is imported at the end of the module</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-comment">#   "c14n": _serialize_c14n,</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"><tt class="py-op">}</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line"><tt class="py-comment"># Registers a namespace prefix.  The registry is global, and any</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line"><tt class="py-comment"># existing mapping for either the given prefix or the namespace URI</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"><tt class="py-comment"># will be removed.</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line"><tt class="py-comment"># @param prefix Namespace prefix.</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"><tt class="py-comment"># @param uri Namespace uri.  Tags and attributes in this namespace</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line"><tt class="py-comment">#     will be serialized with the given prefix, if at all possible.</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"><tt class="py-comment"># @exception ValueError If the prefix is reserved, or is otherwise</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line"><tt class="py-comment">#     invalid.</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line"> </tt>
-<a name="register_namespace"></a><div id="register_namespace-def"><a name="L1030"></a><tt class="py-lineno">1030</tt> <a class="py-toggle" href="#" id="register_namespace-toggle" onclick="return toggle('register_namespace');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#register_namespace">register_namespace</a><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="register_namespace-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="register_namespace-expanded"><a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"ns\d+$"</tt><tt class="py-op">,</tt> <tt id="link-392" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-392', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</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">"Prefix format reserved for internal use"</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">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-393" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-393', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt id="link-394" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-394', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="lxml.etree._Attrib.items
+</div><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 id="link-391" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-391', '_serialize', 'link-166');">_serialize</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">    <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_xml</tt><tt class="py-op">,</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">    <tt class="py-string">"html"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_html</tt><tt class="py-op">,</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">    <tt class="py-string">"text"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_text</tt><tt class="py-op">,</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"><tt class="py-comment"># this optional method is imported at the end of the module</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"><tt class="py-comment">#   "c14n": _serialize_c14n,</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-op">}</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 class="py-comment">##</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"><tt class="py-comment"># Registers a namespace prefix.  The registry is global, and any</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line"><tt class="py-comment"># existing mapping for either the given prefix or the namespace URI</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line"><tt class="py-comment"># will be removed.</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"><tt class="py-comment"># @param prefix Namespace prefix.</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line"><tt class="py-comment"># @param uri Namespace uri.  Tags and attributes in this namespace</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"><tt class="py-comment">#     will be serialized with the given prefix, if at all possible.</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line"><tt class="py-comment"># @exception ValueError If the prefix is reserved, or is otherwise</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"><tt class="py-comment">#     invalid.</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line"> </tt>
+<a name="register_namespace"></a><div id="register_namespace-def"><a name="L1029"></a><tt class="py-lineno">1029</tt> <a class="py-toggle" href="#" id="register_namespace-toggle" onclick="return toggle('register_namespace');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#register_namespace">register_namespace</a><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="register_namespace-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="register_namespace-expanded"><a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"ns\d+$"</tt><tt class="py-op">,</tt> <tt id="link-392" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-392', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</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">"Prefix format reserved for internal use"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-393" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-393', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt id="link-394" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-394', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">.</tt><tt id="link-395" 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-395', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op">==</tt> <tt id="link-396" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-396', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt id="link-397" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-397', 'v', 'link-276');">v</a></tt> <tt class="py-op">==</tt> <tt id="link-398" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-398', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt id="link-399" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-399', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">    <tt id="link-400" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-400', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt id="link-401" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-401', 'uri', 'link-192');">uri</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-402" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-402', 'prefix', 'link-194');">prefix</a></tt> </tt>
-</div><a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"><tt id="link-403" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-403', '_namespace_map', 'link-199');">_namespace_map</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">    <tt class="py-comment"># "well-known" namespace prefixes</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/XML/1998/namespace"</tt><tt class="py-op">:</tt> <tt class="py-string">"xml"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/1999/xhtml"</tt><tt class="py-op">:</tt> <tt class="py-string">"html"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</tt><tt class="py-op">:</tt> <tt class="py-string">"rdf"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">    <tt class="py-string">"http://schemas.xmlsoap.org/wsdl/"</tt><tt class="py-op">:</tt> <tt class="py-string">"wsdl"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">    <tt class="py-comment"># xml schema</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/2001/XMLSchema"</tt><tt class="py-op">:</tt> <tt class="py-string">"xs"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/2001/XMLSchema-instance"</tt><tt class="py-op">:</tt> <tt class="py-string">"xsi"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">    <tt class="py-comment"># dublin core</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">    <tt class="py-string">"http://purl.org/dc/elements/1.1/"</tt><tt class="py-op">:</tt> <tt class="py-string">"dc"</tt><tt class="py-op">,</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-op">}</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"> </tt>
-<a name="_raise_serialization_error"></a><div id="_raise_serialization_error-def"><a name="L1051"></a><tt class="py-lineno">1051</tt> <a class="py-toggle" href="#" id="_raise_serialization_error-toggle" onclick="return toggle('_raise_serialization_error');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_raise_serialization_error">_raise_serialization_error</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_raise_serialization_error-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_raise_serialization_error-expanded"><a name="L1052"></a><tt class="py-lineno">1052</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="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-string">"cannot serialize %r (type %s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op">==</tt> <tt id="link-396" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-396', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt id="link-397" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-397', 'v', 'link-276');">v</a></tt> <tt class="py-op">==</tt> <tt id="link-398" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-398', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt id="link-399" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-399', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">    <tt id="link-400" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-400', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt id="link-401" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-401', 'uri', 'link-192');">uri</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-402" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-402', 'prefix', 'link-194');">prefix</a></tt> </tt>
+</div><a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt id="link-403" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-403', '_namespace_map', 'link-199');">_namespace_map</a></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-comment"># "well-known" namespace prefixes</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/XML/1998/namespace"</tt><tt class="py-op">:</tt> <tt class="py-string">"xml"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/1999/xhtml"</tt><tt class="py-op">:</tt> <tt class="py-string">"html"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/1999/02/22-rdf-syntax-ns#"</tt><tt class="py-op">:</tt> <tt class="py-string">"rdf"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">    <tt class="py-string">"http://schemas.xmlsoap.org/wsdl/"</tt><tt class="py-op">:</tt> <tt class="py-string">"wsdl"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">    <tt class="py-comment"># xml schema</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/2001/XMLSchema"</tt><tt class="py-op">:</tt> <tt class="py-string">"xs"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/2001/XMLSchema-instance"</tt><tt class="py-op">:</tt> <tt class="py-string">"xsi"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">    <tt class="py-comment"># dublin core</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">    <tt class="py-string">"http://purl.org/dc/elements/1.1/"</tt><tt class="py-op">:</tt> <tt class="py-string">"dc"</tt><tt class="py-op">,</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-op">}</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"> </tt>
+<a name="_raise_serialization_error"></a><div id="_raise_serialization_error-def"><a name="L1050"></a><tt class="py-lineno">1050</tt> <a class="py-toggle" href="#" id="_raise_serialization_error-toggle" onclick="return toggle('_raise_serialization_error');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_raise_serialization_error">_raise_serialization_error</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_raise_serialization_error-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_raise_serialization_error-expanded"><a name="L1051"></a><tt class="py-lineno">1051</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="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt class="py-string">"cannot serialize %r (type %s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1863,34 +1863,34 @@ 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-406', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
-</div><a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line"> </tt>
-<a name="_encode"></a><div id="_encode-def"><a name="L1056"></a><tt class="py-lineno">1056</tt> <a class="py-toggle" href="#" id="_encode-toggle" onclick="return toggle('_encode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_encode">_encode</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_encode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_encode-expanded"><a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">    <tt class="py-keyword">try</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 id="link-407" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
+</div><a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"> </tt>
+<a name="_encode"></a><div id="_encode-def"><a name="L1055"></a><tt class="py-lineno">1055</tt> <a class="py-toggle" href="#" id="_encode-toggle" onclick="return toggle('_encode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_encode">_encode</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_encode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_encode-expanded"><a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">        <tt class="py-keyword">return</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-407', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-408" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-408', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-409" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</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-409', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line"> </tt>
-<a name="_escape_cdata"></a><div id="_escape_cdata-def"><a name="L1062"></a><tt class="py-lineno">1062</tt> <a class="py-toggle" href="#" id="_escape_cdata-toggle" onclick="return toggle('_escape_cdata');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_cdata">_escape_cdata</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_escape_cdata-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_cdata-expanded"><a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line">    <tt class="py-comment"># escape character data</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">        <tt class="py-comment"># it's worth avoiding do-nothing calls for strings that are</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt class="py-comment"># shorter than 500 character, or so.  assume that's, by far,</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-comment"># the most common case in most applications.</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-410" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line"> </tt>
+<a name="_escape_cdata"></a><div id="_escape_cdata-def"><a name="L1061"></a><tt class="py-lineno">1061</tt> <a class="py-toggle" href="#" id="_escape_cdata-toggle" onclick="return toggle('_escape_cdata');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_cdata">_escape_cdata</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_escape_cdata-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_cdata-expanded"><a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">    <tt class="py-comment"># escape character data</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt class="py-comment"># it's worth avoiding do-nothing calls for strings that are</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">        <tt class="py-comment"># shorter than 500 character, or so.  assume that's, by far,</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt class="py-comment"># the most common case in most applications.</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-410" 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-410', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">            <tt id="link-411" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">            <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
@@ -1899,12 +1899,12 @@ 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-412', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-413" 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-413', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-414" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-414" 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-414', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">            <tt id="link-415" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">            <tt id="link-415" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1913,12 +1913,12 @@ 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-416', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-417', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;lt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-418" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-418" 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-418', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">            <tt id="link-419" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">            <tt id="link-419" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1927,27 +1927,27 @@ 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-420', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-421" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-421', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-422" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-422" 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-422', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-423" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-423', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-424" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-424" 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-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line"> </tt>
-<a name="_escape_attrib"></a><div id="_escape_attrib-def"><a name="L1078"></a><tt class="py-lineno">1078</tt> <a class="py-toggle" href="#" id="_escape_attrib-toggle" onclick="return toggle('_escape_attrib');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_attrib">_escape_attrib</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_escape_attrib-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_attrib-expanded"><a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">    <tt class="py-comment"># escape attribute value</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</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-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-425" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"> </tt>
+<a name="_escape_attrib"></a><div id="_escape_attrib-def"><a name="L1077"></a><tt class="py-lineno">1077</tt> <a class="py-toggle" href="#" id="_escape_attrib-toggle" onclick="return toggle('_escape_attrib');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_attrib">_escape_attrib</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_escape_attrib-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_attrib-expanded"><a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">    <tt class="py-comment"># escape attribute value</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-425" 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-425', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">            <tt id="link-426" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">            <tt id="link-426" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1956,12 +1956,12 @@ 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-427', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-428', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</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">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-429" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</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-429', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">            <tt id="link-430" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">            <tt id="link-430" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1970,12 +1970,12 @@ 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-431', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-432', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;lt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-433" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-433" 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-433', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">            <tt id="link-434" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">            <tt id="link-434" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1984,12 +1984,12 @@ 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-435', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-436', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-437" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-437" 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-437', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">            <tt id="link-438" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">            <tt id="link-438" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -1998,12 +1998,12 @@ 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-439', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-440', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\""</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;quot;"</tt><tt class="py-op">)</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-string">"\n"</tt> <tt class="py-keyword">in</tt> <tt id="link-441" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\n"</tt> <tt class="py-keyword">in</tt> <tt id="link-441" 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-441', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">            <tt id="link-442" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">            <tt id="link-442" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2012,27 +2012,27 @@ 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-443', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-444" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-444', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;#10;"</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">return</tt> <tt id="link-445" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-445" 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-445', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-446" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-446', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</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">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-447" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</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-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-447" 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-447', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line"> </tt>
-<a name="_escape_attrib_html"></a><div id="_escape_attrib_html-def"><a name="L1095"></a><tt class="py-lineno">1095</tt> <a class="py-toggle" href="#" id="_escape_attrib_html-toggle" onclick="return toggle('_escape_attrib_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_attrib_html">_escape_attrib_html</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_escape_attrib_html-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_attrib_html-expanded"><a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">    <tt class="py-comment"># escape attribute value</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">    <tt class="py-keyword">try</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">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-448" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"> </tt>
+<a name="_escape_attrib_html"></a><div id="_escape_attrib_html-def"><a name="L1094"></a><tt class="py-lineno">1094</tt> <a class="py-toggle" href="#" id="_escape_attrib_html-toggle" onclick="return toggle('_escape_attrib_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_attrib_html">_escape_attrib_html</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_escape_attrib_html-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_attrib_html-expanded"><a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">    <tt class="py-comment"># escape attribute value</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-448" 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-448', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">            <tt id="link-449" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">            <tt id="link-449" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2041,12 +2041,12 @@ 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-450', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-451', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</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">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-452" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-452" 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-452', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">            <tt id="link-453" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">            <tt id="link-453" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2055,12 +2055,12 @@ 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-454', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-455', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-456" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-456" 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-456', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">            <tt id="link-457" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">            <tt id="link-457" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2069,108 +2069,108 @@ 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-458', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-459', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\""</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;quot;"</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">return</tt> <tt id="link-460" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-460" 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-460', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-461" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-461', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</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">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</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">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-462" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-462" 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-462', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line"> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"><tt class="py-comment"># Generates a string representation of an XML element, including all</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line"><tt class="py-comment"># subelements.</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line"><tt class="py-comment"># @param element An Element instance.</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional output encoding (default is US-ASCII).</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam method Optional output method ("xml", "html", "text" or</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"><tt class="py-comment">#     "c14n"; default is "xml").</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"><tt class="py-comment"># @return An encoded string containing the XML data.</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn string</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line"> </tt>
-<a name="tostring"></a><div id="tostring-def"><a name="L1121"></a><tt class="py-lineno">1121</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="xml.etree.ElementTree-module.html#tostring">tostring</a><tt class="py-op">(</tt><tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</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="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">    <tt class="py-keyword">class</tt> <tt class="py-def-name">dummy</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">pass</tt> </tt>
-</div><a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">    <tt id="link-463" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-463', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</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-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</tt><tt class="py-op">(</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">file</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-464', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-465" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-465', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-466', 'append', 'link-42');">append</a></tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">    <tt id="link-467" 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
+</div><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line"><tt class="py-comment"># Generates a string representation of an XML element, including all</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"><tt class="py-comment"># subelements.</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"><tt class="py-comment"># @param element An Element instance.</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional output encoding (default is US-ASCII).</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam method Optional output method ("xml", "html", "text" or</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"><tt class="py-comment">#     "c14n"; default is "xml").</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"><tt class="py-comment"># @return An encoded string containing the XML data.</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn string</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line"> </tt>
+<a name="tostring"></a><div id="tostring-def"><a name="L1120"></a><tt class="py-lineno">1120</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="xml.etree.ElementTree-module.html#tostring">tostring</a><tt class="py-op">(</tt><tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</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="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">    <tt class="py-keyword">class</tt> <tt class="py-def-name">dummy</tt><tt class="py-op">:</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">    <tt id="link-463" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-463', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</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-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</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-name">file</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-464', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-465" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-465', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-466', 'append', 'link-42');">append</a></tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">    <tt id="link-467" 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-467', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-468" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-468', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-469" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-469', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt id="link-470" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-470', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt id="link-471" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-471', 'method', 'link-163');">method</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</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">join</tt><tt class="py-op">(</tt><tt id="link-472" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-472', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"><tt class="py-comment"># Generates a string representation of an XML element, including all</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"><tt class="py-comment"># subelements.  The string is returned as a sequence of string fragments.</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"><tt class="py-comment"># @param element An Element instance.</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional output encoding (default is US-ASCII).</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam method Optional output method ("xml", "html", "text" or</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line"><tt class="py-comment">#     "c14n"; default is "xml").</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line"><tt class="py-comment"># @return A sequence object containing the XML data.</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn sequence</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"><tt class="py-comment"># @since 1.3</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"> </tt>
-<a name="tostringlist"></a><div id="tostringlist-def"><a name="L1142"></a><tt class="py-lineno">1142</tt> <a class="py-toggle" href="#" id="tostringlist-toggle" onclick="return toggle('tostringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#tostringlist">tostringlist</a><tt class="py-op">(</tt><tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</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="tostringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tostringlist-expanded"><a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">    <tt class="py-keyword">class</tt> <tt class="py-def-name">dummy</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">pass</tt> </tt>
-</div><a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">    <tt id="link-473" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-473', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">    <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">    <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-474', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-475" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-475', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-476', 'append', 'link-42');">append</a></tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">    <tt id="link-477" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L1127"></a><tt class="py-lineno">1127</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">join</tt><tt class="py-op">(</tt><tt id="link-472" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-472', 'data', 'link-126');">data</a></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="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"><tt class="py-comment"># Generates a string representation of an XML element, including all</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"><tt class="py-comment"># subelements.  The string is returned as a sequence of string fragments.</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"><tt class="py-comment"># @param element An Element instance.</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional output encoding (default is US-ASCII).</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam method Optional output method ("xml", "html", "text" or</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"><tt class="py-comment">#     "c14n"; default is "xml").</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line"><tt class="py-comment"># @return A sequence object containing the XML data.</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn sequence</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line"><tt class="py-comment"># @since 1.3</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"> </tt>
+<a name="tostringlist"></a><div id="tostringlist-def"><a name="L1141"></a><tt class="py-lineno">1141</tt> <a class="py-toggle" href="#" id="tostringlist-toggle" onclick="return toggle('tostringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#tostringlist">tostringlist</a><tt class="py-op">(</tt><tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</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="tostringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tostringlist-expanded"><a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">    <tt class="py-keyword">class</tt> <tt class="py-def-name">dummy</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">pass</tt> </tt>
+</div><a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">    <tt id="link-473" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-473', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</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 class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">    <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-474', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-475" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-475', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-476', 'append', 'link-42');">append</a></tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">    <tt id="link-477" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-477', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-478" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-478', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-479" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-479', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt id="link-480" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-480', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt id="link-481" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-481', 'method', 'link-163');">method</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">    <tt class="py-comment"># FIXME: merge small fragments into larger parts</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-482" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-482', 'data', 'link-126');">data</a></tt> </tt>
-</div><a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-comment"># Writes an element tree or element structure to sys.stdout.  This</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-comment"># function should be used for debugging only.</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"><tt class="py-comment"># &lt;p&gt;</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"><tt class="py-comment"># The exact output format is implementation dependent.  In this</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"><tt class="py-comment"># version, it's written as an ordinary XML file.</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"><tt class="py-comment"># @param elem An element tree or an individual element.</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"> </tt>
-<a name="dump"></a><div id="dump-def"><a name="L1161"></a><tt class="py-lineno">1161</tt> <a class="py-toggle" href="#" id="dump-toggle" onclick="return toggle('dump');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#dump">dump</a><tt class="py-op">(</tt><tt class="py-param">elem</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="dump-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="dump-expanded"><a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">    <tt class="py-comment"># debugging</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</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">elem</tt><tt class="py-op">,</tt> <tt id="link-483" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">    <tt class="py-comment"># FIXME: merge small fragments into larger parts</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-482" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-482', 'data', 'link-126');">data</a></tt> </tt>
+</div><a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-comment"># Writes an element tree or element structure to sys.stdout.  This</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-comment"># function should be used for debugging only.</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-comment"># &lt;p&gt;</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"><tt class="py-comment"># The exact output format is implementation dependent.  In this</tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"><tt class="py-comment"># version, it's written as an ordinary XML file.</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"><tt class="py-comment"># @param elem An element tree or an individual element.</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"> </tt>
+<a name="dump"></a><div id="dump-def"><a name="L1160"></a><tt class="py-lineno">1160</tt> <a class="py-toggle" href="#" id="dump-toggle" onclick="return toggle('dump');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#dump">dump</a><tt class="py-op">(</tt><tt class="py-param">elem</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="dump-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="dump-expanded"><a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">    <tt class="py-comment"># debugging</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</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">elem</tt><tt class="py-op">,</tt> <tt id="link-483" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-483', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">        <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-484" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">        <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-484" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-484', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-485" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-485', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">)</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt id="link-486" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-485" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-485', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">)</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">    <tt id="link-486" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-486', 'tail', 'link-19');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-487" 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-487', 'getroot', 'link-487');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-488" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-488', 'tail', 'link-19');">tail</a></tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-489" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-489" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-489', 'tail', 'link-19');">tail</a></tt> <tt class="py-keyword">or</tt> <tt id="link-490" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-490', 'tail', 'link-19');">tail</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">"\n"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-491', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line"><tt class="py-comment"># parsing</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document into an element tree.</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-comment"># @param source A filename or file object containing XML data.</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"><tt class="py-comment"># @return An ElementTree instance</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line"> </tt>
-<a name="parse"></a><div id="parse-def"><a name="L1181"></a><tt class="py-lineno">1181</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="xml.etree.ElementTree-module.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">source</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="parse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="parse-expanded"><a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-492" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-491', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-comment"># parsing</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line"> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document into an element tree.</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line"><tt class="py-comment"># @param source A filename or file object containing XML data.</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"><tt class="py-comment"># @return An ElementTree instance</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"> </tt>
+<a name="parse"></a><div id="parse-def"><a name="L1180"></a><tt class="py-lineno">1180</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="xml.etree.ElementTree-module.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">source</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="parse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="parse-expanded"><a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-492" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-492', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">    <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-493" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">    <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-493" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -2178,317 +2178,321 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-493', 'parse', 'link-119');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt id="link-494" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-494', 'parser', 'link-121');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
-</div><a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document into an element tree incrementally, and reports</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"><tt class="py-comment"># what's going on to the user.</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"><tt class="py-comment"># @param source A filename or file object containing XML data.</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-comment"># @param events A list of events to report back.  If omitted, only "end"</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-comment">#     events are reported.</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"><tt class="py-comment"># @return A (event, elem) iterator.</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line"> </tt>
-<a name="iterparse"></a><div id="iterparse-def"><a name="L1197"></a><tt class="py-lineno">1197</tt> <a class="py-toggle" href="#" id="iterparse-toggle" onclick="return toggle('iterparse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#iterparse">iterparse</a><tt class="py-op">(</tt><tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</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="iterparse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="iterparse-expanded"><a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">    <tt class="py-name">close_source</tt> <tt class="py-op">=</tt> <tt class="py-name">False</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-keyword">not</tt> <tt id="link-495" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-495', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"read"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">        <tt class="py-name">close_source</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-496" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
+</div><a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document into an element tree incrementally, and reports</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line"><tt class="py-comment"># what's going on to the user.</tt> </tt>
+<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line"><tt class="py-comment"># @param source A filename or file object containing XML data.</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"><tt class="py-comment"># @param events A list of events to report back.  If omitted, only "end"</tt> </tt>
+<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-comment">#     events are reported.</tt> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line"><tt class="py-comment"># @return A (event, elem) iterator.</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"> </tt>
+<a name="iterparse"></a><div id="iterparse-def"><a name="L1196"></a><tt class="py-lineno">1196</tt> <a class="py-toggle" href="#" id="iterparse-toggle" onclick="return toggle('iterparse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#iterparse">iterparse</a><tt class="py-op">(</tt><tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</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="iterparse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="iterparse-expanded"><a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">    <tt class="py-name">close_source</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-495" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-495', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"read"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</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">close_source</tt> <tt class="py-op">=</tt> <tt class="py-name">True</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-keyword">not</tt> <tt id="link-496" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-496', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">        <tt id="link-497" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt id="link-497" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-497', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-498" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-498', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-499" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-499', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-500" class="py-name"><a title="lxml.etree.TreeBuilder
 xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-500', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-501" class="py-name" targets="Class xml.etree.ElementTree._IterParseIterator=xml.etree.ElementTree._IterParseIterator-class.html"><a title="xml.etree.ElementTree._IterParseIterator" class="py-name" href="#" onclick="return doclink('link-501', '_IterParseIterator', 'link-501');">_IterParseIterator</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt id="link-502" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-501" class="py-name" targets="Class xml.etree.ElementTree._IterParseIterator=xml.etree.ElementTree._IterParseIterator-class.html"><a title="xml.etree.ElementTree._IterParseIterator" class="py-name" href="#" onclick="return doclink('link-501', '_IterParseIterator', 'link-501');">_IterParseIterator</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt id="link-502" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-502', 'parser', 'link-121');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-name">close_source</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator"></a><div id="_IterParseIterator-def"><a name="L1206"></a><tt class="py-lineno">1206</tt> <a class="py-toggle" href="#" id="_IterParseIterator-toggle" onclick="return toggle('_IterParseIterator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</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="_IterParseIterator-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_IterParseIterator-expanded"><a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator.__init__"></a><div id="_IterParseIterator.__init__-def"><a name="L1208"></a><tt class="py-lineno">1208</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__init__-toggle" onclick="return toggle('_IterParseIterator.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-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">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">close_source</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IterParseIterator.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__init__-expanded"><a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name" targets="Variable lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-503', '_file', 'link-503');">_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">source</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</tt> <tt class="py-op">=</tt> <tt class="py-name">close_source</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-504" 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-504', 'root', 'link-504');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-505" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator"></a><div id="_IterParseIterator-def"><a name="L1205"></a><tt class="py-lineno">1205</tt> <a class="py-toggle" href="#" id="_IterParseIterator-toggle" onclick="return toggle('_IterParseIterator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</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="_IterParseIterator-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_IterParseIterator-expanded"><a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator.__init__"></a><div id="_IterParseIterator.__init__-def"><a name="L1207"></a><tt class="py-lineno">1207</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__init__-toggle" onclick="return toggle('_IterParseIterator.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-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">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">close_source</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IterParseIterator.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__init__-expanded"><a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name" targets="Variable lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-503', '_file', 'link-503');">_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">source</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</tt> <tt class="py-op">=</tt> <tt class="py-name">close_source</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-504" 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-504', 'root', 'link-504');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-505" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-505', 'parser', 'link-121');">parser</a></tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt class="py-comment"># wire up the parser for event reporting</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt id="link-506" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt class="py-comment"># wire up the parser for event reporting</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt id="link-506" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-506', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">        <tt id="link-507" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-507', 'append', 'link-42');">append</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-508', 'append', 'link-42');">append</a></tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">events</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">            <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"end"</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">for</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">:</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">                    <tt id="link-509" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt id="link-507" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-507', 'append', 'link-42');">append</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-508', 'append', 'link-42');">append</a></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-name">events</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">            <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"end"</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">for</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</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">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">                    <tt id="link-509" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-509', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">                    <tt id="link-510" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">                    <tt id="link-510" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-510', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</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">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-511" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-511', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">                        <tt id="link-512" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-512', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-513" 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-513', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-514" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1225"></a><tt class="py-lineno">1225</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">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-511" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-511', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">                        <tt id="link-512" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-512', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-513" 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-513', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-514" 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-514', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">                    <tt id="link-515" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">                    <tt id="link-515" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-515', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</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="L1231"></a><tt class="py-lineno">1231</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">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</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-42');">append</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">                        <tt id="link-517" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-517', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-518" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-518', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-519" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1229"></a><tt class="py-lineno">1229</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="L1230"></a><tt class="py-lineno">1230</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">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</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-42');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start</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 id="link-517" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-517', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-518" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-518', 'start', 'link-513');">start</a></tt><tt class="py-op">(</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-519', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">                    <tt id="link-520" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">                    <tt id="link-520" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-520', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1236"></a><tt class="py-lineno">1236</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">tag</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-521" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-521', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">                            <tt class="py-param">end</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">                    <tt id="link-522" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-522', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-523" 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-523', 'end', 'link-523');">end</a></tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</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">tag</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-521" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-521', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">                            <tt class="py-param">end</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">                    <tt id="link-522" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-522', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-523" 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-523', 'end', 'link-523');">end</a></tt><tt class="py-op">(</tt><tt id="link-524" 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-524', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">                <tt id="link-525" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">                <tt id="link-525" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-525', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start-ns"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</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">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</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-42');">append</a></tt><tt class="py-op">)</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">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">                        <tt id="link-527" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-527', 'uri', 'link-192');">uri</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-528', 'uri', 'link-192');">uri</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">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</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">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">                        <tt class="py-keyword">pass</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">                    <tt id="link-529" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-529', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-530', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt id="link-531" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-531', 'uri', 'link-192');">uri</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-op">)</tt> </tt>
-</div><a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">                <tt id="link-532" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start-ns"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</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">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</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-42');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">                        <tt id="link-527" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-527', 'uri', 'link-192');">uri</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-528', 'uri', 'link-192');">uri</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">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</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">except</tt> <tt class="py-name">UnicodeError</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">pass</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">                    <tt id="link-529" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-529', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-530', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt id="link-531" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-531', 'uri', 'link-192');">uri</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-op">)</tt> </tt>
+</div><a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">                <tt id="link-532" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-532', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end-ns"</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">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-533" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-533', 'append', 'link-42');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">                    <tt id="link-534" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-534', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">                <tt id="link-535" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end-ns"</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">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-533" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-533', 'append', 'link-42');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">                    <tt id="link-534" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-534', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">                <tt id="link-535" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-535', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</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 class="py-string">"unknown event %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator.next"></a><div id="_IterParseIterator.next-def"><a name="L1255"></a><tt class="py-lineno">1255</tt> <a class="py-toggle" href="#" id="_IterParseIterator.next-toggle" onclick="return toggle('_IterParseIterator.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IterParseIterator.next-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.next-expanded"><a name="L1256"></a><tt class="py-lineno">1256</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="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">            <tt class="py-keyword">try</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">item</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt><tt class="py-op">]</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">item</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">:</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">                <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-536', 'root', 'link-504');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</tt><tt class="py-op">:</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-537', '_file', 'link-503');">_file</a></tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">            <tt class="py-keyword">else</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">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"unknown event %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator.next"></a><div id="_IterParseIterator.next-def"><a name="L1254"></a><tt class="py-lineno">1254</tt> <a class="py-toggle" href="#" id="_IterParseIterator.next-toggle" onclick="return toggle('_IterParseIterator.next');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#next">next</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IterParseIterator.next-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.next-expanded"><a name="L1255"></a><tt class="py-lineno">1255</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="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">                <tt class="py-name">item</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt><tt class="py-op">]</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">item</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">IndexError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">                <tt class="py-keyword">pass</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">:</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">                <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-keyword">is</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">self</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-536', 'root', 'link-504');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</tt><tt class="py-op">:</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-537', '_file', 'link-503');">_file</a></tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-538', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">StopIteration</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">            <tt class="py-comment"># load event buffer</tt> </tt>
-<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">            <tt id="link-539" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-539', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-540', '_file', 'link-503');">_file</a></tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">StopIteration</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">            <tt class="py-comment"># load event buffer</tt> </tt>
+<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">            <tt id="link-539" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-539', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-540', '_file', 'link-503');">_file</a></tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
 lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-541', 'read', 'link-127');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">16384</tt><tt class="py-op">)</tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-542" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-542', 'data', 'link-126');">data</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-543', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-544" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-544', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-542" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-542', 'data', 'link-126');">data</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-543', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-544" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-544', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-545', 'close', 'link-133');">close</a></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">_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line"> </tt>
-<a name="_IterParseIterator.__iter__"></a><div id="_IterParseIterator.__iter__-def"><a name="L1285"></a><tt class="py-lineno">1285</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__iter__-toggle" onclick="return toggle('_IterParseIterator.__iter__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-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="_IterParseIterator.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__iter__-expanded"><a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
-</div></div><a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line"> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  This function can</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"><tt class="py-comment"># be used to embed "XML literals" in Python code.</tt> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line"> </tt>
-<a name="XML"></a><div id="XML-def"><a name="L1298"></a><tt class="py-lineno">1298</tt> <a class="py-toggle" href="#" id="XML-toggle" onclick="return toggle('XML');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XML">XML</a><tt class="py-op">(</tt><tt class="py-param">text</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="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-546" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"> </tt>
+<a name="_IterParseIterator.__iter__"></a><div id="_IterParseIterator.__iter__-def"><a name="L1284"></a><tt class="py-lineno">1284</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__iter__-toggle" onclick="return toggle('_IterParseIterator.__iter__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-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="_IterParseIterator.__iter__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__iter__-expanded"><a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt> </tt>
+</div></div><a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  This function can</tt> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"><tt class="py-comment"># be used to embed "XML literals" in Python code.</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
+<a name="XML"></a><div id="XML-def"><a name="L1297"></a><tt class="py-lineno">1297</tt> <a class="py-toggle" href="#" id="XML-toggle" onclick="return toggle('XML');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XML">XML</a><tt class="py-op">(</tt><tt class="py-param">text</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="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-546" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-546', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">        <tt id="link-547" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt id="link-547" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-547', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-548" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-548', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-549" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-549', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-550" class="py-name"><a title="lxml.etree.TreeBuilder
 xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-550', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</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 id="link-551" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">    <tt id="link-551" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-551', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-552', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-553" 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-553', 'text', 'link-5');">text</a></tt><tt class="py-op">)</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-554" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-554" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-554', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-555" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-555', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"> </tt>
-<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant, and also returns</tt> </tt>
-<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"><tt class="py-comment"># a dictionary which maps from element id:s to elements.</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"><tt class="py-comment"># @return A tuple containing an Element instance and a dictionary.</tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn (Element, dictionary)</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"> </tt>
-<a name="XMLID"></a><div id="XMLID-def"><a name="L1314"></a><tt class="py-lineno">1314</tt> <a class="py-toggle" href="#" id="XMLID-toggle" onclick="return toggle('XMLID');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XMLID">XMLID</a><tt class="py-op">(</tt><tt class="py-param">text</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="XMLID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLID-expanded"><a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-556" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant, and also returns</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line"><tt class="py-comment"># a dictionary which maps from element id:s to elements.</tt> </tt>
+<a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line"><tt class="py-comment"># @return A tuple containing an Element instance and a dictionary.</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn (Element, dictionary)</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"> </tt>
+<a name="XMLID"></a><div id="XMLID-def"><a name="L1313"></a><tt class="py-lineno">1313</tt> <a class="py-toggle" href="#" id="XMLID-toggle" onclick="return toggle('XMLID');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XMLID">XMLID</a><tt class="py-op">(</tt><tt class="py-param">text</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="XMLID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLID-expanded"><a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-556" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-556', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">        <tt id="link-557" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt id="link-557" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-557', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-558" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-558', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-559" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-559', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-560" class="py-name"><a title="lxml.etree.TreeBuilder
 xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-560', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">    <tt id="link-561" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">    <tt id="link-561" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-561', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-562" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-562', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-563" 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-563', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-564" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-564" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-564', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-565" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-565', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">    <tt class="py-name">ids</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.etree._Element.iter
+<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">    <tt class="py-name">ids</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.etree._Element.iter
 lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-566', 'iter', 'link-7');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-567" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">        <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-567" 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-567', 'get', 'link-61');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"id"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">id</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">ids</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> </tt>
-<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">ids</tt> </tt>
-</div><a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line"> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  Same as {@link #XML}.</tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"><tt class="py-comment"># @def fromstring(text)</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"><tt id="link-568" 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
+<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">            <tt class="py-name">ids</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">ids</tt> </tt>
+</div><a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
+<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant.  Same as {@link #XML}.</tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"><tt class="py-comment"># @def fromstring(text)</tt> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"><tt class="py-comment"># @param source A string containing XML data.</tt> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"><tt id="link-568" 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-568', 'fromstring', 'link-568');">fromstring</a></tt> <tt class="py-op">=</tt> <tt id="link-569" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-569', 'XML', 'link-569');">XML</a></tt> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a sequence of string fragments.</tt> </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"><tt class="py-comment"># @param sequence A list or other sequence containing XML data fragments.</tt> </tt>
-<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"><tt class="py-comment"># @since 1.3</tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"> </tt>
-<a name="fromstringlist"></a><div id="fromstringlist-def"><a name="L1346"></a><tt class="py-lineno">1346</tt> <a class="py-toggle" href="#" id="fromstringlist-toggle" onclick="return toggle('fromstringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#fromstringlist">fromstringlist</a><tt class="py-op">(</tt><tt class="py-param">sequence</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="fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstringlist-expanded"><a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-570" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a sequence of string fragments.</tt> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line"><tt class="py-comment"># @param sequence A list or other sequence containing XML data fragments.</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"><tt class="py-comment"># @param parser An optional parser instance.  If not given, the</tt> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"><tt class="py-comment">#     standard {@link XMLParser} parser is used.</tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"><tt class="py-comment"># @since 1.3</tt> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"> </tt>
+<a name="fromstringlist"></a><div id="fromstringlist-def"><a name="L1345"></a><tt class="py-lineno">1345</tt> <a class="py-toggle" href="#" id="fromstringlist-toggle" onclick="return toggle('fromstringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#fromstringlist">fromstringlist</a><tt class="py-op">(</tt><tt class="py-param">sequence</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="fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstringlist-expanded"><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-570" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-570', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt id="link-571" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">        <tt id="link-571" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-571', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-572" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-572', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-573" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-573', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-574" class="py-name"><a title="lxml.etree.TreeBuilder
 xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-574', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</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">for</tt> <tt id="link-575" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-575" 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-575', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sequence</tt><tt class="py-op">:</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">        <tt id="link-576" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt id="link-576" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-576', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-577', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-578" 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-578', 'text', 'link-5');">text</a></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">return</tt> <tt id="link-579" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-579" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-579', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-580', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-comment"># Generic element structure builder.  This builder converts a sequence</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-comment"># of {@link #TreeBuilder.start}, {@link #TreeBuilder.data}, and {@link</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-comment"># #TreeBuilder.end} method calls to a well-formed element structure.</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-comment"># &lt;p&gt;</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-comment"># You can use this class to build an element structure using a custom XML</tt> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"><tt class="py-comment"># parser, or a parser for some other XML-like format.</tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line"><tt class="py-comment"># @param element_factory Optional element factory.  This factory</tt> </tt>
-<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"><tt class="py-comment">#    is called to create new Element instances, as necessary.</tt> </tt>
-<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder"></a><div id="TreeBuilder-def"><a name="L1366"></a><tt class="py-lineno">1366</tt> <a class="py-toggle" href="#" id="TreeBuilder-toggle" onclick="return toggle('TreeBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</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="TreeBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TreeBuilder-expanded"><a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.__init__"></a><div id="TreeBuilder.__init__-def"><a name="L1368"></a><tt class="py-lineno">1368</tt> <a class="py-toggle" href="#" id="TreeBuilder.__init__-toggle" onclick="return toggle('TreeBuilder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-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">element_factory</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="TreeBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.__init__-expanded"><a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># data collector</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># element stack</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># last element</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># true if we're after an end tag</tt> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element_factory</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">            <tt class="py-name">element_factory</tt> <tt class="py-op">=</tt> <tt id="link-581" class="py-name"><a title="lxml.etree.Element
+</div><a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-comment"># Generic element structure builder.  This builder converts a sequence</tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-comment"># of {@link #TreeBuilder.start}, {@link #TreeBuilder.data}, and {@link</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-comment"># #TreeBuilder.end} method calls to a well-formed element structure.</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-comment"># &lt;p&gt;</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-comment"># You can use this class to build an element structure using a custom XML</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-comment"># parser, or a parser for some other XML-like format.</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"><tt class="py-comment"># @param element_factory Optional element factory.  This factory</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line"><tt class="py-comment">#    is called to create new Element instances, as necessary.</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder"></a><div id="TreeBuilder-def"><a name="L1365"></a><tt class="py-lineno">1365</tt> <a class="py-toggle" href="#" id="TreeBuilder-toggle" onclick="return toggle('TreeBuilder');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</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="TreeBuilder-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TreeBuilder-expanded"><a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.__init__"></a><div id="TreeBuilder.__init__-def"><a name="L1367"></a><tt class="py-lineno">1367</tt> <a class="py-toggle" href="#" id="TreeBuilder.__init__-toggle" onclick="return toggle('TreeBuilder.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-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">element_factory</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="TreeBuilder.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.__init__-expanded"><a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># data collector</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># element stack</tt> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># last element</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># true if we're after an end tag</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element_factory</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">            <tt class="py-name">element_factory</tt> <tt class="py-op">=</tt> <tt id="link-581" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-581', 'Element', 'link-14');">Element</a></tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt> <tt class="py-op">=</tt> <tt class="py-name">element_factory</tt> </tt>
-</div><a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">    <tt class="py-comment"># Flushes the builder buffers, and returns the toplevel document</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">    <tt class="py-comment"># element.</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">    <tt class="py-comment"># @return An Element instance.</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.close"></a><div id="TreeBuilder.close-def"><a name="L1384"></a><tt class="py-lineno">1384</tt> <a class="py-toggle" href="#" id="TreeBuilder.close-toggle" onclick="return toggle('TreeBuilder.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.close-expanded"><a name="L1385"></a><tt class="py-lineno">1385</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</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-string">"missing end tags"</tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</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 class="py-string">"missing toplevel element"</tt> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
-</div><a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder._flush"></a><div id="TreeBuilder._flush-def"><a name="L1389"></a><tt class="py-lineno">1389</tt> <a class="py-toggle" href="#" id="TreeBuilder._flush-toggle" onclick="return toggle('TreeBuilder._flush');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#_flush">_flush</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder._flush-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder._flush-expanded"><a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
-<a name="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 class="py-name">_last</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="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">                <tt id="link-582" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt> <tt class="py-op">=</tt> <tt class="py-name">element_factory</tt> </tt>
+</div><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"> </tt>
+<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">    <tt class="py-comment"># Flushes the builder buffers, and returns the toplevel document</tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">    <tt class="py-comment"># element.</tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">    <tt class="py-comment"># @return An Element instance.</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.close"></a><div id="TreeBuilder.close-def"><a name="L1383"></a><tt class="py-lineno">1383</tt> <a class="py-toggle" href="#" id="TreeBuilder.close-toggle" onclick="return toggle('TreeBuilder.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.close-expanded"><a name="L1384"></a><tt class="py-lineno">1384</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">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</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-string">"missing end tags"</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</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 class="py-string">"missing toplevel element"</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 class="py-name">_last</tt> </tt>
+</div><a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder._flush"></a><div id="TreeBuilder._flush-def"><a name="L1388"></a><tt class="py-lineno">1388</tt> <a class="py-toggle" href="#" id="TreeBuilder._flush-toggle" onclick="return toggle('TreeBuilder._flush');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#_flush">_flush</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder._flush-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder._flush-expanded"><a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</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="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">                <tt id="link-582" 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-582', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt> </tt>
-<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 class="py-name">_tail</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">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="lxml.etree._Element.tail
+<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 class="py-name">_tail</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">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-583', 'tail', 'link-19');">tail</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (tail)"</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 class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-584', 'tail', 'link-19');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-585" 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-585', 'text', 'link-5');">text</a></tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="lxml.etree.QName.text
+<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">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-586" 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-586', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (text)"</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="lxml.etree.QName.text
+<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 class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2497,50 +2501,50 @@ 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-588', 'text', 'link-5');">text</a></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 class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-</div><a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">    <tt class="py-comment"># Adds text to the current element.</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">    <tt class="py-comment"># @param data A string.  This should be either an 8-bit string</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">    <tt class="py-comment">#    containing ASCII text, or a Unicode string.</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.data"></a><div id="TreeBuilder.data-def"><a name="L1407"></a><tt class="py-lineno">1407</tt> <a class="py-toggle" href="#" id="TreeBuilder.data-toggle" onclick="return toggle('TreeBuilder.data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#data">data</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-op">:</tt> </tt>
-</div><div id="TreeBuilder.data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.data-expanded"><a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-589" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-589', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-590" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-590', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">    <tt class="py-comment"># Opens a new element.</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">    <tt class="py-comment"># @param attrib A dictionary containing element attributes.</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">    <tt class="py-comment"># @return The opened element.</tt> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.start"></a><div id="TreeBuilder.start-def"><a name="L1418"></a><tt class="py-lineno">1418</tt> <a class="py-toggle" href="#" id="TreeBuilder.start-toggle" onclick="return toggle('TreeBuilder.start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#start">start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder.start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.start-expanded"><a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt><tt class="py-op">(</tt><tt id="link-591" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">    <tt class="py-comment"># Adds text to the current element.</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">    <tt class="py-comment"># @param data A string.  This should be either an 8-bit string</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">    <tt class="py-comment">#    containing ASCII text, or a Unicode string.</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.data"></a><div id="TreeBuilder.data-def"><a name="L1406"></a><tt class="py-lineno">1406</tt> <a class="py-toggle" href="#" id="TreeBuilder.data-toggle" onclick="return toggle('TreeBuilder.data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#data">data</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-op">:</tt> </tt>
+</div><div id="TreeBuilder.data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.data-expanded"><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 class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-589" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-589', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-590" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-590', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">    <tt class="py-comment"># Opens a new element.</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">    <tt class="py-comment"># @param attrib A dictionary containing element attributes.</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">    <tt class="py-comment"># @return The opened element.</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.start"></a><div id="TreeBuilder.start-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="TreeBuilder.start-toggle" onclick="return toggle('TreeBuilder.start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#start">start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder.start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.start-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt><tt class="py-op">(</tt><tt id="link-591" 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-591', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">:</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</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-592" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-592', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-593', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">elem</tt> </tt>
-</div><a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">    <tt class="py-comment"># Closes the current element.</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">    <tt class="py-comment"># @return The closed element.</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line"> </tt>
-<a name="TreeBuilder.end"></a><div id="TreeBuilder.end-def"><a name="L1434"></a><tt class="py-lineno">1434</tt> <a class="py-toggle" href="#" id="TreeBuilder.end-toggle" onclick="return toggle('TreeBuilder.end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#end">end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder.end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.end-expanded"><a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-594" 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-594', 'pop', 'link-594');">pop</a></tt><tt class="py-op">(</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">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">:</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</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-592" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-592', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-593', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">elem</tt> </tt>
+</div><a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">    <tt class="py-comment"># Closes the current element.</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">    <tt class="py-comment"># @param tag The element name.</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">    <tt class="py-comment"># @return The closed element.</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"> </tt>
+<a name="TreeBuilder.end"></a><div id="TreeBuilder.end-def"><a name="L1433"></a><tt class="py-lineno">1433</tt> <a class="py-toggle" href="#" id="TreeBuilder.end-toggle" onclick="return toggle('TreeBuilder.end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#end">end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="TreeBuilder.end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.end-expanded"><a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-594" 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-594', 'pop', 'link-594');">pop</a></tt><tt class="py-op">(</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">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -2551,8 +2555,8 @@ 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-596', 'tag', 'link-1');">tag</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-string">"end tag mismatch (expected %s, got %s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">                   <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-597" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">               <tt class="py-string">"end tag mismatch (expected %s, got %s)"</tt> <tt class="py-op">%</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 class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-597" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -2563,96 +2567,96 @@ 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-598', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">1</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-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
-</div></div><a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"><tt class="py-comment"># Element structure builder for XML source data, based on the</tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line"><tt class="py-comment"># &lt;b&gt;expat&lt;/b&gt; parser.</tt> </tt>
-<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam target Target object.  If omitted, the builder uses an</tt> </tt>
-<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"><tt class="py-comment">#     instance of the standard {@link #TreeBuilder} class.</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam html Predefine HTML entities.  This flag is not supported</tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-comment">#     by the current implementation.</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional encoding.  If given, the value overrides</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-comment">#     the encoding specified in the XML file.</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-comment"># @see #ElementTree</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"><tt class="py-comment"># @see #TreeBuilder</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser"></a><div id="XMLParser-def"><a name="L1456"></a><tt class="py-lineno">1456</tt> <a class="py-toggle" href="#" id="XMLParser-toggle" onclick="return toggle('XMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html">XMLParser</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="XMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLParser-expanded"><a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.__init__"></a><div id="XMLParser.__init__-def"><a name="L1458"></a><tt class="py-lineno">1458</tt> <a class="py-toggle" href="#" id="XMLParser.__init__-toggle" onclick="return toggle('XMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-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">html</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">=</tt><tt class="py-name">None</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="XMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.__init__-expanded"><a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">from</tt> <tt id="link-599" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-599', 'xml', 'link-599');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</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="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">                <tt class="py-keyword">import</tt> <tt class="py-name">pyexpat</tt> <tt class="py-keyword">as</tt> <tt class="py-name">expat</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</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="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">                    <tt class="py-string">"No module named expat; use SimpleXMLTreeBuilder instead"</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt id="link-600" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
+</div></div><a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line"> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"><tt class="py-comment"># Element structure builder for XML source data, based on the</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"><tt class="py-comment"># &lt;b&gt;expat&lt;/b&gt; parser.</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam target Target object.  If omitted, the builder uses an</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line"><tt class="py-comment">#     instance of the standard {@link #TreeBuilder} class.</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam html Predefine HTML entities.  This flag is not supported</tt> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line"><tt class="py-comment">#     by the current implementation.</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-comment"># @keyparam encoding Optional encoding.  If given, the value overrides</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-comment">#     the encoding specified in the XML file.</tt> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-comment"># @see #ElementTree</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-comment"># @see #TreeBuilder</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser"></a><div id="XMLParser-def"><a name="L1455"></a><tt class="py-lineno">1455</tt> <a class="py-toggle" href="#" id="XMLParser-toggle" onclick="return toggle('XMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html">XMLParser</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="XMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLParser-expanded"><a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.__init__"></a><div id="XMLParser.__init__-def"><a name="L1457"></a><tt class="py-lineno">1457</tt> <a class="py-toggle" href="#" id="XMLParser.__init__-toggle" onclick="return toggle('XMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-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">html</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">=</tt><tt class="py-name">None</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="XMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.__init__-expanded"><a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">            <tt class="py-keyword">from</tt> <tt id="link-599" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-599', 'xml', 'link-599');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</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="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                <tt class="py-keyword">import</tt> <tt class="py-name">pyexpat</tt> <tt class="py-keyword">as</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</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="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">                    <tt class="py-string">"No module named expat; use SimpleXMLTreeBuilder instead"</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt id="link-600" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-600', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">ParserCreate</tt><tt class="py-op">(</tt><tt id="link-601" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-601', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"}"</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">if</tt> <tt id="link-602" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-602', 'target', 'link-104');">target</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">            <tt id="link-603" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-603', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt id="link-604" class="py-name"><a title="lxml.etree.TreeBuilder
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-602" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-602', 'target', 'link-104');">target</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">            <tt id="link-603" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-603', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt id="link-604" class="py-name"><a title="lxml.etree.TreeBuilder
 xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-604', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt class="py-comment"># underscored names are provided for compatibility only</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-605" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-comment"># underscored names are provided for compatibility only</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-605" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-605', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-606" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-606', 'parser', 'link-121');">parser</a></tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-607" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-607', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_target</tt> <tt class="py-op">=</tt> <tt id="link-608" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-608', 'target', 'link-104');">target</a></tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-609" class="py-name" targets="Variable lxml.etree.ErrorDomains._names=lxml.etree.ErrorDomains-class.html#_names,Variable lxml.etree.ErrorLevels._names=lxml.etree.ErrorLevels-class.html#_names,Variable lxml.etree.ErrorTypes._names=lxml.etree.ErrorTypes-class.html#_names,Variable lxml.etree.RelaxNGErrorTypes._names=lxml.etree.RelaxNGErrorTypes-class.html#_names"><a title="lxml.etree.ErrorDomains._names
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-607" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-607', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_target</tt> <tt class="py-op">=</tt> <tt id="link-608" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-608', 'target', 'link-104');">target</a></tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-609" class="py-name" targets="Variable lxml.etree.ErrorDomains._names=lxml.etree.ErrorDomains-class.html#_names,Variable lxml.etree.ErrorLevels._names=lxml.etree.ErrorLevels-class.html#_names,Variable lxml.etree.ErrorTypes._names=lxml.etree.ErrorTypes-class.html#_names,Variable lxml.etree.RelaxNGErrorTypes._names=lxml.etree.RelaxNGErrorTypes-class.html#_names"><a title="lxml.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
 lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-609', '_names', 'link-609');">_names</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># name memo cache</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt class="py-comment"># callbacks</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt id="link-610" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-comment"># callbacks</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt id="link-610" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-610', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">DefaultHandlerExpand</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_default</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-611" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt id="link-611" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-611', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt id="link-612" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-612" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-612', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt id="link-613" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt id="link-613" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-613', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt class="py-comment"># optional callbacks</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt id="link-614" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt class="py-comment"># optional callbacks</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-614" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-614', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CommentHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_comment</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt id="link-615" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt id="link-615" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-615', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstructionHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pi</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">        <tt class="py-comment"># let expat do the buffering, if supported</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 class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">buffer_text</tt> <tt class="py-op">=</tt> <tt class="py-number">1</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 class="py-comment"># use new-style attribute handling, if supported</tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">            <tt id="link-616" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-comment"># let expat do the buffering, if supported</tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">buffer_text</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</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="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt class="py-comment"># use new-style attribute handling, if supported</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">            <tt id="link-616" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-616', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</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="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-string">"Expat %d.%d.%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</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="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> <tt class="py-comment"># unknown</tt> </tt>
-</div><a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._raiseerror"></a><div id="XMLParser._raiseerror-def"><a name="L1503"></a><tt class="py-lineno">1503</tt> <a class="py-toggle" href="#" id="XMLParser._raiseerror-toggle" onclick="return toggle('XMLParser._raiseerror');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_raiseerror">_raiseerror</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="XMLParser._raiseerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._raiseerror-expanded"><a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt id="link-617" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
+<a name="L1493"></a><tt class="py-lineno">1493</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="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">version</tt> <tt class="py-op">=</tt> <tt class="py-string">"Expat %d.%d.%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</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="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> <tt class="py-comment"># unknown</tt> </tt>
+</div><a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._raiseerror"></a><div id="XMLParser._raiseerror-def"><a name="L1502"></a><tt class="py-lineno">1502</tt> <a class="py-toggle" href="#" id="XMLParser._raiseerror-toggle" onclick="return toggle('XMLParser._raiseerror');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_raiseerror">_raiseerror</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="XMLParser._raiseerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._raiseerror-expanded"><a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt id="link-617" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
 xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-617', 'ParseError', 'link-617');">ParseError</a></tt><tt class="py-op">(</tt><tt id="link-618" 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-618', 'value', 'link-63');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt id="link-619" class="py-name"><a title="lxml.html.CheckboxGroup.value
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt id="link-619" 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-619', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">code</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt id="link-620" class="py-name"><a title="lxml.html.CheckboxGroup.value
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt id="link-620" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
@@ -2661,50 +2665,50 @@ lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
 lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-621', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> </tt>
-<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
-</div><a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._fixtext"></a><div id="XMLParser._fixtext-def"><a name="L1509"></a><tt class="py-lineno">1509</tt> <a class="py-toggle" href="#" id="XMLParser._fixtext-toggle" onclick="return toggle('XMLParser._fixtext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixtext">_fixtext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._fixtext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixtext-expanded"><a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-comment"># convert text string to ascii, if possible</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-622" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
+</div><a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._fixtext"></a><div id="XMLParser._fixtext-def"><a name="L1508"></a><tt class="py-lineno">1508</tt> <a class="py-toggle" href="#" id="XMLParser._fixtext-toggle" onclick="return toggle('XMLParser._fixtext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixtext">_fixtext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._fixtext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixtext-expanded"><a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-comment"># convert text string to ascii, if possible</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-keyword">try</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">return</tt> <tt id="link-622" 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-622', 'text', 'link-5');">text</a></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>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</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">return</tt> <tt id="link-623" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-623" 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-623', 'text', 'link-5');">text</a></tt> </tt>
-</div><a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._fixname"></a><div id="XMLParser._fixname-def"><a name="L1516"></a><tt class="py-lineno">1516</tt> <a class="py-toggle" href="#" id="XMLParser._fixname-toggle" onclick="return toggle('XMLParser._fixname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixname">_fixname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._fixname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixname-expanded"><a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-comment"># expand qname, and convert name string to ascii, if possible</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">            <tt id="link-624" 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
+</div><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._fixname"></a><div id="XMLParser._fixname-def"><a name="L1515"></a><tt class="py-lineno">1515</tt> <a class="py-toggle" href="#" id="XMLParser._fixname-toggle" onclick="return toggle('XMLParser._fixname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixname">_fixname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._fixname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixname-expanded"><a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-comment"># expand qname, and convert name string to ascii, if possible</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">            <tt id="link-624" 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-624', 'name', 'link-624');">name</a></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.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
 lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-625', '_names', 'link-609');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">            <tt id="link-626" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">            <tt id="link-626" 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-624');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"}"</tt> <tt class="py-keyword">in</tt> <tt id="link-627" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"}"</tt> <tt class="py-keyword">in</tt> <tt id="link-627" 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-624');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">                <tt id="link-628" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1522"></a><tt class="py-lineno">1522</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-628', 'name', 'link-624');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{"</tt> <tt class="py-op">+</tt> <tt id="link-629" 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-629', 'name', 'link-624');">name</a></tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-630" class="py-name"><a title="lxml.etree.ErrorDomains._names
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-630" class="py-name"><a title="lxml.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
 lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-630', '_names', 'link-609');">_names</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-631" class="py-name"><a title="lxml.etree.DTD.name
@@ -2714,15 +2718,15 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
 lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-632', 'name', 'link-624');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-633" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-633" 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-633', 'name', 'link-624');">name</a></tt> </tt>
-</div><a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._start"></a><div id="XMLParser._start-def"><a name="L1527"></a><tt class="py-lineno">1527</tt> <a class="py-toggle" href="#" id="XMLParser._start-toggle" onclick="return toggle('XMLParser._start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start">_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start-expanded"><a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt id="link-634" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._start"></a><div id="XMLParser._start-def"><a name="L1526"></a><tt class="py-lineno">1526</tt> <a class="py-toggle" href="#" id="XMLParser._start-toggle" onclick="return toggle('XMLParser._start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start">_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start-expanded"><a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-634" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -2733,24 +2737,24 @@ 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-635', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt id="link-636" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt id="link-636" 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-636', 'attrib', 'link-17');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</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-637" class="py-name"><a title="lxml.html.CheckboxGroup.value
+<a name="L1531"></a><tt class="py-lineno">1531</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-637" 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-637', 'value', 'link-63');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">.</tt><tt id="link-638" 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-638', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">            <tt id="link-639" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">            <tt id="link-639" 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-639', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</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-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt id="link-640" 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-640', 'value', 'link-63');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</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-641" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-641', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-642" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-642', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-643" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1533"></a><tt class="py-lineno">1533</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-641" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-641', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-642" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-642', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-643" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -2758,11 +2762,11 @@ lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-643', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-644" 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-644', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._start_list"></a><div id="XMLParser._start_list-def"><a name="L1536"></a><tt class="py-lineno">1536</tt> <a class="py-toggle" href="#" id="XMLParser._start_list-toggle" onclick="return toggle('XMLParser._start_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start_list">_start_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._start_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start_list-expanded"><a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-645" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._start_list"></a><div id="XMLParser._start_list-def"><a name="L1535"></a><tt class="py-lineno">1535</tt> <a class="py-toggle" href="#" id="XMLParser._start_list-toggle" onclick="return toggle('XMLParser._start_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start_list">_start_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._start_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start_list-expanded"><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt id="link-645" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -2773,15 +2777,15 @@ 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-646', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt id="link-647" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-647" 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-647', 'attrib', 'link-17');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">:</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">                <tt id="link-648" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">:</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                <tt id="link-648" 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-648', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</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-649" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-649', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-650', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-651" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1543"></a><tt class="py-lineno">1543</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-649" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-649', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-650', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-651" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -2789,79 +2793,79 @@ lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-651', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-652" 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-652', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._data"></a><div id="XMLParser._data-def"><a name="L1546"></a><tt class="py-lineno">1546</tt> <a class="py-toggle" href="#" id="XMLParser._data-toggle" onclick="return toggle('XMLParser._data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_data">_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._data-expanded"><a name="L1547"></a><tt class="py-lineno">1547</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-653" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-653', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-654" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-654', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-655" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._data"></a><div id="XMLParser._data-def"><a name="L1545"></a><tt class="py-lineno">1545</tt> <a class="py-toggle" href="#" id="XMLParser._data-toggle" onclick="return toggle('XMLParser._data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_data">_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._data-expanded"><a name="L1546"></a><tt class="py-lineno">1546</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-653" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-653', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-654" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-654', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-655" 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-655', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._end"></a><div id="XMLParser._end-def"><a name="L1549"></a><tt class="py-lineno">1549</tt> <a class="py-toggle" href="#" id="XMLParser._end-toggle" onclick="return toggle('XMLParser._end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_end">_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._end-expanded"><a name="L1550"></a><tt class="py-lineno">1550</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-656" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-656', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-657', 'end', 'link-523');">end</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt><tt class="py-op">(</tt><tt id="link-658" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._end"></a><div id="XMLParser._end-def"><a name="L1548"></a><tt class="py-lineno">1548</tt> <a class="py-toggle" href="#" id="XMLParser._end-toggle" onclick="return toggle('XMLParser._end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_end">_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._end-expanded"><a name="L1549"></a><tt class="py-lineno">1549</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-656" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-656', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-657', 'end', 'link-523');">end</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt><tt class="py-op">(</tt><tt id="link-658" 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-658', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._comment"></a><div id="XMLParser._comment-def"><a name="L1552"></a><tt class="py-lineno">1552</tt> <a class="py-toggle" href="#" id="XMLParser._comment-toggle" onclick="return toggle('XMLParser._comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_comment">_comment</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-op">:</tt> </tt>
-</div><div id="XMLParser._comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._comment-expanded"><a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">            <tt id="link-659" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-659', 'comment', 'link-659');">comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-660', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-661', 'comment', 'link-659');">comment</a></tt> </tt>
-<a name="L1555"></a><tt class="py-lineno">1555</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="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-662" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-662', 'comment', 'link-659');">comment</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-663" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-663', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._pi"></a><div id="XMLParser._pi-def"><a name="L1560"></a><tt class="py-lineno">1560</tt> <a class="py-toggle" href="#" id="XMLParser._pi-toggle" onclick="return toggle('XMLParser._pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_pi">_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._pi-expanded"><a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">            <tt id="link-664" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-664', 'pi', 'link-664');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-665" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-665', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-666" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-666', 'pi', 'link-664');">pi</a></tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</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="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-667" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-667', 'pi', 'link-664');">pi</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-668" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-668', 'target', 'link-104');">target</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-669" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-669', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser._default"></a><div id="XMLParser._default-def"><a name="L1568"></a><tt class="py-lineno">1568</tt> <a class="py-toggle" href="#" id="XMLParser._default-toggle" onclick="return toggle('XMLParser._default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_default">_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._default-expanded"><a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt id="link-670" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-670', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-671" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._comment"></a><div id="XMLParser._comment-def"><a name="L1551"></a><tt class="py-lineno">1551</tt> <a class="py-toggle" href="#" id="XMLParser._comment-toggle" onclick="return toggle('XMLParser._comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_comment">_comment</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-op">:</tt> </tt>
+</div><div id="XMLParser._comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._comment-expanded"><a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">            <tt id="link-659" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-659', 'comment', 'link-659');">comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-660', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-661', 'comment', 'link-659');">comment</a></tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</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="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-662" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-662', 'comment', 'link-659');">comment</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-663" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-663', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._pi"></a><div id="XMLParser._pi-def"><a name="L1559"></a><tt class="py-lineno">1559</tt> <a class="py-toggle" href="#" id="XMLParser._pi-toggle" onclick="return toggle('XMLParser._pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_pi">_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._pi-expanded"><a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">            <tt id="link-664" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-664', 'pi', 'link-664');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-665" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-665', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-666" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-666', 'pi', 'link-664');">pi</a></tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</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="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-667" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-667', 'pi', 'link-664');">pi</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-668" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-668', 'target', 'link-104');">target</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-669" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-669', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser._default"></a><div id="XMLParser._default-def"><a name="L1567"></a><tt class="py-lineno">1567</tt> <a class="py-toggle" href="#" id="XMLParser._default-toggle" onclick="return toggle('XMLParser._default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_default">_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser._default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._default-expanded"><a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt id="link-670" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-670', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-671" 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-671', 'text', 'link-5');">text</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="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-672" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-672', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&amp;"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">            <tt class="py-comment"># deal with undefined entities</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-673', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-674" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-674', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt><tt class="py-op">[</tt><tt id="link-675" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-672" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-672', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&amp;"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">            <tt class="py-comment"># deal with undefined entities</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-673', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-674" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-674', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt><tt class="py-op">[</tt><tt id="link-675" 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-675', 'text', 'link-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt id="link-676" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-676', 'xml', 'link-599');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">                <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">                    <tt class="py-string">"undefined entity %s: line %d, column %d"</tt> <tt class="py-op">%</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-677" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt id="link-676" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-676', 'xml', 'link-599');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">                <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">                    <tt class="py-string">"undefined entity %s: line %d, column %d"</tt> <tt class="py-op">%</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-677" 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-677', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt><tt class="py-op">,</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt><tt class="py-op">)</tt> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-number">11</tt> <tt class="py-comment"># XML_ERROR_UNDEFINED_ENTITY</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-678" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-678', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">and</tt> <tt id="link-679" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt><tt class="py-op">)</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-number">11</tt> <tt class="py-comment"># XML_ERROR_UNDEFINED_ENTITY</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-678" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-678', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">and</tt> <tt id="link-679" 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-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">9</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;!DOCTYPE"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># inside a doctype declaration</tt> </tt>
-<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</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="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">            <tt class="py-comment"># parse doctype contents</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-680" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-680', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">            <tt id="link-681" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># inside a doctype declaration</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</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="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">            <tt class="py-comment"># parse doctype contents</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-680" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-680', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">            <tt id="link-681" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2870,113 +2874,114 @@ 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-682', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-683" 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-683', 'strip', 'link-683');">strip</a></tt><tt class="py-op">(</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">if</tt> <tt class="py-keyword">not</tt> <tt id="link-684" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-684" 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-684', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-685', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-685', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-686" 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-686', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">            <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">)</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                <tt id="link-687" class="py-name"><a title="lxml.etree._LogEntry.type
+<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">            <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">)</tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                <tt id="link-687" class="py-name"><a title="lxml.etree._LogEntry.type
 lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-687', 'type', 'link-405');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-688" class="py-name"><a title="lxml.etree._LogEntry.type
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-688" class="py-name"><a title="lxml.etree._LogEntry.type
 lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-688', 'type', 'link-405');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"PUBLIC"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                    <tt id="link-689" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                    <tt id="link-689" 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-689', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt id="link-690" class="py-name"><a title="lxml.etree._LogEntry.type
 lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-690', 'type', 'link-405');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-691" class="py-name"><a title="lxml.etree._LogEntry.type
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-691" class="py-name"><a title="lxml.etree._LogEntry.type
 lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-691', 'type', 'link-405');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"SYSTEM"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">                    <tt id="link-692" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">                    <tt id="link-692" 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-692', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt id="link-693" class="py-name"><a title="lxml.etree._LogEntry.type
 lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-693', 'type', 'link-405');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">pubid</tt><tt class="py-op">:</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">pubid</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-694" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-694', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-695', 'target', 'link-104');">target</a></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="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-696', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-697" 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-697', 'doctype', 'link-697');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-698" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">                <tt class="py-keyword">else</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">return</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">pubid</tt><tt class="py-op">:</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">pubid</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-694" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-694', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-695', 'target', 'link-104');">target</a></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="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-696', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-697" 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-697', 'doctype', 'link-697');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-698" 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-698', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</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-699" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-699', 'doctype', 'link-697');">doctype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">:</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                    <tt class="py-comment"># warn about deprecated call</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">(</tt><tt id="link-700" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1609"></a><tt class="py-lineno">1609</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-699" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-699', 'doctype', 'link-697');">doctype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">:</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                    <tt class="py-comment"># warn about deprecated call</tt> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">(</tt><tt id="link-700" 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-700', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-701" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-701', 'doctype', 'link-697');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-702" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-701" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-701', 'doctype', 'link-697');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-702" 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-702', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">    <tt class="py-comment"># (Deprecated) Handles a doctype declaration.</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">    <tt class="py-comment"># @param name Doctype name.</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">    <tt class="py-comment"># @param pubid Public identifier.</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line">    <tt class="py-comment"># @param system System identifier.</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.doctype"></a><div id="XMLParser.doctype-def"><a name="L1623"></a><tt class="py-lineno">1623</tt> <a class="py-toggle" href="#" id="XMLParser.doctype-toggle" onclick="return toggle('XMLParser.doctype');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#doctype">doctype</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-param">pubid</tt><tt class="py-op">,</tt> <tt class="py-param">system</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser.doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.doctype-expanded"><a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt class="py-docstring">"""This method of XMLParser is deprecated."""</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">        <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">            <tt class="py-string">"This method of XMLParser is deprecated.  Define doctype() "</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">            <tt class="py-string">"method on the TreeBuilder target."</tt><tt class="py-op">,</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">            <tt class="py-name">DeprecationWarning</tt><tt class="py-op">,</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">            <tt class="py-op">)</tt> </tt>
-</div><a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">    <tt class="py-comment"># sentinel, if doctype is redefined in a subclass</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">    <tt class="py-name">__doctype</tt> <tt class="py-op">=</tt> <tt id="link-703" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-703', 'doctype', 'link-697');">doctype</a></tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">    <tt class="py-comment"># Feeds data to the parser.</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">    <tt class="py-comment"># @param data Encoded data.</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.feed"></a><div id="XMLParser.feed-def"><a name="L1639"></a><tt class="py-lineno">1639</tt> <a class="py-toggle" href="#" id="XMLParser.feed-toggle" onclick="return toggle('XMLParser.feed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#feed">feed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser.feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.feed-expanded"><a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt><tt class="py-op">(</tt><tt id="link-704" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-704', 'data', 'link-126');">data</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-705" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-705', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-706" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-706', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">    <tt class="py-comment"># Finishes feeding data to the parser.</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">    <tt class="py-comment"># @return An element structure.</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line"> </tt>
-<a name="XMLParser.close"></a><div id="XMLParser.close-def"><a name="L1651"></a><tt class="py-lineno">1651</tt> <a class="py-toggle" href="#" id="XMLParser.close-toggle" onclick="return toggle('XMLParser.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.close-expanded"><a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</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-comment"># end of data</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-707" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-707', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-708" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-708', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-709', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-710" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"> </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 class="py-comment"># (Deprecated) Handles a doctype declaration.</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">    <tt class="py-comment"># @param name Doctype name.</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">    <tt class="py-comment"># @param pubid Public identifier.</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">    <tt class="py-comment"># @param system System identifier.</tt> </tt>
+<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.doctype"></a><div id="XMLParser.doctype-def"><a name="L1622"></a><tt class="py-lineno">1622</tt> <a class="py-toggle" href="#" id="XMLParser.doctype-toggle" onclick="return toggle('XMLParser.doctype');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#doctype">doctype</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-param">pubid</tt><tt class="py-op">,</tt> <tt class="py-param">system</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser.doctype-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.doctype-expanded"><a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt class="py-docstring">"""This method of XMLParser is deprecated."""</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt class="py-name">warnings</tt><tt class="py-op">.</tt><tt class="py-name">warn</tt><tt class="py-op">(</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">            <tt class="py-string">"This method of XMLParser is deprecated.  Define doctype() "</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">            <tt class="py-string">"method on the TreeBuilder target."</tt><tt class="py-op">,</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">            <tt class="py-name">DeprecationWarning</tt><tt class="py-op">,</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">            <tt class="py-op">)</tt> </tt>
+</div><a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">    <tt class="py-comment"># sentinel, if doctype is redefined in a subclass</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">    <tt class="py-name">__doctype</tt> <tt class="py-op">=</tt> <tt id="link-703" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-703', 'doctype', 'link-697');">doctype</a></tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">    <tt class="py-comment"># Feeds data to the parser.</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">    <tt class="py-comment"># @param data Encoded data.</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.feed"></a><div id="XMLParser.feed-def"><a name="L1638"></a><tt class="py-lineno">1638</tt> <a class="py-toggle" href="#" id="XMLParser.feed-toggle" onclick="return toggle('XMLParser.feed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#feed">feed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser.feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.feed-expanded"><a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt><tt class="py-op">(</tt><tt id="link-704" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-704', 'data', 'link-126');">data</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-705" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-705', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-706" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-706', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">    <tt class="py-comment"># Finishes feeding data to the parser.</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">    <tt class="py-comment">#</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">    <tt class="py-comment"># @return An element structure.</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">    <tt class="py-comment"># @defreturn Element</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"> </tt>
+<a name="XMLParser.close"></a><div id="XMLParser.close-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="XMLParser.close-toggle" onclick="return toggle('XMLParser.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="XMLParser.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.close-expanded"><a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">        <tt class="py-keyword">try</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 class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</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-comment"># end of data</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-707" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-707', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-708" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-708', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-709', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-710" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-710', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</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-711" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-711', 'target', 'link-104');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-comment"># get rid of circular references</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
-</div></div><a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"><tt class="py-comment"># compatibility</tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line"><tt class="py-name">XMLTreeBuilder</tt> <tt class="py-op">=</tt> <tt id="link-712" class="py-name"><a title="lxml.etree.XMLParser
+<a name="L1656"></a><tt class="py-lineno">1656</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-711" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-711', 'target', 'link-104');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-comment"># get rid of circular references</tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
+</div></div><a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"><tt class="py-comment"># compatibility</tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"><tt class="py-name">XMLTreeBuilder</tt> <tt class="py-op">=</tt> <tt id="link-712" class="py-name"><a title="lxml.etree.XMLParser
+lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-712', 'XMLParser', 'link-123');">XMLParser</a></tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"><tt class="py-comment"># workaround circular import.</tt> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">ElementC14N</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">    <tt id="link-713" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-713', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">[</tt><tt class="py-string">"c14n"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</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="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<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 class="py-comment"># workaround circular import.</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">ElementC14N</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">    <tt id="link-713" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-713', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">[</tt><tt class="py-string">"c14n"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</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="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -3014,7 +3019,7 @@ 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 Sun Apr 28 21:00:13 2013
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:59 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1461ff329fef7c308c9e7591eeb8c9c913567f44..22719ab4e589626275a8f2db4acb26ef076946e2 100644 (file)
@@ -729,7 +729,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e4fb3afc8ceddcfc36657db0391b99f8864ed7b1..a6858f78869e8aed748afd2b1791f11ca309b7f0 100644 (file)
@@ -423,7 +423,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7f71c9a3fc6b300f7b3b72bc6e2138ae8b8b5b31..66f00639988b113cdfc1eca7eb10b5c2ca1e8fd8 100644 (file)
@@ -192,7 +192,7 @@ exceptions.BaseException --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1265e84cdd4d376617005118b5f5e24c4e2701d8..f1e7fa2b36d005aba473979f19fd80f692cb463d 100644 (file)
@@ -324,7 +324,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c78812437a1e454ce82cb2bc24f8c8fcce24f063..1a56d16ba159eb6a511b6e749a4206726b830970 100644 (file)
@@ -309,7 +309,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 10a149ff8e56c26e2b4c1b46d3e5b3661c4ab2a1..388b248f31300e38e87ebfa683050f417e5eea6b 100644 (file)
@@ -475,7 +475,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8e116aed6a545cfeef5f6184d24cc40955413f27..5068087ee66cfaba9ccf31976b0cbab27d1290c3 100644 (file)
@@ -263,7 +263,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 09831fbcaf2ef569460070f9fa2eddf3a6b4c869..a711d8a2edd8ea42625f7d4f7b799dee17c2634a 100644 (file)
@@ -241,7 +241,7 @@ object --+
 <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
+    Generated by Epydoc 3.0.1 on Sat May 11 23:36:57 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b4e058e56fb7bcd4f59eae8b7e11591d34b8d41d..ab0b45e991cdde59d13f971aefc58334fd4a7071 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -305,7 +305,7 @@ installed using <tt class="docutils literal">dpkg <span class="pre">-i</span></t
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index a68301cf303e126a79af88635d77f6da1d911033..4e0426bbf15582a0f2c587470a90ddfaa90cf4a4 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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,
@@ -94,7 +94,7 @@ includes may not be sufficient.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
diff --git a/doc/html/changes-3.2.0.html b/doc/html/changes-3.2.0.html
deleted file mode 100644 (file)
index 271e387..0000000
+++ /dev/null
@@ -1,2511 +0,0 @@
-<?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 &quot;--with-cython&quot;.  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
-&quot;--without-cython&quot;.</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">&quot;{*}name&quot;</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">&quot;{ns}name&quot;</tt>, <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{ns}*&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{}*&quot;</span></tt>
-and <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.  Note that <tt class="docutils literal">&quot;name&quot;</tt> is equivalent to <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>,
-but <tt class="docutils literal">&quot;*&quot;</tt> is <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</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 &quot;lxml.cssselect&quot; was moved into a separate PyPI
-package called &quot;cssselect&quot;.  To continue using it, you must install
-that package separately.  The &quot;lxml.cssselect&quot; module is still
-available and provides the same interface, provided the &quot;cssselect&quot;
-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.
-&quot;E :pseudo&quot; should parse the same as &quot;E *:pseudo&quot;, not &quot;E:pseudo&quot;.
-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 &quot;descendant&quot; 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
-&quot;&gt;&quot;, &quot;+&quot; and &quot;~&quot; is now correctly ignored. Previously is was parsed as
-a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the same as
-&quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. 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">&quot;div <span class="pre">*:last-child&quot;</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">&lt;option&gt;</tt> tags no longer show up in the
-collected form values.</li>
-<li>Adding/removing <tt class="docutils literal">&lt;option&gt;</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 '&lt;/div&gt;' 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=&quot;val&quot;]</span></tt> and
-<tt class="docutils literal">x <span class="pre">[attr=&quot;val&quot;]</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 &quot;/&quot;).</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 &lt;= 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(&quot;link&quot;)</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 &quot;flat_namespace&quot; 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(&quot;tag[child]&quot;)</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 &quot;STOPPED&quot;, which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 &gt;= 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 &quot;STOPPED&quot;, which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 &gt;= 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">&lt;br&gt;</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=&quot;xml&quot;</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;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">&lt;object&gt;</tt>
-tags weren't recognized.  (Note: plugin-specific link parameters
-still aren't recognized.)  Also, the <tt class="docutils literal">&lt;embed&gt;</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">&lt;tag <span class="pre">xmlns=&quot;...&quot;&gt;</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 &quot;lxml.*.pyx&quot;, such as
-&quot;lxml.etree.pyx&quot;.  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">&lt;&gt;&amp;/&quot;'</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 &quot;NoneType&quot;</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>&quot;deallocating None&quot; 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[&quot;text&quot;]</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 &lt;= 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., &quot;123L&quot;)</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 '&lt;!-- coment --&gt;' and
-'&lt;?pi-target content?&gt;' 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 &quot;/&quot; 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 &quot;xslt.pxi&quot;</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' -&gt; '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 &lt;= 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 &quot;html&quot;</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>
diff --git a/doc/html/changes-3.2.1.html b/doc/html/changes-3.2.1.html
new file mode 100644 (file)
index 0000000..28bc6eb
--- /dev/null
@@ -0,0 +1,2539 @@
+<?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.1 (2013-05-11)</h1>
+<div class="section" id="features-added">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The methods <tt class="docutils literal">apply_templates()</tt> and <tt class="docutils literal">process_children()</tt> of XSLT
+extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
+and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
+strings from the result list.</li>
+</ul>
+</div>
+<div class="section" id="bugs-fixed">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>When moving Elements to another tree, the namespace cleanup mechanism
+no longer drops namespace prefixes from attributes for which it finds
+a default namespace declaration, to prevent them from appearing as
+unnamespaced attributes after serialisation.</li>
+<li>Returning non-type objects from a custom class lookup method could lead
+to a crash.</li>
+<li>Instantiating and using subtypes of Comments and ProcessingInstructions
+crashed.</li>
+</ul>
+</div>
+<div class="section" id="other-changes">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id2">
+<h1>3.2.0 (2013-04-28)</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/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="id5">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id6">
+<h1>3.1.2 (2013-04-12)</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/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="id9">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id10">
+<h1>3.1.1 (2013-03-29)</h1>
+<div class="section" id="id11">
+<h2>Features added</h2>
+</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/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="id13">
+<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="id14">
+<h1>3.1.0 (2013-02-10)</h1>
+<div class="section" id="id15">
+<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="id16">
+<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="id17">
+<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="id18">
+<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="id19">
+<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="id20">
+<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="id21">
+<h1>3.0.2 (2012-12-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>Fix crash during interpreter shutdown by switching to Cython 0.17.3 for building.</li>
+</ul>
+</div>
+<div class="section" id="id24">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id25">
+<h1>3.0.1 (2012-10-14)</h1>
+<div class="section" id="id26">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id27">
+<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="id28">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id29">
+<h1>3.0 (2012-10-08)</h1>
+<div class="section" id="id30">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id31">
+<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="id32">
+<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 &quot;--with-cython&quot;.  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
+&quot;--without-cython&quot;.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2012-09-26">
+<h1>3.0beta1 (2012-09-26)</h1>
+<div class="section" id="id33">
+<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="id34">
+<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="id35">
+<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="id36">
+<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">&quot;{*}name&quot;</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">&quot;{ns}name&quot;</tt>, <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{ns}*&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{}*&quot;</span></tt>
+and <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.  Note that <tt class="docutils literal">&quot;name&quot;</tt> is equivalent to <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>,
+but <tt class="docutils literal">&quot;*&quot;</tt> is <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</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="id37">
+<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="id38">
+<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="id39">
+<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="id40">
+<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="id41">
+<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 &quot;lxml.cssselect&quot; was moved into a separate PyPI
+package called &quot;cssselect&quot;.  To continue using it, you must install
+that package separately.  The &quot;lxml.cssselect&quot; module is still
+available and provides the same interface, provided the &quot;cssselect&quot;
+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="id42">
+<h1>2.3.6 (2012-09-28)</h1>
+<div class="section" id="id43">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id44">
+<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="id45">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id46">
+<h1>2.3.5 (2012-07-31)</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 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="id49">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id50">
+<h1>2.3.4 (2012-03-26)</h1>
+<div class="section" id="id51">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id52">
+<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="id53">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id54">
+<h1>2.3.3 (2012-01-04)</h1>
+<div class="section" id="id55">
+<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="id56">
+<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.
+&quot;E :pseudo&quot; should parse the same as &quot;E *:pseudo&quot;, not &quot;E:pseudo&quot;.
+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="id57">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id58">
+<h1>2.3.2 (2011-11-11)</h1>
+<div class="section" id="id59">
+<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="id60">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fixed the &quot;descendant&quot; 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
+&quot;&gt;&quot;, &quot;+&quot; and &quot;~&quot; is now correctly ignored. Previously is was parsed as
+a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the same as
+&quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. Patch by Simon Sapin.</li>
+</ul>
+</div>
+<div class="section" id="id61">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id62">
+<h1>2.3.1 (2011-09-25)</h1>
+<div class="section" id="id63">
+<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="id64">
+<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">&quot;div <span class="pre">*:last-child&quot;</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">&lt;option&gt;</tt> tags no longer show up in the
+collected form values.</li>
+<li>Adding/removing <tt class="docutils literal">&lt;option&gt;</tt> values to/from a multiple select form
+field properly selects them and unselects them.</li>
+</ul>
+</div>
+<div class="section" id="id65">
+<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="id66">
+<h1>2.3 (2011-02-06)</h1>
+<div class="section" id="id67">
+<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="id68">
+<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="id69">
+<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="id70">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id71">
+<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="id72">
+<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="id73">
+<h2>Features added</h2>
+</div>
+<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 class="section" id="id75">
+<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="id76">
+<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="id77">
+<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 '&lt;/div&gt;' 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=&quot;val&quot;]</span></tt> and
+<tt class="docutils literal">x <span class="pre">[attr=&quot;val&quot;]</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="id78">
+<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="id79">
+<h1>2.2.8 (2010-09-02)</h1>
+<div class="section" id="id80">
+<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="id81">
+<h1>2.2.7 (2010-07-24)</h1>
+<div class="section" id="id82">
+<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="id83">
+<h1>2.2.6 (2010-03-02)</h1>
+<div class="section" id="id84">
+<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="id85">
+<h1>2.2.5 (2010-02-28)</h1>
+<div class="section" id="id86">
+<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 &quot;/&quot;).</li>
+</ul>
+</div>
+<div class="section" id="id87">
+<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="id88">
+<h1>2.2.4 (2009-11-11)</h1>
+<div class="section" id="id89">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Static build of libxml2/libxslt was broken.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id90">
+<h1>2.2.3 (2009-10-30)</h1>
+<div class="section" id="id91">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id92">
+<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="id93">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id94">
+<h1>2.2.2 (2009-06-21)</h1>
+<div class="section" id="id95">
+<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="id96">
+<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 &lt;= 2.0
+behaviour.</li>
+</ul>
+</div>
+<div class="section" id="id97">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id98">
+<h1>2.2.1 (2009-06-02)</h1>
+<div class="section" id="id99">
+<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="id100">
+<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="id101">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id102">
+<h1>2.2 (2009-03-21)</h1>
+<div class="section" id="id103">
+<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="id104">
+<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="id105">
+<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="id106">
+<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="id107">
+<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="id108">
+<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="id109">
+<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="id110">
+<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="id111">
+<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(&quot;link&quot;)</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="id112">
+<h1>2.1.5 (2009-01-06)</h1>
+<div class="section" id="id113">
+<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="id114">
+<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="id115">
+<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="id116">
+<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="id117">
+<h1>2.1.4 (2008-12-12)</h1>
+<div class="section" id="id118">
+<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="id119">
+<h1>2.0.11 (2008-12-12)</h1>
+<div class="section" id="id120">
+<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="id121">
+<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="id122">
+<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="id123">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id124">
+<h1>2.1.3 (2008-11-17)</h1>
+<div class="section" id="id125">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id126">
+<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="id127">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id128">
+<h1>2.0.10 (2008-11-17)</h1>
+<div class="section" id="id129">
+<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="id130">
+<h1>2.1.2 (2008-09-05)</h1>
+<div class="section" id="id131">
+<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="id132">
+<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="id133">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id134">
+<h1>2.0.9 (2008-09-05)</h1>
+<div class="section" id="id135">
+<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="id136">
+<h1>2.1.1 (2008-07-24)</h1>
+<div class="section" id="id137">
+<h2>Features added</h2>
+</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>Encoding problem when including text with ElementInclude under
+Python 3.</li>
+</ul>
+</div>
+<div class="section" id="id139">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id140">
+<h1>2.0.8 (2008-07-24)</h1>
+<div class="section" id="id141">
+<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="id142">
+<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="id143">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id144">
+<h1>2.1 (2008-07-09)</h1>
+<div class="section" id="id145">
+<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="id146">
+<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="id147">
+<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="id148">
+<h1>2.0.7 (2008-06-20)</h1>
+<div class="section" id="id149">
+<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="id150">
+<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="id151">
+<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="id152">
+<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="id153">
+<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 &quot;flat_namespace&quot; 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="id154">
+<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="id155">
+<h1>2.0.6 (2008-05-31)</h1>
+<div class="section" id="id156">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id157">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Incorrect evaluation of <tt class="docutils literal"><span class="pre">el.find(&quot;tag[child]&quot;)</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="id158">
+<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="id159">
+<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="id160">
+<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="id161">
+<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="id162">
+<h1>2.0.5 (2008-05-01)</h1>
+<div class="section" id="id163">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id164">
+<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 &quot;STOPPED&quot;, which
+let some XSLT errors pass silently.</li>
+<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
+</ul>
+</div>
+<div class="section" id="id165">
+<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="id166">
+<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="id167">
+<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 &quot;STOPPED&quot;, which
+let some XSLT errors pass silently.</li>
+<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
+<li>lxml.etree accepted non well-formed namespace prefix names.</li>
+</ul>
+</div>
+<div class="section" id="id168">
+<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="id169">
+<h1>2.0.4 (2008-04-13)</h1>
+<div class="section" id="id170">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id171">
+<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="id172">
+<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="id173">
+<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="id174">
+<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="id175">
+<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="id176">
+<h1>2.0.3 (2008-03-26)</h1>
+<div class="section" id="id177">
+<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="id178">
+<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">&lt;br&gt;</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="id179">
+<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="id180">
+<h1>2.0.2 (2008-02-22)</h1>
+<div class="section" id="id181">
+<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="id182">
+<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="id183">
+<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=&quot;xml&quot;</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="id184">
+<h1>2.0.1 (2008-02-13)</h1>
+<div class="section" id="id185">
+<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="id186">
+<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="id187">
+<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="id188">
+<h1>2.0 (2008-02-01)</h1>
+<div class="section" id="id189">
+<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;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="id190">
+<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">&lt;object&gt;</tt>
+tags weren't recognized.  (Note: plugin-specific link parameters
+still aren't recognized.)  Also, the <tt class="docutils literal">&lt;embed&gt;</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">&lt;tag <span class="pre">xmlns=&quot;...&quot;&gt;</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="id191">
+<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 &quot;lxml.*.pyx&quot;, such as
+&quot;lxml.etree.pyx&quot;.  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">&lt;&gt;&amp;/&quot;'</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 &quot;NoneType&quot;</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="id192">
+<h1>1.3.6 (2007-10-29)</h1>
+<div class="section" id="id193">
+<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="id194">
+<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="id195">
+<h1>1.3.5 (2007-10-22)</h1>
+<div class="section" id="id196">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id197">
+<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="id198">
+<h1>1.3.4 (2007-08-30)</h1>
+<div class="section" id="id199">
+<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="id200">
+<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="id201">
+<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="id202">
+<h1>1.3.3 (2007-07-26)</h1>
+<div class="section" id="id203">
+<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="id204">
+<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="id205">
+<h1>1.3.2 (2007-07-03)</h1>
+<div class="section" id="id206">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id207">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>&quot;deallocating None&quot; crash bug</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id208">
+<h1>1.3.1 (2007-07-02)</h1>
+<div class="section" id="id209">
+<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="id210">
+<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="id211">
+<h1>1.3 (2007-06-24)</h1>
+<div class="section" id="id212">
+<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="id213">
+<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="id214">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>major restructuring in the documentation</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id215">
+<h1>1.2.1 (2007-02-27)</h1>
+<div class="section" id="id216">
+<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[&quot;text&quot;]</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="id217">
+<h1>1.2 (2007-02-20)</h1>
+<div class="section" id="id218">
+<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="id219">
+<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 &lt;= 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="id220">
+<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="id221">
+<h1>1.1.2 (2006-10-30)</h1>
+<div class="section" id="id222">
+<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="id223">
+<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="id224">
+<h1>1.1.1 (2006-09-21)</h1>
+<div class="section" id="id225">
+<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="id226">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</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="id227">
+<h1>1.1 (2006-09-13)</h1>
+<div class="section" id="id228">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Comments and processing instructions return '&lt;!-- coment --&gt;' and
+'&lt;?pi-target content?&gt;' 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 &quot;/&quot; 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="id229">
+<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="id230">
+<h1>1.0.4 (2006-09-09)</h1>
+<div class="section" id="id231">
+<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="id232">
+<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="id233">
+<h1>1.0.3 (2006-08-08)</h1>
+<div class="section" id="id234">
+<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="id235">
+<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="id236">
+<h1>1.0.2 (2006-06-27)</h1>
+<div class="section" id="id237">
+<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="id238">
+<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="id239">
+<h1>1.0.1 (2006-06-09)</h1>
+<div class="section" id="id240">
+<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="id241">
+<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="id242">
+<h1>1.0 (2006-06-01)</h1>
+<div class="section" id="id243">
+<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 &quot;xslt.pxi&quot;</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="id244">
+<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' -&gt; '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 &lt;= 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="id245">
+<h1>0.9.2 (2006-05-10)</h1>
+<div class="section" id="id246">
+<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="id247">
+<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="id248">
+<h1>0.9.1 (2006-03-30)</h1>
+<div class="section" id="id249">
+<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="id250">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory deallocation bug when using XSLT output method &quot;html&quot;</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="id251">
+<h1>0.9 (2006-03-20)</h1>
+<div class="section" id="id252">
+<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="id253">
+<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="id254">
+<h1>0.8 (2005-11-03)</h1>
+<div class="section" id="id255">
+<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="id256">
+<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="id257">
+<h1>0.7 (2005-06-15)</h1>
+<div class="section" id="id258">
+<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="id259">
+<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="id260">
+<h1>0.6 (2005-05-14)</h1>
+<div class="section" id="id261">
+<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="id262">
+<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="id263">
+<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="id264">
+<h1>0.5 (2005-04-08)</h1>
+<p>Initial public release.</p>
+</div>
+</div>
+<div class="footer">
+<hr class="footer" />
+Generated on: 2013-05-11.
+
+</div>
+</body>
+</html>
index 1b6068ea50caeb2b8bd7ff3e187781b6d5e45c64..493763318b8051920ad54ec65346e59e9b2aa043 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -183,7 +183,7 @@ enough to replace a shallow copy in your case.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index e87861285e9d67dbb39fd907845e2b0f08354dfc..96b88f4d704cbb7ea65068660aa79b5bd4b71236 100644 (file)
@@ -8,7 +8,7 @@
 </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 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="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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -72,7 +72,7 @@ Holger Krekel for originally hosting lxml on codespeak.net</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 07b6941f398ffd6e49b242167f978b88fd877dac..5bcfb597400787b0992259f2d1136aca06108d26 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -92,7 +92,7 @@ namespace URIs: the <tt class="docutils literal">CSSSelector</tt> class accepts
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 5464715e5df7bf926416f7e79bde4911f9a9c5f8..a1aeedc3dedf1d2adadd892b06a1a9b2e9d836d2 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -443,7 +443,7 @@ subclasses for elements of this namespace:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index d8685725c9a1e198f1ffe86f7af595833229535d..cd3bfd8e16fd4ca5150473c644014c4f401cf703 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -169,7 +169,7 @@ BeautifulSoup's <a class="reference external" href="http://www.crummy.com/softwa
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index ecb3e2d64f94a6ca1173c52e9e858d3148db5c9d..27b862cd85016b2581fd9831ae11d43ea6021eb2 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -451,9 +451,28 @@ that passes an Element into the <tt class="docutils literal">.apply_templates()<
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">str</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="go">'&lt;?xml version="1.0"?&gt;\n&lt;foo&gt;&lt;CHILD&gt;--xyz--&lt;/CHILD&gt;&lt;/foo&gt;\n'</span>
 </pre></div>
-<p>Note how we applied the templates to a child of the extension element
+<p>Here, we applied the templates to a child of the extension element
 itself, i.e. to an element inside the stylesheet instead of an element
 of the input document.</p>
+<p>The return value of <tt class="docutils literal">.apply_templates()</tt> is always a list.  It may
+contain a mix of elements and strings, collected from the XSLT processing
+result.  If you want to append these values to the output parent, be aware
+that you cannot use the <tt class="docutils literal">.append()</tt> method to add strings.  In many
+cases, you would only be interested in elements anyway, so you can discard
+strings (e.g. formatting whitespace) and append the rest.</p>
+<p>If you want to include string results in the output, you can either build
+an appropriate tree yourself and append that, or you can manually add the
+string values to the current output tree, e.g. by concatenating them with
+the <tt class="docutils literal">.tail</tt> of the last element that was appended.</p>
+<p>Note that you can also let lxml build the result tree for you by passing
+the <tt class="docutils literal">output_parent</tt> into the <tt class="docutils literal">.apply_templates()</tt> method.  In this
+case, the result will be None and all content found by applying templates
+will be appended to the output parent.</p>
+<p>If you do not care about string results at all, e.g. because you already
+know that they will only contain whitespace, you can pass the option
+<tt class="docutils literal">elements_only=True</tt> to the <tt class="docutils literal">.apply_templates()</tt> method, or pass
+<tt class="docutils literal">remove_blank_text=True</tt> to remove only those strings that consist
+entirely of whitespace.</p>
 </div>
 <div class="section" id="working-with-read-only-elements">
 <h2>Working with read-only elements</h2>
@@ -486,7 +505,7 @@ will work:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 6caa3f3fd07d49395d10dc009198602b90204764..302f0799c4190e68457350cbd09e876b3401cd94 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -74,7 +74,7 @@ module.  Note that these are the parser classes provided by html5lib.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 64788a688c047daa2dcc0756d6a6ab6e628f3c3b..df34572ad605542c3ab89409537a46cbba21f3e1 100644 (file)
@@ -10,7 +10,7 @@
 </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 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="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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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">&#187; lxml takes all the pain out of XML. &#171;</a></div>
@@ -57,7 +57,7 @@ customisations and trainings on lxml and fast Python XML processing.</p>
 </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.2.0.pdf">PDF
+<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.2.1.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">
@@ -120,8 +120,8 @@ external C modules, including fast custom element class support.</p>
 Index</a> (PyPI).  It has the source
 that compiles on various platforms.  The source distribution is signed
 with <a class="reference external" href="pubkey.asc">this key</a>.</p>
-<p>The latest version is <a class="reference external" href="/files/lxml-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>
+<p>The latest version is <a class="reference external" href="/files/lxml-3.2.1.tgz">lxml 3.2.1</a>, released 2013-05-11
+(<a class="reference external" href="/changes-3.2.1.html">changes for 3.2.1</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>
@@ -129,7 +129,7 @@ are listed below.</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.2.0.pdf">PDF documentation</a>.</p>
+<a class="reference external" href="lxmldoc-3.2.1.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
@@ -178,7 +178,8 @@ obstacle to using lxml in your codebase.</p>
 <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.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>)</li>
+<li><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>)</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>
@@ -217,7 +218,7 @@ donation is non-refundable.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index e259509149668847a2a5dab913e7f9dc4ca567c2..cc65b8ba0f948f82758ad12a851e452f6d864e3a 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -160,7 +160,7 @@ follow the static build instructions above.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index c0d666740e9b383908540f0c0eff1017bc834ca0..d4d0b4e47420fe069f772848a4f4d9f3c64f0937 100644 (file)
@@ -8,7 +8,7 @@
 </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 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="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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -66,7 +66,7 @@ having to learn new things -- XML is complicated enough.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index fcd4d9c250314e130264e6d8c3772a67e46d19aa..b6b55cc89bc6a6942e9b1a777bd3989d4042c56a 100644 (file)
@@ -11,7 +11,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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" />
@@ -270,7 +270,7 @@ implemented in pure Python.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 3e3750ed7a6e370c8eb19c81592cd693909cd2e8..de523135ad90e935f6843c4a7a14c2c9ca6b22e6 100644 (file)
@@ -9,7 +9,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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" />
@@ -670,7 +670,7 @@ microformat.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 40cad1ec7aa0b54c039aa727e05027146b49e292..f04003b4ef29048cdb03fe18d6ab817baec8efb8 100644 (file)
@@ -9,7 +9,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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" />
@@ -185,7 +185,7 @@ updated to match the attribute name:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">b</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: b</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">notB</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="go">notB</span>
 </pre></div>
@@ -302,7 +302,7 @@ through the E-factory as described above.</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">root</span><span class="o">.</span><span class="n">c</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
     <span class="o">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://ns/}c</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: {http://ns/}c</span>
 </pre></div>
 <p>To access an element in a different namespace than its parent, you can
 use <tt class="docutils literal">getattr()</tt>:</p>
@@ -391,7 +391,7 @@ function:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xml</span> <span class="o">=</span> <span class="s">"&lt;a&gt;&lt;b&gt;test&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;"</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">a</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
-<span class="gr">lxml.etree.XMLSyntaxError: Element 'c'</span>: <span class="n">This element is not expected.</span>
+<span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Element 'c': This element is not expected.</span>
 </pre></div>
 <p>Note that the same works for parse-time DTD validation, except that
 DTDs do not support any data types by design.</p>
@@ -426,13 +426,13 @@ represented by the <tt class="docutils literal">ObjectPath</tt> class:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{not}there</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: {not}there</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"{not}there"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">ValueError: root element does not match</span>: <span class="n">need {not}there, got {http://ns/}root</span>
+<span class="gr">ValueError</span>: <span class="n">root element does not match: need {not}there, got {http://ns/}root</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"root.b[1]"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
@@ -465,13 +465,13 @@ element and only inherit its namespace:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://ns/}unknown</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: {http://ns/}unknown</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">".{http://other/}unknown[1]"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span><span class="o">.</span><span class="n">tag</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://other/}unknown</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: {http://other/}unknown</span>
 </pre></div>
 <p>For convenience, a single dot represents the empty ObjectPath (identity):</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">find</span> <span class="o">=</span> <span class="n">objectify</span><span class="o">.</span><span class="n">ObjectPath</span><span class="p">(</span><span class="s">"."</span><span class="p">)</span>
@@ -487,7 +487,7 @@ element and only inherit its namespace:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">{http://ns/}some</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: {http://ns/}some</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">setattr</span><span class="p">(</span><span class="n">root</span><span class="p">,</span> <span class="s">"my value"</span><span class="p">)</span> <span class="c"># creates children as necessary</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">path</span><span class="o">.</span><span class="n">hasattr</span><span class="p">(</span><span class="n">root</span><span class="p">)</span>
@@ -1056,7 +1056,7 @@ the next step, which is to register the type.  Then you can use it:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">b</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">call_santa</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: call_santa</span>
 </pre></div>
 <p>If you need to specify dependencies between the type check functions, you can
 pass a sequence of type names through the <tt class="docutils literal">before</tt> and <tt class="docutils literal">after</tt> keyword
@@ -1084,7 +1084,7 @@ function defined above:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">root</span><span class="o">.</span><span class="n">a</span><span class="o">.</span><span class="n">call_santa</span><span class="p">()</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AttributeError: no such child</span>: <span class="n">call_santa</span>
+<span class="gr">AttributeError</span>: <span class="n">no such child: call_santa</span>
 </pre></div>
 <p>Be aware, though, that this does not immediately apply to elements to which
 there already is a Python reference.  Their Python class will only be changed
@@ -1149,7 +1149,7 @@ support any XPath expression.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 80ea4443598e481da7f10907391f121be2627a1c..cef8ac9c7a1374c6f1fcc004494821a593c6d921 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -125,7 +125,7 @@ warnings of the last parser run:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">tree</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="s">"&lt;root&gt;</span><span class="se">\n</span><span class="s">&lt;/b&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">lxml.etree.XMLSyntaxError: Opening and ending tag mismatch</span>: <span class="n">root line 1 and b, line 2, column 5</span>
+<span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Opening and ending tag mismatch: root line 1 and b, line 2, column 5</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="k">print</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">error_log</span><span class="p">))</span>
 <span class="go">1</span>
@@ -676,7 +676,7 @@ with UTF-8 is also considerably faster in most cases.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index c2ff716fedfe8a0e05ccd4731b835333547c874e..ba7aca0781c28d8e2c09ef8f2c69d2e5d393cb88 100644 (file)
@@ -11,7 +11,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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" />
@@ -782,7 +782,7 @@ random.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index f6c9beaa445ff6e696e561584a6f077cfabd16c0..0d0114528767e9fd64fb62004b4b1ce8fc16e394 100644 (file)
@@ -8,7 +8,7 @@
 </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 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="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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -217,7 +217,7 @@ operations:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">result</span> <span class="o">=</span> <span class="n">transform</span><span class="p">(</span><span class="n">normal_doc</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">lxml.etree.XSLTApplyError: xsltLoadDocument</span>: <span class="n">read rights for hoi:test denied</span>
+<span class="gr">lxml.etree.XSLTApplyError</span>: <span class="n">xsltLoadDocument: read rights for hoi:test denied</span>
 </pre></div>
 <p>There are a few things to keep in mind:</p>
 <ul class="simple">
@@ -234,7 +234,7 @@ documents or raises exceptions if access is denied.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index ebc924429b2305f191e3bf51b1d5caa993af8174..dff2360ccffbbc2b07c3557e8abbb058b9d42656 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -108,7 +108,7 @@ DOM implementation connot generate SAX events from a DOM tree.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 59b66d241d2ba4c3d9c87a70f74d5f6d76e07ca4..be70b9777b24bf0ce97f05b65062bc4fda63f141 100644 (file)
@@ -8,5 +8,5 @@
    </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 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>
+   <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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/files/">Download files</a></li></ul></div></body>
  </html>
\ No newline at end of file
index f219d57c747292ac0b02294f431edebbb277cdb4..59643714450430ec7ad667ef73d39c78f988a5a8 100644 (file)
@@ -11,7 +11,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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" />
@@ -1141,7 +1141,7 @@ whereas the other two examples would raise a <tt class="docutils literal">StopIt
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index 15728ed448d02383afb036995ecb6c76e434851c..1866c72ad19910c51d07aa04d0168545ac2c9cd5 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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
@@ -70,7 +70,7 @@ schema to be provided:</p>
 will raise an exception:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="s">"&lt;a&gt;no int&lt;/a&gt;"</span><span class="p">,</span> <span class="n">parser</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
-<span class="gr">lxml.etree.XMLSyntaxError: Element 'a'</span>: <span class="n">'no int' is not a valid value of the atomic type 'xs:integer'.</span>
+<span class="gr">lxml.etree.XMLSyntaxError</span>: <span class="n">Element 'a': 'no int' is not a valid value of the atomic type 'xs:integer'.</span>
 </pre></div>
 <p>If you want the parser to succeed regardless of the outcome of the
 validation, you should use a non validating parser and run the
@@ -308,12 +308,12 @@ This is sometimes used in conditional statements:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">assertValid</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">lxml.etree.DocumentInvalid: Element 'c'</span>: <span class="n">This element is not expected. Expected is ( b )., line 1</span>
+<span class="gr">lxml.etree.DocumentInvalid</span>: <span class="n">Element 'c': This element is not expected. Expected is ( b )., line 1</span>
 
 <span class="gp">&gt;&gt;&gt; </span><span class="n">xmlschema</span><span class="o">.</span><span class="n">assert_</span><span class="p">(</span><span class="n">doc2</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">AssertionError: Element 'c'</span>: <span class="n">This element is not expected. Expected is ( b )., line 1</span>
+<span class="gr">AssertionError</span>: <span class="n">Element 'c': This element is not expected. Expected is ( b )., line 1</span>
 </pre></div>
 <p>Error reporting works as for the RelaxNG class:</p>
 <div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">log</span> <span class="o">=</span> <span class="n">xmlschema</span><span class="o">.</span><span class="n">error_log</span>
@@ -536,7 +536,7 @@ reporting during validation.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index f0ea12e3c213e80e7bbc22beaa12123e2017e9d4..5bc5e9fb0e300a0a49167882f763176977c8e559 100644 (file)
@@ -8,7 +8,7 @@
 </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 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>
+<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 1-menu"><li class="menu title"><a href="changes-3.2.1.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="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>
@@ -408,7 +408,7 @@ are not supported by Python will result in an error:</p>
 <span class="gp">&gt;&gt;&gt; </span><span class="nb">unicode</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
-<span class="gr">LookupError: unknown encoding</span>: <span class="n">UCS4</span>
+<span class="gr">LookupError</span>: <span class="n">unknown encoding: UCS4</span>
 </pre></div>
 </div>
 <div class="section" id="stylesheet-parameters">
@@ -589,7 +589,7 @@ If you want to free it from memory, just do:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-04-28.
+Generated on: 2013-05-11.
 
 </div>
 </body>
index fc110fdf30576b3e747b1d85104c2092a4ae8aed..073586347a679eda8d79399689101c2ebe87dbaf 100644 (file)
@@ -157,8 +157,8 @@ 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>`_.
 
-The latest version is `lxml 3.2.0`_, released 2013-04-28
-(`changes for 3.2.0`_).  `Older versions <#old-versions>`_
+The latest version is `lxml 3.2.1`_, released 2013-05-11
+(`changes for 3.2.1`_).  `Older versions <#old-versions>`_
 are listed below.
 
 Please take a look at the
@@ -239,9 +239,11 @@ See the web sites of lxml
 `3.1 <http://lxml.de/3.1/>`_
 and the `latest in-development version <http://lxml.de/dev/>`_.
 
-.. _`PDF documentation`: lxmldoc-3.2.0.pdf
+.. _`PDF documentation`: lxmldoc-3.2.1.pdf
 
-* `lxml 3.1.2`_, released 2013-04-28 (`changes for 3.1.2`_)
+* `lxml 3.2.0`_, released 2013-04-28 (`changes for 3.2.0`_)
+
+* `lxml 3.1.2`_, released 2013-04-12 (`changes for 3.1.2`_)
 
 * `lxml 3.1.1`_, released 2013-03-29 (`changes for 3.1.1`_)
 
@@ -275,6 +277,7 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 
 * `older releases <http://lxml.de/2.3/#old-versions>`_
 
+.. _`lxml 3.2.1`: /files/lxml-3.2.1.tgz
 .. _`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
@@ -294,6 +297,7 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 .. _`lxml 2.3.1`: /files/lxml-2.3.1.tgz
 .. _`lxml 2.3`: /files/lxml-2.3.tgz
 
+.. _`changes for 3.2.1`: /changes-3.2.1.html
 .. _`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
index 9e8852cbe04ddb3365a0b7b2653efc5f9464dcae..a172627c082373ec4f107d35747d75fabe4596d2 100644 (file)
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.2.0
+Version: 3.2.1
 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.2.0.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.1.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.
@@ -37,34 +37,30 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         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.2.0 (2013-04-28)
+        3.2.1 (2013-05-11)
         ==================
         
         Features added
         --------------
         
+        * The methods ``apply_templates()`` and ``process_children()`` of XSLT
+          extension elements have gained two new boolean options ``elements_only``
+          and ``remove_blank_text`` that discard either all strings or whitespace-only
+          strings from the result list.
+        
         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.
+        * When moving Elements to another tree, the namespace cleanup mechanism
+          no longer drops namespace prefixes from attributes for which it finds
+          a default namespace declaration, to prevent them from appearing as
+          unnamespaced attributes after serialisation.
         
-        * LP#971754: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
-          of overwriting the current value.
+        * Returning non-type objects from a custom class lookup method could lead
+          to a crash.
         
-        * LP#715687: lxml.html.clean no longer discards scripts that are explicitly
-          allowed by the user provided whitelist.  Patch by Christine Koppelt.
+        * Instantiating and using subtypes of Comments and ProcessingInstructions
+          crashed.
         
         Other changes
         -------------
index 1e5d801c8479eec6847c105f7735a6faed0eb1bb..220d2c14591b403aed72141dd0fe7e7cd0a3f9df 100644 (file)
@@ -59,7 +59,7 @@ doc/html/FAQ.html
 doc/html/api.html
 doc/html/build.html
 doc/html/capi.html
-doc/html/changes-3.2.0.html
+doc/html/changes-3.2.1.html
 doc/html/compatibility.html
 doc/html/credits.html
 doc/html/cssselect.html
@@ -87,6 +87,10 @@ doc/html/xpathxslt.html
 doc/html/api/abc.ABCMeta-class.html
 doc/html/api/api-objects.txt
 doc/html/api/class-tree.html
+doc/html/api/cssselect.parser.SelectorError-class.html
+doc/html/api/cssselect.parser.SelectorSyntaxError-class.html
+doc/html/api/cssselect.xpath.ExpressionError-class.html
+doc/html/api/cssselect.xpath.XPathExpr-class.html
 doc/html/api/deprecated-index.html
 doc/html/api/epydoc.css
 doc/html/api/exceptions.AssertionError-class.html
index 03814a8a0056e884ba28c8f5614606aa75517ef8..f1ac43c3d69b6bd609f0d75d8e1b4ff92937e92e 100644 (file)
@@ -117,7 +117,11 @@ cdef class CommentBase(_Comment):
         c_doc = _newXMLDoc()
         doc = _documentFactory(c_doc, None)
         self._c_node = _createComment(c_doc, _xcstr(text))
+        if self._c_node is NULL:
+            raise MemoryError()
         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+        _registerProxy(self, doc, self._c_node)
+        self._init()
 
 cdef class PIBase(_ProcessingInstruction):
     u"""All custom Processing Instruction classes must inherit from this one.
@@ -144,7 +148,11 @@ cdef class PIBase(_ProcessingInstruction):
         c_doc = _newXMLDoc()
         doc = _documentFactory(c_doc, None)
         self._c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
+        if self._c_node is NULL:
+            raise MemoryError()
         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+        _registerProxy(self, doc, self._c_node)
+        self._init()
 
 cdef class EntityBase(_Entity):
     u"""All custom Entity classes must inherit from this one.
@@ -171,7 +179,12 @@ cdef class EntityBase(_Entity):
         c_doc = _newXMLDoc()
         doc = _documentFactory(c_doc, None)
         self._c_node = _createEntity(c_doc, c_name)
+        if self._c_node is NULL:
+            raise MemoryError()
         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+        _registerProxy(self, doc, self._c_node)
+        self._init()
+
 
 ################################################################################
 # Element class lookup
@@ -352,7 +365,11 @@ cdef object _attribute_class_lookup(state, _Document doc, xmlNode* c_node):
             c_node, lookup._c_ns, lookup._c_name)
         dict_result = python.PyDict_GetItem(lookup._class_mapping, value)
         if dict_result is not NULL:
-            return <object>dict_result
+            cls = <object>dict_result
+            if not isinstance(cls, type):
+                raise TypeError("class lookup must return class, got %s"
+                                % type(cls))
+            return cls
     return _callLookupFallback(lookup, doc, c_node)
 
 
@@ -423,6 +440,9 @@ cdef object _custom_class_lookup(state, _Document doc, xmlNode* c_node):
 
     cls = lookup.lookup(element_type, doc, ns, name)
     if cls is not None:
+        if not isinstance(cls, type):
+            raise TypeError("class lookup must return class, got %s"
+                            % type(cls))
         return cls
     return _callLookupFallback(lookup, doc, c_node)
 
@@ -493,6 +513,9 @@ cdef object _python_class_lookup(state, _Document doc, tree.xmlNode* c_node):
     _freeReadOnlyProxies(proxy)
 
     if cls is not None:
+        if not isinstance(cls, type):
+            raise TypeError("class lookup must return class, got %s"
+                            % type(cls))
         return cls
     return _callLookupFallback(lookup, doc, c_node)
 
index 390728ec205097a448350332f0a67879854348c4..61a795909dce8e035d834cb63b5d21f17b17f1fe 100644 (file)
@@ -1,3 +1,3 @@
 #ifndef LXML_VERSION_STRING
-#define LXML_VERSION_STRING "3.2.0"
+#define LXML_VERSION_STRING "3.2.1"
 #endif
index d28a5ba5586f41cc7f42c4918b0d02dd03ff13fd..36b7367205303bca85cef9af0a56764ea0d59a23 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.19 on Sun Apr 28 20:49:30 2013 */
+/* Generated by Cython 0.19.1 on Sat May 11 23:34:17 2013 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
     #define CYTHON_INLINE
   #endif
 #endif
+#ifndef CYTHON_RESTRICT
+  #if defined(__GNUC__)
+    #define CYTHON_RESTRICT __restrict__
+  #elif defined(_MSC_VER)
+    #define CYTHON_RESTRICT __restrict
+  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+    #define CYTHON_RESTRICT restrict
+  #else
+    #define CYTHON_RESTRICT
+  #endif
+#endif
 #ifdef NAN
 #define __PYX_NAN() ((float) NAN)
 #else
@@ -792,7 +803,7 @@ struct __pyx_opt_args_4lxml_5etree_16_MultiTagMatcher_cacheTags {
   int force_into_dict;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":179
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":192
  * # Element class lookup
  * 
  * ctypedef public object (*_element_class_lookup_function)(object, _Document, xmlNode*)             # <<<<<<<<<<<<<<
@@ -915,8 +926,8 @@ struct __pyx_obj_4lxml_5etree__ProcessingInstruction {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":122
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":126
+ *         self._init()
  * 
  * cdef class PIBase(_ProcessingInstruction):             # <<<<<<<<<<<<<<
  *     u"""All custom Processing Instruction classes must inherit from this one.
@@ -1084,7 +1095,7 @@ struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":182
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":195
  * 
  * # class to store element class lookup functions
  * cdef public class ElementClassLookup [ type LxmlElementClassLookupType,             # <<<<<<<<<<<<<<
@@ -1261,7 +1272,7 @@ struct __pyx_obj_4lxml_5etree_ETXPath {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":191
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":204
  *         self._lookup_function = NULL # use default lookup
  * 
  * cdef public class FallbackElementClassLookup(ElementClassLookup) \             # <<<<<<<<<<<<<<
@@ -1277,7 +1288,7 @@ struct LxmlFallbackElementClassLookup {
 
 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":379
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":396
  * #  custom class lookup based on node type, namespace, name
  * 
  * cdef class CustomElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
@@ -1546,8 +1557,8 @@ struct __pyx_obj_4lxml_5etree__Entity {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":149
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":157
+ *         self._init()
  * 
  * cdef class EntityBase(_Entity):             # <<<<<<<<<<<<<<
  *     u"""All custom Entity classes must inherit from this one.
@@ -1634,7 +1645,7 @@ struct __pyx_obj_4lxml_5etree__ModifyContentOnlyProxy {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":362
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":379
  * #  per-parser lookup scheme
  * 
  * cdef class ParserBasedElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
@@ -2003,7 +2014,7 @@ struct __pyx_obj_4lxml_5etree__DomainErrorLog {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":312
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":325
  * # attribute based lookup scheme
  * 
  * cdef class AttributeBasedElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
@@ -2193,7 +2204,7 @@ struct __pyx_obj_4lxml_5etree__Attrib {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":233
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":246
  * # default lookup scheme
  * 
  * cdef class ElementDefaultClassLookup(ElementClassLookup):             # <<<<<<<<<<<<<<
@@ -2463,7 +2474,7 @@ struct __pyx_obj_4lxml_5etree__AttribIterator {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":433
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":453
  * # read-only tree based class lookup
  * 
  * cdef class PythonElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
@@ -2646,36 +2657,34 @@ struct __pyx_vtabstruct_4lxml_5etree_RelaxNG {
 };
 static struct __pyx_vtabstruct_4lxml_5etree_RelaxNG *__pyx_vtabptr_4lxml_5etree_RelaxNG;
 
+__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2591
- *         return False
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":204
+ *         self._lookup_function = NULL # use default lookup
  * 
- * cdef class _ElementMatchIterator:             # <<<<<<<<<<<<<<
- *     cdef _Element _node
- *     cdef _node_to_node_function _next_element
+ * cdef public class FallbackElementClassLookup(ElementClassLookup) \             # <<<<<<<<<<<<<<
+ *          [ type LxmlFallbackElementClassLookupType,
+ *            object LxmlFallbackElementClassLookup ]:
  */
 
-struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator {
-  PyObject *(*_initTagMatcher)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *);
-  int (*_storeNext)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *);
+struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup {
+  void (*_setFallback)(struct LxmlFallbackElementClassLookup *, struct LxmlElementClassLookup *);
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
-static PyObject *__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *);
-static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *);
+static struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2640
- *         self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":396
+ * #  custom class lookup based on node type, namespace, name
  * 
- * cdef class SiblingsIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
- *     u"""SiblingsIterator(self, node, tag=None, preceding=False)
- *     Iterates over the siblings of an element.
+ * cdef class CustomElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
+ *     u"""CustomElementClassLookup(self, fallback=None)
+ *     Element class lookup based on a subclass method.
  */
 
-struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator {
-  struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator __pyx_base;
+struct __pyx_vtabstruct_4lxml_5etree_CustomElementClassLookup {
+  struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup __pyx_base;
 };
-static struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator *__pyx_vtabptr_4lxml_5etree_SiblingsIterator;
+static struct __pyx_vtabstruct_4lxml_5etree_CustomElementClassLookup *__pyx_vtabptr_4lxml_5etree_CustomElementClassLookup;
 
 
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1510
@@ -2706,8 +2715,8 @@ struct __pyx_vtabstruct_4lxml_5etree__ProcessingInstruction {
 static struct __pyx_vtabstruct_4lxml_5etree__ProcessingInstruction *__pyx_vtabptr_4lxml_5etree__ProcessingInstruction;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":122
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":126
+ *         self._init()
  * 
  * cdef class PIBase(_ProcessingInstruction):             # <<<<<<<<<<<<<<
  *     u"""All custom Processing Instruction classes must inherit from this one.
@@ -2843,21 +2852,6 @@ static struct __pyx_vtabstruct_4lxml_5etree__XSLTContext *__pyx_vtabptr_4lxml_5e
 static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_register_context(struct __pyx_obj_4lxml_5etree__XSLTContext *, xsltTransformContext *, struct LxmlDocument *);
 static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_free_context(struct __pyx_obj_4lxml_5etree__XSLTContext *);
 
-__PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType;
-
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":191
- *         self._lookup_function = NULL # use default lookup
- * 
- * cdef public class FallbackElementClassLookup(ElementClassLookup) \             # <<<<<<<<<<<<<<
- *          [ type LxmlFallbackElementClassLookupType,
- *            object LxmlFallbackElementClassLookup ]:
- */
-
-struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup {
-  void (*_setFallback)(struct LxmlFallbackElementClassLookup *, struct LxmlElementClassLookup *);
-};
-static struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
-
 
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":101
  * 
@@ -3063,7 +3057,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
 static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchTag(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":312
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":325
  * # attribute based lookup scheme
  * 
  * cdef class AttributeBasedElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
@@ -3093,6 +3087,20 @@ struct __pyx_vtabstruct_4lxml_5etree_iterparse {
 static struct __pyx_vtabstruct_4lxml_5etree_iterparse *__pyx_vtabptr_4lxml_5etree_iterparse;
 
 
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":253
+ * 
+ * 
+ * cdef class XPathElementEvaluator(_XPathEvaluatorBase):             # <<<<<<<<<<<<<<
+ *     u"""XPathElementEvaluator(self, element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
+ *     Create an XPath evaluator for an element.
+ */
+
+struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator {
+  struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase __pyx_base;
+};
+static struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator *__pyx_vtabptr_4lxml_5etree_XPathElementEvaluator;
+
+
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":267
  * # DTD
  * 
@@ -3184,6 +3192,20 @@ struct __pyx_vtabstruct_4lxml_5etree_Schematron {
 static struct __pyx_vtabstruct_4lxml_5etree_Schematron *__pyx_vtabptr_4lxml_5etree_Schematron;
 
 
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":379
+ * #  per-parser lookup scheme
+ * 
+ * cdef class ParserBasedElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
+ *     u"""ParserBasedElementClassLookup(self, fallback=None)
+ *     Element class lookup based on the XML parser.
+ */
+
+struct __pyx_vtabstruct_4lxml_5etree_ParserBasedElementClassLookup {
+  struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup __pyx_base;
+};
+static struct __pyx_vtabstruct_4lxml_5etree_ParserBasedElementClassLookup *__pyx_vtabptr_4lxml_5etree_ParserBasedElementClassLookup;
+
+
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":38
  * # Logging classes
  * 
@@ -3328,18 +3350,35 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
 static void __pyx_f_4lxml_5etree_17_IterparseContext__assureDocGetsFreed(struct __pyx_obj_4lxml_5etree__IterparseContext *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":379
- * #  custom class lookup based on node type, namespace, name
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2591
+ *         return False
  * 
- * cdef class CustomElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
- *     u"""CustomElementClassLookup(self, fallback=None)
- *     Element class lookup based on a subclass method.
+ * cdef class _ElementMatchIterator:             # <<<<<<<<<<<<<<
+ *     cdef _Element _node
+ *     cdef _node_to_node_function _next_element
  */
 
-struct __pyx_vtabstruct_4lxml_5etree_CustomElementClassLookup {
-  struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup __pyx_base;
+struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator {
+  PyObject *(*_initTagMatcher)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *);
+  int (*_storeNext)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *);
 };
-static struct __pyx_vtabstruct_4lxml_5etree_CustomElementClassLookup *__pyx_vtabptr_4lxml_5etree_CustomElementClassLookup;
+static struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
+static PyObject *__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *);
+static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *);
+
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2640
+ *         self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
+ * 
+ * cdef class SiblingsIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
+ *     u"""SiblingsIterator(self, node, tag=None, preceding=False)
+ *     Iterates over the siblings of an element.
+ */
+
+struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator {
+  struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator __pyx_base;
+};
+static struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator *__pyx_vtabptr_4lxml_5etree_SiblingsIterator;
 
 
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":274
@@ -3372,20 +3411,21 @@ static struct __pyx_vtabstruct_4lxml_5etree__AppendOnlyElementProxy *__pyx_vtabp
 static PyObject *__pyx_f_4lxml_5etree_23_AppendOnlyElementProxy_append(struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy *, PyObject *, int __pyx_skip_dispatch);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":695
- * 
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":371
  * @cython.final
- * cdef class _XSLTResultTree(_ElementTree):             # <<<<<<<<<<<<<<
- *     cdef XSLT _xslt
- *     cdef _Document _profile
+ * @cython.internal
+ * cdef class _OpaqueDocumentWrapper(_OpaqueNodeWrapper):             # <<<<<<<<<<<<<<
+ *     cdef int _assertNode(self) except -1:
+ *         u"""This is our way of saying: this proxy is invalid!
  */
 
-struct __pyx_vtabstruct_4lxml_5etree__XSLTResultTree {
-  struct __pyx_vtabstruct_4lxml_5etree__ElementTree __pyx_base;
-  PyObject *(*_saveToStringAndSize)(struct __pyx_obj_4lxml_5etree__XSLTResultTree *, xmlChar **, int *);
+struct __pyx_vtabstruct_4lxml_5etree__OpaqueDocumentWrapper {
+  int (*_assertNode)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *);
+  PyObject *(*append)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *, PyObject *, int __pyx_skip_dispatch);
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XSLTResultTree *__pyx_vtabptr_4lxml_5etree__XSLTResultTree;
-static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(struct __pyx_obj_4lxml_5etree__XSLTResultTree *, xmlChar **, int *);
+static struct __pyx_vtabstruct_4lxml_5etree__OpaqueDocumentWrapper *__pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper;
+static int __pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *);
+static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *, PyObject *, int __pyx_skip_dispatch);
 
 
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2655
@@ -3450,8 +3490,8 @@ static int __pyx_f_4lxml_5etree_20_TargetParserContext__setTarget(struct __pyx_o
 static void __pyx_f_4lxml_5etree_20_TargetParserContext__cleanupTargetParserContext(struct __pyx_obj_4lxml_5etree__TargetParserContext *, xmlDoc *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":149
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":157
+ *         self._init()
  * 
  * cdef class EntityBase(_Entity):             # <<<<<<<<<<<<<<
  *     u"""All custom Entity classes must inherit from this one.
@@ -3647,24 +3687,23 @@ struct __pyx_vtabstruct_4lxml_5etree__ClassNamespaceRegistry {
 static struct __pyx_vtabstruct_4lxml_5etree__ClassNamespaceRegistry *__pyx_vtabptr_4lxml_5etree__ClassNamespaceRegistry;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":371
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":695
+ * 
  * @cython.final
- * @cython.internal
- * cdef class _OpaqueDocumentWrapper(_OpaqueNodeWrapper):             # <<<<<<<<<<<<<<
- *     cdef int _assertNode(self) except -1:
- *         u"""This is our way of saying: this proxy is invalid!
+ * cdef class _XSLTResultTree(_ElementTree):             # <<<<<<<<<<<<<<
+ *     cdef XSLT _xslt
+ *     cdef _Document _profile
  */
 
-struct __pyx_vtabstruct_4lxml_5etree__OpaqueDocumentWrapper {
-  int (*_assertNode)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *);
-  PyObject *(*append)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *, PyObject *, int __pyx_skip_dispatch);
+struct __pyx_vtabstruct_4lxml_5etree__XSLTResultTree {
+  struct __pyx_vtabstruct_4lxml_5etree__ElementTree __pyx_base;
+  PyObject *(*_saveToStringAndSize)(struct __pyx_obj_4lxml_5etree__XSLTResultTree *, xmlChar **, int *);
 };
-static struct __pyx_vtabstruct_4lxml_5etree__OpaqueDocumentWrapper *__pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper;
-static int __pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *);
-static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *, PyObject *, int __pyx_skip_dispatch);
+static struct __pyx_vtabstruct_4lxml_5etree__XSLTResultTree *__pyx_vtabptr_4lxml_5etree__XSLTResultTree;
+static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(struct __pyx_obj_4lxml_5etree__XSLTResultTree *, xmlChar **, int *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":433
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":453
  * # read-only tree based class lookup
  * 
  * cdef class PythonElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
@@ -3678,20 +3717,6 @@ struct __pyx_vtabstruct_4lxml_5etree_PythonElementClassLookup {
 static struct __pyx_vtabstruct_4lxml_5etree_PythonElementClassLookup *__pyx_vtabptr_4lxml_5etree_PythonElementClassLookup;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":253
- * 
- * 
- * cdef class XPathElementEvaluator(_XPathEvaluatorBase):             # <<<<<<<<<<<<<<
- *     u"""XPathElementEvaluator(self, element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
- *     Create an XPath evaluator for an element.
- */
-
-struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator {
-  struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase __pyx_base;
-};
-static struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator *__pyx_vtabptr_4lxml_5etree_XPathElementEvaluator;
-
-
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":330
  * 
  * 
@@ -3864,7 +3889,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribut
  */
 
 struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension {
-  PyObject *(*_collectXSLTResultContent)(struct __pyx_obj_4lxml_5etree_XSLTExtension *, struct __pyx_obj_4lxml_5etree__XSLTContext *, xmlNode *);
+  PyObject *(*_collectXSLTResultContent)(struct __pyx_obj_4lxml_5etree_XSLTExtension *, struct __pyx_obj_4lxml_5etree__XSLTContext *, xmlNode *, int, int);
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension *__pyx_vtabptr_4lxml_5etree_XSLTExtension;
 
@@ -3883,20 +3908,6 @@ struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy {
 static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy *__pyx_vtabptr_4lxml_5etree__ReadOnlyPIProxy;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":362
- * #  per-parser lookup scheme
- * 
- * cdef class ParserBasedElementClassLookup(FallbackElementClassLookup):             # <<<<<<<<<<<<<<
- *     u"""ParserBasedElementClassLookup(self, fallback=None)
- *     Element class lookup based on the XML parser.
- */
-
-struct __pyx_vtabstruct_4lxml_5etree_ParserBasedElementClassLookup {
-  struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup __pyx_base;
-};
-static struct __pyx_vtabstruct_4lxml_5etree_ParserBasedElementClassLookup *__pyx_vtabptr_4lxml_5etree_ParserBasedElementClassLookup;
-
-
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":846
  *     return __findStylesheetByID(doc, id=id)
  * 
@@ -4136,6 +4147,9 @@ static CYTHON_INLINE int __Pyx_PyObject_SetSlice(
         PyObject** py_start, PyObject** py_stop, PyObject** py_slice,
         int has_cstart, int has_cstop, int wraparound);
 
+static void __Pyx_WriteUnraisable(const char *name, int clineno,
+                                  int lineno, const char *filename); /*proto*/
+
 static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
 
 static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void);
@@ -4335,6 +4349,8 @@ static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, trav
 
 static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_dealloc);
 
+static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
+
 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /*proto*/
 
 #define __Pyx_CyFunction_USED 1
@@ -4453,9 +4469,6 @@ static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
 
 static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
 
-static void __Pyx_WriteUnraisable(const char *name, int clineno,
-                                  int lineno, const char *filename); /*proto*/
-
 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
 
 #define __Pyx_Generator_USED
@@ -4489,8 +4502,6 @@ static int __Pyx_check_binary_version(void);
 
 static int __Pyx_ExportFunction(const char *name, void (*f)(void), const char *sig); /*proto*/
 
-static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
-
 typedef struct {
     int code_line;
     PyCodeObject* code_object;
@@ -4566,121 +4577,121 @@ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
 /* Module declarations from 'lxml.includes.schematron' */
 
 /* Module declarations from 'lxml.etree' */
-static PyTypeObject *__pyx_ptype_4lxml_5etree__TempStore = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ExceptionContext = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__Document = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__Element = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__BaseParser = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_QName = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__LogEntry = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__BaseErrorLog = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ListErrorLog = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ErrorLogContext = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ErrorLog = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__DomainErrorLog = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__RotatingErrorLog = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_PyErrorLog = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_DocInfo = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__FeedParser = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XMLParser = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ETCompatXMLParser = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__Element = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree___ContentOnlyElement = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__Comment = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__ProcessingInstruction = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__Entity = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementTree = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__Attrib = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__AttribIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementTagMatcher = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__MultiTagMatcher = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementMatchIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementChildIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_SiblingsIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_AncestorsIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementTextIterator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_CDATA = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyPIProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyEntityProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyElementProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__OpaqueNodeWrapper = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__OpaqueDocumentWrapper = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ModifyContentOnlyPIProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ModifyContentOnlyEntityProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__AppendOnlyElementProxy = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementBase = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_CommentBase = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree_PIBase = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_EntityBase = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementClassLookup = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_FallbackElementClassLookup = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementDefaultClassLookup = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_AttributeBasedElementClassLookup = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ParserBasedElementClassLookup = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_CustomElementClassLookup = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_PythonElementClassLookup = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTProcessingInstruction = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__NamespaceRegistry = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ClassNamespaceRegistry = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementNamespaceClassLookup = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__FunctionNamespaceRegistry = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__XPathFunctionNamespaceRegistry = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__InputDocument = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_Resolver = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__FileReaderContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__BaseErrorLog = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementTagMatcher = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XSLT = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementClassLookup = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__ResolverRegistry = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__SaxParserTarget = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_TreeBuilder = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__XPathEvaluatorBase = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XPathElementEvaluator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__Comment = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__MultiTagMatcher = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XPath = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ETXPath = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_FallbackElementClassLookup = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_CustomElementClassLookup = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__IncrementalFileWriter = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyElementProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_CommentBase = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTQuotedStringParam = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__BaseContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__DTDElementDecl = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XSLTExtension = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ExceptionContext = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__ResolverContext = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__ParserContext = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__SaxParserContext = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__TargetParserContext = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ParserSchemaValidationContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_Resolver = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__XPathContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__Entity = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_EntityBase = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XInclude = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__Document = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__InputDocument = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementTree = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ParserBasedElementClassLookup = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__Validator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XMLSchema = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ParserDictionaryContext = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__FileReaderContext = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__FeedParser = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XMLParser = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ETCompatXMLParser = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_HTMLParser = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__SaxParserTarget = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_TreeBuilder = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_RelaxNG = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__LogEntry = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__PythonSaxParserTarget = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__FilelikeWriter = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_CDATA = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree_xmlfile = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__IncrementalFileWriter = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__FileWriterElement = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__DTDElementContentDecl = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__IterparseContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ListErrorLog = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ErrorLog = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyPIProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTResultTree = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementTextIterator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementIterator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementBase = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_PyErrorLog = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_DTD = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree_iterparse = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct_2_iterelements = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTResolverContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ParserDictionaryContext = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree_iterwalk = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__DomainErrorLog = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_AttributeBasedElementClassLookup = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_DocInfo = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__DTDAttributeDecl = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_XMLSchema = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementMatchIterator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_AncestorsIterator = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__IDDict = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XInclude = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__ExsltRegExp = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__BaseContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementNamespaceClassLookup = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__AppendOnlyElementProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ModifyContentOnlyEntityProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ReadOnlyEntityProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__FileWriterElement = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__MemDebug = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__Attrib = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementDefaultClassLookup = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__ElementUnicodeResult = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__XPathContext = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__XPathEvaluatorBase = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XPathElementEvaluator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XPath = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_ETXPath = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTResolverContext = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ExsltRegExp = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_QName = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__TempStore = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__OpaqueNodeWrapper = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__FilelikeWriter = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__OpaqueDocumentWrapper = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_Schematron = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ErrorLogContext = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree_XSLTAccessControl = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTContext = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTQuotedStringParam = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XSLT = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTResultTree = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__XSLTProcessingInstruction = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_XSLTExtension = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__DTDElementContentDecl = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__DTDAttributeDecl = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__DTDElementDecl = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_SiblingsIterator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_HTMLParser = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ModifyContentOnlyPIProxy = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ClassNamespaceRegistry = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__ParserSchemaValidationContext = 0;
 static PyTypeObject *__pyx_ptype_4lxml_5etree__DTDEntityDecl = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_DTD = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_RelaxNG = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree_Schematron = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree__MemDebug = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct_2_iterelements = 0;
-static PyTypeObject *__pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__AttribIterator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_PythonElementClassLookup = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree_ElementChildIterator = 0;
+static PyTypeObject *__pyx_ptype_4lxml_5etree__RotatingErrorLog = 0;
 static PyObject *__pyx_v_4lxml_5etree__unicode = 0;
 static PyObject *__pyx_v_4lxml_5etree_os_path_abspath = 0;
 static PyObject *__pyx_v_4lxml_5etree_BytesIO = 0;
@@ -5041,10 +5052,10 @@ static PyObject *__pyx_builtin_staticmethod;
 static PyObject *__pyx_builtin_ValueError;
 static PyObject *__pyx_builtin_super;
 static PyObject *__pyx_builtin_MemoryError;
+static PyObject *__pyx_builtin_range;
 static PyObject *__pyx_builtin_id;
 static PyObject *__pyx_builtin_TypeError;
 static PyObject *__pyx_builtin_sorted;
-static PyObject *__pyx_builtin_range;
 static PyObject *__pyx_builtin_KeyError;
 static PyObject *__pyx_builtin_xrange;
 static PyObject *__pyx_builtin_UnicodeEncodeError;
@@ -5531,8 +5542,8 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile_2__del__(struc
 static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(struct __pyx_obj_4lxml_5etree__XSLTProcessingInstruction *__pyx_v_self, PyObject *__pyx_v_parser); /* proto */
 static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct __pyx_obj_4lxml_5etree__XSLTProcessingInstruction *__pyx_v_self, PyObject *__pyx_v_key, PyObject *__pyx_v_value); /* proto */
 static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_execute(CYTHON_UNUSED struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_context, CYTHON_UNUSED PyObject *__pyx_v_self_node, CYTHON_UNUSED PyObject *__pyx_v_input_node, CYTHON_UNUSED PyObject *__pyx_v_output_parent); /* proto */
-static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_node, PyObject *__pyx_v_output_parent); /* proto */
-static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_output_parent); /* proto */
+static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_node, PyObject *__pyx_v_output_parent, PyObject *__pyx_v_elements_only, PyObject *__pyx_v_remove_blank_text); /* proto */
+static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_output_parent, PyObject *__pyx_v_elements_only, PyObject *__pyx_v_remove_blank_text); /* proto */
 static int __pyx_pf_4lxml_5etree_10_Validator___cinit__(struct __pyx_obj_4lxml_5etree__Validator *__pyx_v_self); /* proto */
 static PyObject *__pyx_pf_4lxml_5etree_10_Validator_2validate(struct __pyx_obj_4lxml_5etree__Validator *__pyx_v_self, PyObject *__pyx_v_etree); /* proto */
 static PyObject *__pyx_pf_4lxml_5etree_10_Validator_4assertValid(struct __pyx_obj_4lxml_5etree__Validator *__pyx_v_self, PyObject *__pyx_v_etree); /* proto */
@@ -5600,121 +5611,121 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_2blocks_used(CYTHON_UNUSED str
 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__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__Element(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__XSLTProcessingInstruction(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__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__FileReaderContext(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__ElementTagMatcher(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_ElementDepthFirstIterator(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__ResolverRegistry(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__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___pyx_scope_struct_1_iterattributes(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__MultiTagMatcher(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_FallbackElementClassLookup(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__IncrementalFileWriter(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__ReadOnlyElementProxy(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__XSLTQuotedStringParam(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__XSLTContext(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_XSLTExtension(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__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_Resolver(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__Entity(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_XInclude(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__InputDocument(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__ModifyContentOnlyProxy(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__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_RelaxNG(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__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_CDATA(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__DTDElementContentDecl(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__ListErrorLog(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__ReadOnlyPIProxy(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_ElementTextIterator(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_ElementBase(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_DTD(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___pyx_scope_struct_2_iterelements(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__ParserDictionaryContext(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__DomainErrorLog(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_DocInfo(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_XMLSchema(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_AncestorsIterator(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_ElementNamespaceClassLookup(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__ModifyContentOnlyEntityProxy(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__FileWriterElement(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__Attrib(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__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__ExsltRegExp(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___pyx_scope_struct_3_iterentities(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__TempStore(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__FilelikeWriter(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_Schematron(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_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_SiblingsIterator(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__ModifyContentOnlyPIProxy(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__ParserSchemaValidationContext(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 PyObject *__pyx_tp_new_4lxml_5etree__AttribIterator(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_ElementChildIterator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_5etree__RotatingErrorLog(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[] = ".";
@@ -5830,337 +5841,338 @@ 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_152[] = "class lookup must return class, got %s";
+static char __pyx_k_154[] = "Name not registered.";
+static char __pyx_k_155[] = "NamespaceRegistryError";
+static char __pyx_k_156[] = "Registered element classes must be subtypes of ElementBase";
+static char __pyx_k_157[] = "Namespace(%r)";
+static char __pyx_k_158[] = "Registered functions must be callable.";
+static char __pyx_k_159[] = "extensions must have non empty names";
+static char __pyx_k_160[] = "FunctionNamespace(%r)";
+static char __pyx_k_161[] = "argument must be a byte string or unicode string";
+static char __pyx_k_162[] = "Argument is not a file-like object";
+static char __pyx_k_163[] = "_ParserDictionaryContext";
+static char __pyx_k_164[] = "<test/>";
+static char __pyx_k_165[] = "UTF-16LE";
+static char __pyx_k_166[] = "UTF-16BE";
+static char __pyx_k_167[] = "UCS-4LE";
+static char __pyx_k_168[] = "UCS-4BE";
+static char __pyx_k_169[] = "reading from file-like objects must return byte strings or unicode strings";
+static char __pyx_k_170[] = "parser locking failed";
+static char __pyx_k_171[] = "Error reading file '%s': %s";
+static char __pyx_k_172[] = "Error reading '%s'";
+static char __pyx_k_173[] = "Document is not well formed";
+static char __pyx_k_174[] = "line %d: %s";
+static char __pyx_k_175[] = "WAR_UNDECLARED_ENTITY";
+static char __pyx_k_176[] = "ERR_UNDECLARED_ENTITY";
+static char __pyx_k_177[] = "This class cannot be instantiated";
+static char __pyx_k_178[] = "unknown encoding: '%s'";
+static char __pyx_k_179[] = "libxml2 %d.%d.%d";
+static char __pyx_k_180[] = "set_element_class_lookup";
+static char __pyx_k_181[] = "string is too long to parse it with libxml2";
+static char __pyx_k_182[] = "Unicode parsing is not supported on this platform";
+static char __pyx_k_183[] = "Parsing requires string data";
+static char __pyx_k_184[] = "no element found";
+static char __pyx_k_218[] = "cannot parse from '%s'";
+static char __pyx_k_219[] = "Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.";
+static char __pyx_k_221[] = "can only parse strings";
+static char __pyx_k_222[] = "internal error (tail)";
+static char __pyx_k_223[] = "internal error (text)";
+static char __pyx_k_224[] = "missing end tags";
+static char __pyx_k_225[] = "missing toplevel element";
+static char __pyx_k_226[] = "end tag mismatch (expected %s, got %s)";
+static char __pyx_k_227[] = "unknown output method %r";
+static char __pyx_k_228[] = "Error during serialisation (out of memory?)";
+static char __pyx_k_229[] = "utf-8";
+static char __pyx_k_231[] = "C14N failed";
+static char __pyx_k_232[] = "unknown error %d";
+static char __pyx_k_233[] = "1.0";
+static char __pyx_k_234[] = "<?xml version='";
+static char __pyx_k_235[] = "' encoding='";
+static char __pyx_k_236[] = "' standalone='no'?>\n";
+static char __pyx_k_237[] = "' standalone='yes'?>\n";
+static char __pyx_k_238[] = "'?>\n";
+static char __pyx_k_239[] = "<!DOCTYPE ";
+static char __pyx_k_240[] = " PUBLIC \"";
+static char __pyx_k_241[] = "\" \"";
+static char __pyx_k_242[] = " SYSTEM \"";
+static char __pyx_k_243[] = "\"";
+static char __pyx_k_244[] = ">\n";
+static char __pyx_k_245[] = " [\n";
+static char __pyx_k_246[] = "]>\n";
+static char __pyx_k_247[] = "Could not create I/O writer context.";
+static char __pyx_k_248[] = "File is already closed";
+static char __pyx_k_249[] = "File or filename expected, got '%s'";
+static char __pyx_k_251[] = "XML declaration already written";
+static char __pyx_k_253[] = "DOCTYPE already written or cannot write it here";
+static char __pyx_k_255[] = ":";
+static char __pyx_k_256[] = "cannot append trailing element to complete XML document";
+static char __pyx_k_258[] = "<";
+static char __pyx_k_259[] = ">";
+static char __pyx_k_260[] = "=\"";
+static char __pyx_k_261[] = "not in an element";
+static char __pyx_k_265[] = "inconsistent exit action in context manager";
+static char __pyx_k_268[] = "</";
+static char __pyx_k_271[] = "got invalid input value of type %s, expected string or Element";
+static char __pyx_k_272[] = "no content written";
+static char __pyx_k_274[] = "pending open tags on close";
+static char __pyx_k_276[] = "start-ns";
+static char __pyx_k_277[] = "end-ns";
+static char __pyx_k_278[] = "invalid event name '%s'";
+static char __pyx_k_293[] = "iterparse parsers cannot be copied";
+static char __pyx_k_295[] = "reading file objects must return bytes objects";
+static char __pyx_k_301[] = "//*[string(@id)]";
+static char __pyx_k_304[] = "No ID dictionary available.";
+static char __pyx_k_305[] = "key not found.";
+static char __pyx_k_306[] = "ID attribute not found.";
+static char __pyx_k_309[] = "XInclude instance not initialised";
+static char __pyx_k_310[] = "XPath evaluator not initialised";
+static char __pyx_k_311[] = "XInclude processing failed";
+static char __pyx_k_312[] = "empty namespace prefix is not supported in XPath";
+static char __pyx_k_313[] = "setting default namespace is not supported in XPath";
+static char __pyx_k_314[] = "empty prefix is not supported in XPath";
+static char __pyx_k_315[] = "XPath context is only usable during the evaluation";
+static char __pyx_k_316[] = "no context node";
+static char __pyx_k_317[] = "document-external context nodes are not supported";
+static char __pyx_k_318[] = "document context is missing";
+static char __pyx_k_322[] = "http://exslt.org/regular-expressions";
+static char __pyx_k_323[] = "Non-Element values not supported at this point - got %r";
+static char __pyx_k_324[] = "text-root";
+static char __pyx_k_325[] = "This is not a supported node-set result: %r";
+static char __pyx_k_326[] = "Unknown return type: %s";
+static char __pyx_k_327[] = "Undefined xpath result";
+static char __pyx_k_328[] = "Unknown xpath result %s";
+static char __pyx_k_329[] = "Not yet implemented result node type: %d";
+static char __pyx_k_330[] = "_ElementStringResult";
+static char __pyx_k_331[] = "XPath function '%s' not found";
+static char __pyx_k_332[] = "This version of libxml2 has a known XPath bug. Use it at your own risk.";
+static char __pyx_k_334[] = "XPath evaluator locking failed";
+static char __pyx_k_335[] = "Error in xpath expression";
+static char __pyx_k_338[] = "XPath context not initialised";
+static char __pyx_k_347[] = "__xpp%02d";
+static char __pyx_k_350[] = "string://__STRING__XSLT__/";
+static char __pyx_k_351[] = "Cannot resolve URI %s";
+static char __pyx_k_352[] = "%s(%s)";
+static char __pyx_k_353[] = ", ";
+static char __pyx_k_354[] = "%s=%r";
+static char __pyx_k_355[] = "extensions must not have empty namespaces";
+static char __pyx_k_357[] = "string://__STRING__XSLT__/%d.xslt";
+static char __pyx_k_359[] = "Cannot parse stylesheet";
+static char __pyx_k_360[] = "cannot set a maximum stylesheet traversal depth < 0";
+static char __pyx_k_364[] = "XSLT stylesheet not initialised";
+static char __pyx_k_365[] = "Error applying stylesheet, line %d";
+static char __pyx_k_366[] = "Error applying stylesheet";
+static char __pyx_k_367[] = "//xsl:stylesheet[@xml:id = $id]";
+static char __pyx_k_369[] = "http://www.w3.org/1999/XSL/Transform";
+static char __pyx_k_370[] = "PI lacks content";
+static char __pyx_k_371[] = "malformed PI attributes";
+static char __pyx_k_372[] = "reference to non-existing embedded stylesheet";
+static char __pyx_k_373[] = "ambiguous reference to embedded stylesheet";
+static char __pyx_k_374[] = "only setting the 'href' attribute is supported on XSLT-PIs";
+static char __pyx_k_375[] = "Invalid URL, must not contain '\"' or '>'";
+static char __pyx_k_376[] = " href=\"%s\"";
+static char __pyx_k_379[] = "XSLT context not initialised";
+static char __pyx_k_380[] = "fake-parent";
+static char __pyx_k_383[] = "unsupported XSLT result type: %d";
+static char __pyx_k_384[] = "extension element %s not found";
+static char __pyx_k_386[] = "Error executing extension element '%s': %s";
+static char __pyx_k_387[] = "Error executing extension element '%s'";
+static char __pyx_k_388[] = "Error during XSLT extension element evaluation";
+static char __pyx_k_389[] = "Document does not comply with schema";
+static char __pyx_k_390[] = "invalid DTD proxy at %s";
+static char __pyx_k_391[] = "<%s.%s object name=%r type=%r occur=%r at 0x%x>";
+static char __pyx_k_392[] = "<%s.%s object name=%r elemname=%r prefix=%r type=%r default=%r default_value=%r at 0x%x>";
+static char __pyx_k_393[] = "<%s.%s object name=%r prefix=%r type=%r at 0x%x>";
+static char __pyx_k_394[] = "<%s.%s object name=%r at 0x%x>";
+static char __pyx_k_396[] = "file must be a filename or file-like object";
+static char __pyx_k_398[] = "either filename or external ID required";
+static char __pyx_k_399[] = "error parsing DTD";
+static char __pyx_k_400[] = "DTD not initialised";
+static char __pyx_k_401[] = "Failed to create validation context";
+static char __pyx_k_404[] = "Internal error in DTD validation";
+static char __pyx_k_406[] = "http://relaxng.org/ns/structure/1.0";
+static char __pyx_k_407[] = "Document is not Relax NG";
+static char __pyx_k_409[] = "No tree or file given";
+static char __pyx_k_410[] = "Document is not parsable as Relax NG";
+static char __pyx_k_411[] = "Document is not valid Relax NG";
+static char __pyx_k_412[] = "RelaxNG instance not initialised";
+static char __pyx_k_413[] = "RelaxNGValidateError";
+static char __pyx_k_414[] = "Internal error in Relax NG validation";
+static char __pyx_k_416[] = "http://www.w3.org/2001/XMLSchema";
+static char __pyx_k_417[] = "Document is not XML Schema";
+static char __pyx_k_418[] = "Document is not valid XML Schema";
+static char __pyx_k_419[] = "Schema instance not initialised";
+static char __pyx_k_420[] = "XMLSchemaValidateError";
+static char __pyx_k_421[] = "Internal error in XML Schema validation.";
+static char __pyx_k_422[] = "_ParserSchemaValidationContext not initialised";
+static char __pyx_k_423[] = "lxml.etree was compiled without Schematron support.";
+static char __pyx_k_425[] = "SchematronParseError";
+static char __pyx_k_427[] = "Document is not a valid Schematron schema";
+static char __pyx_k_428[] = "Schematron instance not initialised";
+static char __pyx_k_430[] = "SchematronValidateError";
+static char __pyx_k_431[] = "Internal error in Schematron validation";
+static char __pyx_k_432[] = ".memorylist";
+static char __pyx_k_433[] = "getfilesystemencoding";
+static char __pyx_k_434[] = "Failed to create file %s";
+static char __pyx_k_435[] = ".memorydump";
+static char __pyx_k_436[] = "The error log of the last parser run.\n        ";
+static char __pyx_k_437[] = "The custom resolver registry of this parser.";
+static char __pyx_k_438[] = "The version of the underlying XML parser.";
+static char __pyx_k_439[] = "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_440[] = "Element tag\n        ";
+static char __pyx_k_441[] = "Element attribute dictionary. Where possible, use get(), set(),\n        keys(), values() and items() to access element attributes.\n        ";
+static char __pyx_k_442[] = "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_443[] = "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_444[] = "Namespace prefix or None.\n        ";
+static char __pyx_k_445[] = "Original line number as found by the parser or None if unknown.\n        ";
+static char __pyx_k_446[] = "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_447[] = "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_448[] = "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_449[] = "Namespace prefix for extension functions.";
+static char __pyx_k_450[] = "The log of errors and warnings of an XSLT execution.";
+static char __pyx_k_451[] = "The literal XPath expression.\n        ";
+static char __pyx_k_452[] = "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_453[] = "The parser that was used to parse the document in this ElementTree.\n        ";
+static char __pyx_k_454[] = "The log of validation errors and warnings.";
+static char __pyx_k_455[] = "The name of the error domain.  See lxml.etree.ErrorDomains\n        ";
+static char __pyx_k_456[] = "The name of the error type.  See lxml.etree.ErrorTypes\n        ";
+static char __pyx_k_457[] = "The name of the error level.  See lxml.etree.ErrorLevels\n        ";
+static char __pyx_k_458[] = "Return an ElementTree with profiling data for the stylesheet run.\n        ";
+static char __pyx_k_459[] = "The error log of the last (or current) parser run.\n        ";
+static char __pyx_k_460[] = "Returns the name of the root node as defined by the DOCTYPE.";
+static char __pyx_k_461[] = "Returns the public ID of the DOCTYPE.";
+static char __pyx_k_462[] = "Returns the system ID of the DOCTYPE.";
+static char __pyx_k_463[] = "Returns the XML version as declared by the document.";
+static char __pyx_k_464[] = "Returns the encoding name as declared by the document.";
+static char __pyx_k_465[] = "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_466[] = "The source URL of the document (or None if unknown).";
+static char __pyx_k_467[] = "Returns a DOCTYPE declaration string for the document.";
+static char __pyx_k_468[] = "Returns a DTD validator based on the internal subset of the document.";
+static char __pyx_k_469[] = "Returns a DTD validator based on the external subset of the document.";
+static char __pyx_k_470[] = "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_471[] = "The access control configuration as a map of options.";
+static char __pyx_k_472[] = "The ``lxml.etree`` module implements the extended ElementTree API\nfor XML.\n";
+static char __pyx_k_473[] = "restructuredtext en";
+static char __pyx_k_474[] = "AttributeBasedElementClassLookup";
+static char __pyx_k_475[] = "CustomElementClassLookup";
+static char __pyx_k_476[] = "ElementDefaultClassLookup";
+static char __pyx_k_477[] = "ElementNamespaceClassLookup";
+static char __pyx_k_478[] = "FallbackElementClassLookup";
+static char __pyx_k_479[] = "LIBXML_COMPILED_VERSION";
+static char __pyx_k_480[] = "LIBXSLT_COMPILED_VERSION";
+static char __pyx_k_481[] = "ParserBasedElementClassLookup";
+static char __pyx_k_482[] = "PythonElementClassLookup";
+static char __pyx_k_483[] = "XPathDocumentEvaluator";
+static char __pyx_k_484[] = "use_global_python_log";
+static char __pyx_k_485[] = "os.path";
+static char __pyx_k_487[] = "http://www.w3.org/XML/1998/namespace";
+static char __pyx_k_488[] = "http://www.w3.org/1999/xhtml";
+static char __pyx_k_489[] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+static char __pyx_k_490[] = "http://schemas.xmlsoap.org/wsdl/";
+static char __pyx_k_491[] = "http://www.w3.org/2001/XMLSchema-instance";
+static char __pyx_k_492[] = "http://purl.org/dc/elements/1.1/";
+static char __pyx_k_493[] = "http://codespeak.net/lxml/objectify/pytype";
+static char __pyx_k_494[] = "ns\\d+$";
+static char __pyx_k_498[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx";
+static char __pyx_k_499[] = "lxml.etree";
+static char __pyx_k_503[] = "LxmlError.__init__";
+static char __pyx_k_504[] = "Main exception base class for lxml.  All other exceptions inherit from\n    this one.\n    ";
+static char __pyx_k_505[] = "Base class for all syntax errors.\n    ";
+static char __pyx_k_506[] = "Error during C14N serialisation.\n    ";
+static char __pyx_k_507[] = "[0-9]+";
+static char __pyx_k_509[] = "Unknown libxml2 version: %s";
+static char __pyx_k_510[] = "^(<\\?xml[^>]+)\\s+encoding\\s*=\\s*[\"\\'][^\"\\']*[\"\\'](\\s*\\?>|)";
+static char __pyx_k_512[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi";
+static char __pyx_k_516[] = "Libxml2 error levels";
+static char __pyx_k_517[] = "Libxml2 error domains";
+static char __pyx_k_518[] = "Libxml2 error types";
+static char __pyx_k_519[] = "Libxml2 RelaxNG error types";
+static char __pyx_k_520[] = "NONE=0\nWARNING=1\nERROR=2\nFATAL=3\n";
+static char __pyx_k_522[] = "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_524[] = "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_525[] = "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_526[] = "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_527[] = "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_528[] = "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_529[] = "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_530[] = "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_531[] = "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_532[] = "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_533[] = "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_534[] = "I18N_NO_OUTPUT=6004\nCHECK_=6005\nCHECK_X=6006\n";
+static char __pyx_k_536[] = "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_538[] = "\\s+(\\w+)\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
+static char __pyx_k_573[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi";
+static char __pyx_k_574[] = "Base class of lxml registry errors.\n    ";
+static char __pyx_k_575[] = "Error registering a namespace extension.\n    ";
+static char __pyx_k_578[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi";
+static char __pyx_k_581[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi";
+static char __pyx_k_582[] = "ParseError.__init__";
+static char __pyx_k_583[] = "Syntax error while parsing an XML document.\n\n    For compatibility with ElementTree 1.3 and later.\n    ";
+static char __pyx_k_584[] = "Syntax error while parsing an XML document.\n    ";
+static char __pyx_k_585[] = "Internal lxml parser error.\n    ";
+static char __pyx_k_591[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi";
+static char __pyx_k_592[] = "_TargetParserResult.__init__";
+static char __pyx_k_593[] = "A libxml2 error that occurred during serialisation.\n    ";
+static char __pyx_k_596[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi";
+static char __pyx_k_601[] = "Error during XInclude processing.\n    ";
+static char __pyx_k_604[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi";
+static char __pyx_k_611[] = "Base class of all XPath errors.\n    ";
+static char __pyx_k_612[] = "Error during XPath evaluation.\n    ";
+static char __pyx_k_613[] = "Internal error looking up an XPath extension function.\n    ";
+static char __pyx_k_614[] = "Error handling an XPath result.\n    ";
+static char __pyx_k_615[] = "Number encoding";
+static char __pyx_k_616[] = "Unfinished literal";
+static char __pyx_k_617[] = "Start of literal";
+static char __pyx_k_618[] = "Expected $ for variable reference";
+static char __pyx_k_619[] = "Undefined variable";
+static char __pyx_k_620[] = "Invalid predicate";
+static char __pyx_k_621[] = "Invalid expression";
+static char __pyx_k_622[] = "Missing closing curly brace";
+static char __pyx_k_623[] = "Unregistered function";
+static char __pyx_k_624[] = "Invalid operand";
+static char __pyx_k_625[] = "Invalid type";
+static char __pyx_k_626[] = "Invalid number of arguments";
+static char __pyx_k_627[] = "Invalid context size";
+static char __pyx_k_628[] = "Invalid context position";
+static char __pyx_k_629[] = "Memory allocation error";
+static char __pyx_k_630[] = "Syntax error";
+static char __pyx_k_631[] = "Resource error";
+static char __pyx_k_632[] = "Sub resource error";
+static char __pyx_k_633[] = "Undefined namespace prefix";
+static char __pyx_k_634[] = "Encoding error";
+static char __pyx_k_635[] = "Char out of XML range";
+static char __pyx_k_636[] = "Invalid or incomplete context";
+static char __pyx_k_637[] = "Stack usage error";
+static char __pyx_k_640[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi";
+static char __pyx_k_643[] = "_ElementStringResult.getparent";
+static char __pyx_k_646[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi";
+static char __pyx_k_647[] = "(\"[^\"]*\")|('[^']*')";
+static char __pyx_k_649[] = "({[^}]+})";
+static char __pyx_k_651[] = "Base class of all XSLT errors.\n    ";
+static char __pyx_k_652[] = "Error parsing a stylesheet document.\n    ";
+static char __pyx_k_653[] = "Error running an XSL transformation.\n    ";
+static char __pyx_k_654[] = "Error serialising an XSLT result.\n    ";
+static char __pyx_k_655[] = "Error registering an XSLT extension.\n    ";
+static char __pyx_k_658[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi";
+static char __pyx_k_661[] = "set_global_max_depth";
+static char __pyx_k_662[] = "\\s+href\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
+static char __pyx_k_664[] = "Validation error.\n\n    Raised by all document validators when their ``assertValid(tree)``\n    method fails.\n    ";
+static char __pyx_k_665[] = "Base class for DTD errors.\n    ";
+static char __pyx_k_666[] = "Error while parsing a DTD.\n    ";
+static char __pyx_k_667[] = "Error while validating an XML document with a DTD.\n    ";
+static char __pyx_k_668[] = "Base class for RelaxNG errors.\n    ";
+static char __pyx_k_669[] = "Error while parsing an XML document as RelaxNG.\n    ";
+static char __pyx_k_670[] = "Error while validating an XML document with a RelaxNG schema.\n    ";
+static char __pyx_k_671[] = "Base class of all XML Schema errors\n    ";
+static char __pyx_k_672[] = "Error while parsing an XML document as XML Schema.\n    ";
+static char __pyx_k_673[] = "Error while validating an XML document with an XML Schema.\n    ";
+static char __pyx_k_674[] = "boolean(//xs:attribute[@default or @fixed][1])";
+static char __pyx_k_676[] = "Base class of all Schematron errors.\n    ";
+static char __pyx_k_677[] = "Error while parsing an XML document as Schematron schema.\n    ";
+static char __pyx_k_678[] = "Error while validating an XML document with a Schematron schema.\n    ";
+static char __pyx_k_679[] = "XML (line 2950)";
+static char __pyx_k_680[] = "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";
@@ -6577,6 +6589,7 @@ 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__elements_only[] = "elements_only";
 static char __pyx_k__enable_regexp[] = "enable_regexp";
 static char __pyx_k__function_name[] = "function_name";
 static char __pyx_k__is_standalone[] = "is_standalone";
@@ -6596,6 +6609,7 @@ static char __pyx_k__XPathEvalError[] = "XPathEvalError";
 static char __pyx_k__XPathEvaluator[] = "XPathEvaluator";
 static char __pyx_k__XSLTApplyError[] = "XSLTApplyError";
 static char __pyx_k__XSLTParseError[] = "XSLTParseError";
+static char __pyx_k____pyx_vtable__[] = "__pyx_vtable__";
 static char __pyx_k__access_control[] = "access_control";
 static char __pyx_k__attribute_name[] = "attribute_name";
 static char __pyx_k__dtd_validation[] = "dtd_validation";
@@ -6693,42 +6707,42 @@ static PyObject *__pyx_kp_u_146;
 static PyObject *__pyx_kp_u_147;
 static PyObject *__pyx_kp_u_15;
 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_s_152;
+static PyObject *__pyx_kp_u_154;
+static PyObject *__pyx_n_s_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_s_160;
-static PyObject *__pyx_kp_u_161;
-static PyObject *__pyx_n_u_162;
-static PyObject *__pyx_kp_u_168;
+static PyObject *__pyx_kp_u_160;
+static PyObject *__pyx_kp_s_161;
+static PyObject *__pyx_kp_u_162;
+static PyObject *__pyx_n_u_163;
 static PyObject *__pyx_kp_u_169;
 static PyObject *__pyx_kp_u_17;
 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_n_s_174;
+static PyObject *__pyx_kp_u_174;
 static PyObject *__pyx_n_s_175;
-static PyObject *__pyx_kp_u_176;
+static PyObject *__pyx_n_s_176;
 static PyObject *__pyx_kp_u_177;
 static PyObject *__pyx_kp_u_178;
-static PyObject *__pyx_n_s_179;
+static PyObject *__pyx_kp_u_179;
 static PyObject *__pyx_kp_u_18;
-static PyObject *__pyx_kp_u_180;
+static PyObject *__pyx_n_s_180;
 static PyObject *__pyx_kp_u_181;
 static PyObject *__pyx_kp_u_182;
 static PyObject *__pyx_kp_u_183;
+static PyObject *__pyx_kp_u_184;
 static PyObject *__pyx_kp_u_19;
 static PyObject *__pyx_kp_u_20;
 static PyObject *__pyx_kp_u_21;
-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;
@@ -6737,43 +6751,43 @@ 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_229;
 static PyObject *__pyx_kp_u_23;
-static PyObject *__pyx_kp_u_230;
 static PyObject *__pyx_kp_u_231;
+static PyObject *__pyx_kp_u_232;
 static PyObject *__pyx_kp_u_24;
-static PyObject *__pyx_kp_u_242;
-static PyObject *__pyx_kp_u_246;
+static PyObject *__pyx_kp_u_243;
 static PyObject *__pyx_kp_u_247;
 static PyObject *__pyx_kp_u_248;
+static PyObject *__pyx_kp_u_249;
 static PyObject *__pyx_kp_b_25;
 static PyObject *__pyx_kp_s_25;
 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_s_251;
+static PyObject *__pyx_kp_s_253;
+static PyObject *__pyx_kp_b_255;
+static PyObject *__pyx_kp_s_256;
+static PyObject *__pyx_kp_u_259;
+static PyObject *__pyx_kp_s_261;
+static PyObject *__pyx_kp_s_265;
 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_s_272;
+static PyObject *__pyx_kp_s_274;
 static PyObject *__pyx_kp_u_276;
 static PyObject *__pyx_kp_u_277;
+static PyObject *__pyx_kp_u_278;
 static PyObject *__pyx_kp_u_28;
 static PyObject *__pyx_kp_s_29;
-static PyObject *__pyx_kp_u_292;
-static PyObject *__pyx_kp_s_294;
+static PyObject *__pyx_kp_u_293;
+static PyObject *__pyx_kp_s_295;
 static PyObject *__pyx_kp_s_30;
-static PyObject *__pyx_kp_u_300;
-static PyObject *__pyx_kp_u_303;
+static PyObject *__pyx_kp_u_301;
 static PyObject *__pyx_kp_u_304;
 static PyObject *__pyx_kp_u_305;
-static PyObject *__pyx_kp_s_308;
+static PyObject *__pyx_kp_u_306;
 static PyObject *__pyx_kp_s_309;
-static PyObject *__pyx_kp_u_310;
+static PyObject *__pyx_kp_s_310;
 static PyObject *__pyx_kp_u_311;
 static PyObject *__pyx_kp_u_312;
 static PyObject *__pyx_kp_u_313;
@@ -6781,37 +6795,37 @@ static PyObject *__pyx_kp_u_314;
 static PyObject *__pyx_kp_u_315;
 static PyObject *__pyx_kp_u_316;
 static PyObject *__pyx_kp_u_317;
+static PyObject *__pyx_kp_u_318;
 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_u_324;
+static PyObject *__pyx_kp_b_322;
+static PyObject *__pyx_kp_u_323;
+static PyObject *__pyx_kp_s_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_329;
+static PyObject *__pyx_n_s_330;
 static PyObject *__pyx_kp_u_331;
-static PyObject *__pyx_kp_u_333;
+static PyObject *__pyx_kp_u_332;
 static PyObject *__pyx_kp_u_334;
-static PyObject *__pyx_kp_s_337;
+static PyObject *__pyx_kp_u_335;
+static PyObject *__pyx_kp_s_338;
 static PyObject *__pyx_kp_u_35;
-static PyObject *__pyx_kp_u_350;
 static PyObject *__pyx_kp_u_351;
 static PyObject *__pyx_kp_u_352;
 static PyObject *__pyx_kp_u_353;
 static PyObject *__pyx_kp_u_354;
-static PyObject *__pyx_kp_u_356;
-static PyObject *__pyx_kp_u_358;
-static PyObject *__pyx_kp_s_359;
+static PyObject *__pyx_kp_u_355;
+static PyObject *__pyx_kp_u_357;
+static PyObject *__pyx_kp_u_359;
 static PyObject *__pyx_kp_u_36;
-static PyObject *__pyx_kp_s_363;
-static PyObject *__pyx_kp_u_364;
+static PyObject *__pyx_kp_s_360;
+static PyObject *__pyx_kp_s_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_367;
+static PyObject *__pyx_kp_b_369;
 static PyObject *__pyx_kp_u_369;
 static PyObject *__pyx_kp_s_37;
 static PyObject *__pyx_kp_u_370;
@@ -6820,63 +6834,59 @@ 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_376;
+static PyObject *__pyx_kp_s_379;
 static PyObject *__pyx_kp_s_38;
+static PyObject *__pyx_kp_u_383;
 static PyObject *__pyx_kp_u_384;
-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_u_389;
 static PyObject *__pyx_kp_s_39;
-static PyObject *__pyx_kp_u_391;
-static PyObject *__pyx_kp_u_393;
-static PyObject *__pyx_kp_u_394;
-static PyObject *__pyx_kp_s_395;
+static PyObject *__pyx_kp_u_390;
+static PyObject *__pyx_kp_s_391;
+static PyObject *__pyx_kp_s_392;
+static PyObject *__pyx_kp_s_393;
+static PyObject *__pyx_kp_s_394;
 static PyObject *__pyx_kp_u_396;
+static PyObject *__pyx_kp_u_398;
 static PyObject *__pyx_kp_u_399;
 static PyObject *__pyx_kp_u_4;
 static PyObject *__pyx_kp_s_40;
-static PyObject *__pyx_kp_u_402;
+static PyObject *__pyx_kp_s_400;
+static PyObject *__pyx_kp_u_401;
 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_407;
 static PyObject *__pyx_kp_u_409;
 static PyObject *__pyx_kp_s_41;
-static PyObject *__pyx_kp_b_411;
+static PyObject *__pyx_kp_u_410;
 static PyObject *__pyx_kp_u_411;
-static PyObject *__pyx_kp_u_412;
-static PyObject *__pyx_kp_u_413;
-static PyObject *__pyx_kp_s_414;
-static PyObject *__pyx_n_s_415;
+static PyObject *__pyx_kp_s_412;
+static PyObject *__pyx_n_s_413;
+static PyObject *__pyx_kp_u_414;
+static PyObject *__pyx_kp_b_416;
 static PyObject *__pyx_kp_u_416;
-static PyObject *__pyx_kp_s_417;
+static PyObject *__pyx_kp_u_417;
 static PyObject *__pyx_kp_u_418;
+static PyObject *__pyx_kp_s_419;
 static PyObject *__pyx_kp_u_42;
 static PyObject *__pyx_n_s_420;
-static PyObject *__pyx_kp_u_422;
-static PyObject *__pyx_kp_s_423;
+static PyObject *__pyx_kp_u_421;
+static PyObject *__pyx_kp_s_422;
+static PyObject *__pyx_kp_u_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_u_427;
+static PyObject *__pyx_kp_s_428;
 static PyObject *__pyx_kp_s_43;
-static PyObject *__pyx_kp_b_430;
+static PyObject *__pyx_n_s_430;
+static PyObject *__pyx_kp_u_431;
+static PyObject *__pyx_kp_b_432;
+static PyObject *__pyx_n_s_433;
+static PyObject *__pyx_kp_s_434;
+static PyObject *__pyx_kp_b_435;
 static PyObject *__pyx_n_s_44;
 static PyObject *__pyx_kp_s_45;
 static PyObject *__pyx_kp_u_46;
-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_kp_u_473;
 static PyObject *__pyx_n_s_474;
 static PyObject *__pyx_n_s_475;
 static PyObject *__pyx_n_s_476;
@@ -6885,75 +6895,75 @@ static PyObject *__pyx_n_s_478;
 static PyObject *__pyx_n_s_479;
 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_n_s_481;
+static PyObject *__pyx_n_s_482;
+static PyObject *__pyx_n_s_483;
+static PyObject *__pyx_n_s_484;
+static PyObject *__pyx_n_s_485;
 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_490;
+static PyObject *__pyx_kp_b_491;
+static PyObject *__pyx_kp_b_492;
+static PyObject *__pyx_kp_b_493;
+static PyObject *__pyx_kp_b_494;
+static PyObject *__pyx_kp_s_498;
+static PyObject *__pyx_n_s_499;
 static PyObject *__pyx_kp_b_5;
 static PyObject *__pyx_kp_u_5;
 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_s_507;
-static PyObject *__pyx_kp_s_511;
+static PyObject *__pyx_n_s_503;
+static PyObject *__pyx_kp_s_504;
+static PyObject *__pyx_kp_s_505;
+static PyObject *__pyx_kp_s_506;
+static PyObject *__pyx_kp_u_507;
+static PyObject *__pyx_kp_u_509;
+static PyObject *__pyx_kp_u_510;
 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_s_516;
+static PyObject *__pyx_kp_s_517;
+static PyObject *__pyx_kp_s_518;
+static PyObject *__pyx_kp_s_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_530;
 static PyObject *__pyx_kp_u_531;
+static PyObject *__pyx_kp_u_532;
 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_u_534;
+static PyObject *__pyx_kp_u_536;
+static PyObject *__pyx_kp_u_538;
 static PyObject *__pyx_kp_s_573;
-static PyObject *__pyx_kp_s_576;
-static PyObject *__pyx_n_s_577;
+static PyObject *__pyx_kp_s_574;
+static PyObject *__pyx_kp_s_575;
 static PyObject *__pyx_kp_s_578;
-static PyObject *__pyx_kp_s_579;
 static PyObject *__pyx_kp_u_58;
-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_581;
+static PyObject *__pyx_n_s_582;
+static PyObject *__pyx_kp_s_583;
+static PyObject *__pyx_kp_s_584;
+static PyObject *__pyx_kp_s_585;
 static PyObject *__pyx_kp_s_591;
+static PyObject *__pyx_n_s_592;
+static PyObject *__pyx_kp_s_593;
 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_s_601;
+static PyObject *__pyx_kp_s_604;
 static PyObject *__pyx_kp_u_61;
-static PyObject *__pyx_kp_b_610;
-static PyObject *__pyx_kp_b_611;
-static PyObject *__pyx_kp_b_612;
-static PyObject *__pyx_kp_b_613;
-static PyObject *__pyx_kp_b_614;
+static PyObject *__pyx_kp_s_611;
+static PyObject *__pyx_kp_s_612;
+static PyObject *__pyx_kp_s_613;
+static PyObject *__pyx_kp_s_614;
 static PyObject *__pyx_kp_b_615;
 static PyObject *__pyx_kp_b_616;
 static PyObject *__pyx_kp_b_617;
@@ -6974,40 +6984,45 @@ static PyObject *__pyx_kp_u_63;
 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_n_s_638;
+static PyObject *__pyx_kp_b_633;
+static PyObject *__pyx_kp_b_634;
+static PyObject *__pyx_kp_b_635;
+static PyObject *__pyx_kp_b_636;
+static PyObject *__pyx_kp_b_637;
 static PyObject *__pyx_kp_u_64;
-static PyObject *__pyx_kp_s_641;
-static PyObject *__pyx_kp_b_642;
-static PyObject *__pyx_kp_b_644;
+static PyObject *__pyx_kp_s_640;
+static PyObject *__pyx_n_s_643;
 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_b_647;
+static PyObject *__pyx_kp_b_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_n_s_656;
-static PyObject *__pyx_kp_u_657;
-static PyObject *__pyx_kp_s_659;
+static PyObject *__pyx_kp_s_654;
+static PyObject *__pyx_kp_s_655;
+static PyObject *__pyx_kp_s_658;
 static PyObject *__pyx_kp_u_66;
-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_n_s_661;
+static PyObject *__pyx_kp_u_662;
 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_s_669;
 static PyObject *__pyx_kp_u_67;
+static PyObject *__pyx_kp_s_670;
 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_s_676;
+static PyObject *__pyx_kp_s_677;
+static PyObject *__pyx_kp_s_678;
+static PyObject *__pyx_kp_u_679;
 static PyObject *__pyx_kp_u_68;
+static PyObject *__pyx_kp_u_680;
 static PyObject *__pyx_kp_u_69;
 static PyObject *__pyx_kp_u_70;
 static PyObject *__pyx_kp_u_71;
@@ -7168,6 +7183,7 @@ 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____pyx_vtable__;
 static PyObject *__pyx_n_s____qualname__;
 static PyObject *__pyx_n_s____test__;
 static PyObject *__pyx_n_s____unicode__;
@@ -7264,6 +7280,7 @@ static PyObject *__pyx_n_u__element;
 static PyObject *__pyx_n_s__element_config;
 static PyObject *__pyx_n_s__element_factory;
 static PyObject *__pyx_n_s__element_or_tree;
+static PyObject *__pyx_n_s__elements_only;
 static PyObject *__pyx_n_s__elemname;
 static PyObject *__pyx_n_s__empty;
 static PyObject *__pyx_n_s__enable_regexp;
@@ -7597,7 +7614,6 @@ static PyObject *__pyx_k_120;
 static PyObject *__pyx_k_121;
 static PyObject *__pyx_k_126;
 static PyObject *__pyx_k_134;
-static PyObject *__pyx_k_184;
 static PyObject *__pyx_k_185;
 static PyObject *__pyx_k_186;
 static PyObject *__pyx_k_187;
@@ -7630,7 +7646,7 @@ 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_217;
 static PyObject *__pyx_k_281;
 static PyObject *__pyx_k_282;
 static PyObject *__pyx_k_283;
@@ -7642,9 +7658,9 @@ 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_292;
 static PyObject *__pyx_k_336;
-static PyObject *__pyx_k_338;
+static PyObject *__pyx_k_337;
 static PyObject *__pyx_k_339;
 static PyObject *__pyx_k_340;
 static PyObject *__pyx_k_341;
@@ -7652,10 +7668,15 @@ 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_346;
+static PyObject *__pyx_k_356;
 static PyObject *__pyx_k_362;
-static PyObject *__pyx_k_410;
+static PyObject *__pyx_k_363;
+static PyObject *__pyx_k_377;
+static PyObject *__pyx_k_378;
+static PyObject *__pyx_k_381;
+static PyObject *__pyx_k_382;
+static PyObject *__pyx_k_415;
 static PyObject *__pyx_k_slice_8;
 static PyObject *__pyx_k_tuple_2;
 static PyObject *__pyx_k_tuple_3;
@@ -7678,13 +7699,13 @@ 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_153;
 static PyObject *__pyx_k_slice_263;
-static PyObject *__pyx_k_slice_266;
-static PyObject *__pyx_k_slice_306;
+static PyObject *__pyx_k_slice_264;
+static PyObject *__pyx_k_slice_267;
 static PyObject *__pyx_k_slice_307;
-static PyObject *__pyx_k_slice_347;
+static PyObject *__pyx_k_slice_308;
+static PyObject *__pyx_k_slice_348;
 static PyObject *__pyx_k_tuple_101;
 static PyObject *__pyx_k_tuple_103;
 static PyObject *__pyx_k_tuple_122;
@@ -7693,133 +7714,133 @@ 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_261;
-static PyObject *__pyx_k_tuple_265;
-static PyObject *__pyx_k_tuple_268;
+static PyObject *__pyx_k_tuple_220;
+static PyObject *__pyx_k_tuple_230;
+static PyObject *__pyx_k_tuple_250;
+static PyObject *__pyx_k_tuple_252;
+static PyObject *__pyx_k_tuple_254;
+static PyObject *__pyx_k_tuple_257;
+static PyObject *__pyx_k_tuple_262;
+static PyObject *__pyx_k_tuple_266;
 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_270;
+static PyObject *__pyx_k_tuple_273;
+static PyObject *__pyx_k_tuple_275;
 static PyObject *__pyx_k_tuple_279;
-static PyObject *__pyx_k_tuple_293;
-static PyObject *__pyx_k_tuple_295;
+static PyObject *__pyx_k_tuple_280;
+static PyObject *__pyx_k_tuple_294;
 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_300;
 static PyObject *__pyx_k_tuple_302;
-static PyObject *__pyx_k_tuple_318;
+static PyObject *__pyx_k_tuple_303;
 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_321;
+static PyObject *__pyx_k_tuple_333;
+static PyObject *__pyx_k_tuple_349;
+static PyObject *__pyx_k_tuple_358;
+static PyObject *__pyx_k_tuple_361;
+static PyObject *__pyx_k_tuple_368;
+static PyObject *__pyx_k_tuple_385;
+static PyObject *__pyx_k_tuple_395;
 static PyObject *__pyx_k_tuple_397;
-static PyObject *__pyx_k_tuple_398;
-static PyObject *__pyx_k_tuple_400;
+static PyObject *__pyx_k_tuple_402;
 static PyObject *__pyx_k_tuple_403;
-static PyObject *__pyx_k_tuple_419;
-static PyObject *__pyx_k_tuple_421;
+static PyObject *__pyx_k_tuple_405;
+static PyObject *__pyx_k_tuple_408;
 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_426;
+static PyObject *__pyx_k_tuple_429;
+static PyObject *__pyx_k_tuple_486;
 static PyObject *__pyx_k_tuple_495;
-static PyObject *__pyx_k_tuple_497;
-static PyObject *__pyx_k_tuple_503;
+static PyObject *__pyx_k_tuple_496;
+static PyObject *__pyx_k_tuple_500;
+static PyObject *__pyx_k_tuple_502;
 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_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_513;
+static PyObject *__pyx_k_tuple_514;
+static PyObject *__pyx_k_tuple_521;
+static PyObject *__pyx_k_tuple_523;
+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_553;
+static PyObject *__pyx_k_tuple_555;
+static PyObject *__pyx_k_tuple_557;
+static PyObject *__pyx_k_tuple_559;
+static PyObject *__pyx_k_tuple_561;
+static PyObject *__pyx_k_tuple_563;
+static PyObject *__pyx_k_tuple_565;
+static PyObject *__pyx_k_tuple_567;
+static PyObject *__pyx_k_tuple_569;
 static PyObject *__pyx_k_tuple_571;
-static PyObject *__pyx_k_tuple_574;
-static PyObject *__pyx_k_tuple_581;
-static PyObject *__pyx_k_tuple_584;
+static PyObject *__pyx_k_tuple_576;
+static PyObject *__pyx_k_tuple_579;
+static PyObject *__pyx_k_tuple_586;
 static PyObject *__pyx_k_tuple_589;
-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_599;
 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_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_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_tuple_605;
+static PyObject *__pyx_k_tuple_607;
+static PyObject *__pyx_k_tuple_609;
+static PyObject *__pyx_k_tuple_638;
+static PyObject *__pyx_k_tuple_641;
+static PyObject *__pyx_k_tuple_644;
+static PyObject *__pyx_k_tuple_648;
+static PyObject *__pyx_k_tuple_650;
+static PyObject *__pyx_k_tuple_656;
+static PyObject *__pyx_k_tuple_659;
+static PyObject *__pyx_k_tuple_663;
+static PyObject *__pyx_k_tuple_675;
+static PyObject *__pyx_k_codeobj_497;
+static PyObject *__pyx_k_codeobj_501;
+static PyObject *__pyx_k_codeobj_511;
+static PyObject *__pyx_k_codeobj_515;
+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_codeobj_554;
+static PyObject *__pyx_k_codeobj_556;
+static PyObject *__pyx_k_codeobj_558;
+static PyObject *__pyx_k_codeobj_560;
+static PyObject *__pyx_k_codeobj_562;
+static PyObject *__pyx_k_codeobj_564;
+static PyObject *__pyx_k_codeobj_566;
+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_582;
-static PyObject *__pyx_k_codeobj_583;
-static PyObject *__pyx_k_codeobj_585;
+static PyObject *__pyx_k_codeobj_577;
+static PyObject *__pyx_k_codeobj_580;
+static PyObject *__pyx_k_codeobj_587;
+static PyObject *__pyx_k_codeobj_588;
 static PyObject *__pyx_k_codeobj_590;
-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_600;
 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;
+static PyObject *__pyx_k_codeobj_606;
+static PyObject *__pyx_k_codeobj_608;
+static PyObject *__pyx_k_codeobj_610;
+static PyObject *__pyx_k_codeobj_639;
+static PyObject *__pyx_k_codeobj_642;
+static PyObject *__pyx_k_codeobj_645;
+static PyObject *__pyx_k_codeobj_657;
+static PyObject *__pyx_k_codeobj_660;
 
 /* Python wrapper */
 static PyObject *__pyx_pw_4lxml_5etree_1register_namespace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
@@ -8229,6 +8250,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -8241,7 +8263,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
  *             # Python >= 2.5 uses new style class exceptions
  *             super(_Error, self).__init__(message)
  */
-  __pyx_t_1 = (PY_VERSION_HEX >= 0x02050000);
+  __pyx_t_1 = ((PY_VERSION_HEX >= 0x02050000) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":184
@@ -8309,7 +8331,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
  *         else:
  */
   __pyx_t_1 = (__pyx_v_error_log == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_5 = (__pyx_t_1 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":188
  *             error_super_init(self, message)
@@ -9196,13 +9219,13 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
-  PyObject *(*__pyx_t_7)(PyObject *);
-  int __pyx_t_8;
+  PyObject *__pyx_t_7 = NULL;
+  PyObject *(*__pyx_t_8)(PyObject *);
   int __pyx_t_9;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -9217,7 +9240,8 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
  *         type, value, traceback = self._exc_info
  */
   __pyx_t_1 = (__pyx_v_self->_exc_info == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":288
  *     cdef int _raise_if_stored(self) except -1:
@@ -9239,10 +9263,10 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
  *         self._exc_info = None
  *         if value is None and traceback is None:
  */
-  __pyx_t_2 = __pyx_v_self->_exc_info;
-  __Pyx_INCREF(__pyx_t_2);
-  if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
-    PyObject* sequence = __pyx_t_2;
+  __pyx_t_3 = __pyx_v_self->_exc_info;
+  __Pyx_INCREF(__pyx_t_3);
+  if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
+    PyObject* sequence = __pyx_t_3;
     #if CYTHON_COMPILING_IN_CPYTHON
     Py_ssize_t size = Py_SIZE(sequence);
     #else
@@ -9255,56 +9279,56 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
-      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
-      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
-      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); 
+      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
+      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
+      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
     } else {
-      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
-      __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
-      __pyx_t_5 = PyList_GET_ITEM(sequence, 2); 
+      __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
+      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
+      __pyx_t_6 = PyList_GET_ITEM(sequence, 2); 
     }
-    __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_t_5);
+    __Pyx_INCREF(__pyx_t_6);
     #else
-    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
     #endif
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
-    index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed;
-    __Pyx_GOTREF(__pyx_t_3);
-    index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
+    __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
+    index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    index = 2; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
+    index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_5);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_7 = NULL;
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed;
+    __Pyx_GOTREF(__pyx_t_6);
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = NULL;
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     goto __pyx_L5_unpacking_done;
     __pyx_L4_unpacking_failed:;
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_t_7 = NULL;
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+    __pyx_t_8 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L5_unpacking_done:;
   }
-  __pyx_v_type = __pyx_t_3;
-  __pyx_t_3 = 0;
-  __pyx_v_value = __pyx_t_4;
+  __pyx_v_type = __pyx_t_4;
   __pyx_t_4 = 0;
-  __pyx_v_traceback = __pyx_t_5;
+  __pyx_v_value = __pyx_t_5;
   __pyx_t_5 = 0;
+  __pyx_v_traceback = __pyx_t_6;
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":290
  *             return 0
@@ -9326,12 +9350,12 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
  *             raise type
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_value == Py_None);
-  if (__pyx_t_1) {
-    __pyx_t_8 = (__pyx_v_traceback == Py_None);
-    __pyx_t_9 = __pyx_t_8;
+  __pyx_t_2 = (__pyx_v_value == Py_None);
+  if ((__pyx_t_2 != 0)) {
+    __pyx_t_1 = (__pyx_v_traceback == Py_None);
+    __pyx_t_9 = (__pyx_t_1 != 0);
   } else {
-    __pyx_t_9 = __pyx_t_1;
+    __pyx_t_9 = (__pyx_t_2 != 0);
   }
   if (__pyx_t_9) {
 
@@ -9363,11 +9387,11 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.etree._ExceptionContext._raise_if_stored", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -9405,9 +9429,9 @@ static CYTHON_INLINE struct LxmlElement *__pyx_f_4lxml_5etree_getProxy(xmlNode *
  *         if python.IS_PYPY:
  *             return <_Element>python.PyWeakref_LockObject(<python.PyObject*>c_node._private)
  */
-  __pyx_t_1 = (__pyx_v_c_node != NULL);
+  __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_node->_private != NULL);
+    __pyx_t_2 = ((__pyx_v_c_node->_private != NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -9421,7 +9445,8 @@ static CYTHON_INLINE struct LxmlElement *__pyx_f_4lxml_5etree_getProxy(xmlNode *
  *             return <_Element>python.PyWeakref_LockObject(<python.PyObject*>c_node._private)
  *         else:
  */
-    if (IS_PYPY) {
+    __pyx_t_3 = (IS_PYPY != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":20
  *     if c_node is not NULL and c_node._private is not NULL:
@@ -9498,6 +9523,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_hasProxy(xmlNode *__pyx_v_c_node)
   __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;
@@ -9510,7 +9536,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_hasProxy(xmlNode *__pyx_v_c_node)
  *         return False
  *     if python.IS_PYPY:
  */
-  __pyx_t_1 = (__pyx_v_c_node->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->_private == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":28
@@ -9533,7 +9559,8 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_hasProxy(xmlNode *__pyx_v_c_node)
  *         if python.PyWeakref_LockObject(<python.PyObject*>c_node._private) is None:
  *             # proxy has already died => remove weak reference
  */
-  if (IS_PYPY) {
+  __pyx_t_1 = (IS_PYPY != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":30
  *         return False
@@ -9546,7 +9573,8 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_hasProxy(xmlNode *__pyx_v_c_node)
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = (__pyx_t_2 == Py_None);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    if (__pyx_t_1) {
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":32
  *         if python.PyWeakref_LockObject(<python.PyObject*>c_node._private) is None:
@@ -9637,7 +9665,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__registerProxy(struct LxmlElement
  *     proxy._c_node = c_node
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(!__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node)))) {
+  if (unlikely(!((!(__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0)) != 0))) {
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_15));
     {__pyx_filename = __pyx_f[3]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -9672,7 +9700,8 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__registerProxy(struct LxmlElement
  *         c_node._private = <void*>python.PyWeakref_NewRef(proxy, NULL)
  *         if c_node._private is NULL:
  */
-  if (IS_PYPY) {
+  __pyx_t_1 = (IS_PYPY != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":47
  *     proxy._c_node = c_node
@@ -9690,7 +9719,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__registerProxy(struct LxmlElement
  *             return -1 # manual exception propagation
  *     else:
  */
-    __pyx_t_1 = (__pyx_v_c_node->_private == NULL);
+    __pyx_t_1 = ((__pyx_v_c_node->_private == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":49
@@ -9772,6 +9801,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__unregisterProxy(struct LxmlElemen
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   xmlNode *__pyx_t_1;
+  int __pyx_t_2;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -9794,7 +9824,8 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__unregisterProxy(struct LxmlElemen
  *         obj_ptr = <python.PyObject*>c_node._private
  *         c_node._private = NULL
  */
-  if (IS_PYPY) {
+  __pyx_t_2 = (IS_PYPY != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":63
  *     c_node = proxy._c_node
@@ -9834,7 +9865,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__unregisterProxy(struct LxmlElemen
  *     return 0
  */
     #ifndef CYTHON_WITHOUT_ASSERTIONS
-    if (unlikely(!(__pyx_v_c_node->_private == ((void *)__pyx_v_proxy)))) {
+    if (unlikely(!((__pyx_v_c_node->_private == ((void *)__pyx_v_proxy)) != 0))) {
       PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_16));
       {__pyx_filename = __pyx_f[3]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
@@ -9916,7 +9947,8 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__updateProxyDocument(struct LxmlE
   struct LxmlDocument *__pyx_v_old_doc = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   __Pyx_RefNannySetupContext("_updateProxyDocument", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":80
@@ -9927,7 +9959,8 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__updateProxyDocument(struct LxmlE
  *         element._doc = doc
  */
   __pyx_t_1 = (__pyx_v_element->_doc != __pyx_v_doc);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":81
  *     """
@@ -9936,10 +9969,10 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__updateProxyDocument(struct LxmlE
  *         element._doc = doc
  *         python.Py_INCREF(doc)
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_element->_doc);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_old_doc = ((struct LxmlDocument *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_element->_doc);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_old_doc = ((struct LxmlDocument *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":82
  *     if element._doc is not doc:
@@ -10058,17 +10091,17 @@ static xmlDoc *__pyx_f_4lxml_5etree__plainFakeRootDoc(xmlDoc *__pyx_v_c_base_doc
  *         c_root = tree.xmlDocGetRootElement(c_base_doc)
  *         if c_root is c_node:
  */
-  if (!__pyx_v_with_siblings) {
-    __pyx_t_1 = (__pyx_v_c_node->prev == NULL);
+  if (!(__pyx_v_with_siblings != 0)) {
+    __pyx_t_1 = ((__pyx_v_c_node->prev == NULL) != 0);
     if (__pyx_t_1) {
-      __pyx_t_2 = (__pyx_v_c_node->next == NULL);
+      __pyx_t_2 = ((__pyx_v_c_node->next == NULL) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
     }
     __pyx_t_1 = __pyx_t_3;
   } else {
-    __pyx_t_1 = __pyx_v_with_siblings;
+    __pyx_t_1 = (__pyx_v_with_siblings != 0);
   }
   if (__pyx_t_1) {
 
@@ -10088,7 +10121,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__plainFakeRootDoc(xmlDoc *__pyx_v_c_base_doc
  *             # already the root node, no siblings
  *             return c_base_doc
  */
-    __pyx_t_1 = (__pyx_v_c_root == __pyx_v_c_node);
+    __pyx_t_1 = ((__pyx_v_c_root == __pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":106
@@ -10201,7 +10234,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__plainFakeRootDoc(xmlDoc *__pyx_v_c_base_doc
  *         c_child = c_child.next
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_child != NULL);
+    __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":123
@@ -10277,7 +10310,7 @@ static void __pyx_f_4lxml_5etree__destroyFakeDoc(xmlDoc *__pyx_v_c_base_doc, xml
  *         return
  *     c_root = tree.xmlDocGetRootElement(c_doc)
  */
-  __pyx_t_1 = (__pyx_v_c_doc == __pyx_v_c_base_doc);
+  __pyx_t_1 = ((__pyx_v_c_doc == __pyx_v_c_base_doc) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":135
@@ -10328,7 +10361,7 @@ static void __pyx_f_4lxml_5etree__destroyFakeDoc(xmlDoc *__pyx_v_c_base_doc, xml
  *         c_child = c_child.next
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_child != NULL);
+    __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":142
@@ -10399,7 +10432,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__fakeDocElementFactory(struct Lx
  *         if c_element.doc._private is not NULL:
  *             if c_element is c_element.doc.children:
  */
-  __pyx_t_1 = (__pyx_v_c_element->doc != __pyx_v_doc->_c_doc);
+  __pyx_t_1 = ((__pyx_v_c_element->doc != __pyx_v_doc->_c_doc) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":159
@@ -10409,7 +10442,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__fakeDocElementFactory(struct Lx
  *             if c_element is c_element.doc.children:
  *                 c_element = <xmlNode*>c_element.doc._private
  */
-    __pyx_t_1 = (__pyx_v_c_element->doc->_private != NULL);
+    __pyx_t_1 = ((__pyx_v_c_element->doc->_private != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":160
@@ -10419,7 +10452,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__fakeDocElementFactory(struct Lx
  *                 c_element = <xmlNode*>c_element.doc._private
  *                 #assert c_element.type == tree.XML_ELEMENT_NODE
  */
-      __pyx_t_1 = (__pyx_v_c_element == __pyx_v_c_element->doc->children);
+      __pyx_t_1 = ((__pyx_v_c_element == __pyx_v_c_element->doc->children) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":161
@@ -10488,7 +10521,7 @@ static int __pyx_f_4lxml_5etree_attemptDeallocation(xmlNode *__pyx_v_c_node) {
  *         #print "not freeing, node is NULL"
  *         return 0
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":175
@@ -10520,7 +10553,7 @@ static int __pyx_f_4lxml_5etree_attemptDeallocation(xmlNode *__pyx_v_c_node) {
  *         #print "freeing:", c_top.name
  *         _removeText(c_top.next) # tail
  */
-  __pyx_t_1 = (__pyx_v_c_top != NULL);
+  __pyx_t_1 = ((__pyx_v_c_top != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":179
@@ -10587,7 +10620,6 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
   xmlNode *__pyx_t_2;
   int __pyx_t_3;
   int __pyx_t_4;
-  int __pyx_t_5;
   __Pyx_RefNannySetupContext("getDeallocationTop", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":190
@@ -10597,7 +10629,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
  *         #print "Not freeing: proxies still exist"
  *         return NULL
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node);
+  __pyx_t_1 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":192
@@ -10640,7 +10672,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
  *         if c_current.type == tree.XML_DOCUMENT_NODE or \
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_current != NULL);
+    __pyx_t_1 = ((__pyx_v_c_current != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":197
@@ -10650,7 +10682,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
  *                c_current.type == tree.XML_HTML_DOCUMENT_NODE:
  *             #print "not freeing: still in doc"
  */
-    __pyx_t_1 = (__pyx_v_c_current->type == XML_DOCUMENT_NODE);
+    __pyx_t_1 = ((__pyx_v_c_current->type == XML_DOCUMENT_NODE) != 0);
     if (!__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":198
@@ -10660,7 +10692,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
  *             #print "not freeing: still in doc"
  *             return NULL
  */
-      __pyx_t_3 = (__pyx_v_c_current->type == XML_HTML_DOCUMENT_NODE);
+      __pyx_t_3 = ((__pyx_v_c_current->type == XML_HTML_DOCUMENT_NODE) != 0);
       __pyx_t_4 = __pyx_t_3;
     } else {
       __pyx_t_4 = __pyx_t_1;
@@ -10687,7 +10719,7 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
  *             #print "Not freeing: proxies still exist"
  *             return NULL
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_current);
+    __pyx_t_4 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_current) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":204
@@ -10730,8 +10762,8 @@ static xmlNode *__pyx_f_4lxml_5etree_getDeallocationTop(xmlNode *__pyx_v_c_node)
  *         return c_top
  *     else:
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree_canDeallocateChildNodes(__pyx_v_c_top);
-  if (__pyx_t_5) {
+  __pyx_t_4 = (__pyx_f_4lxml_5etree_canDeallocateChildNodes(__pyx_v_c_top) != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":209
  *     # see whether we have children to deallocate
@@ -10806,7 +10838,7 @@ static int __pyx_f_4lxml_5etree_canDeallocateChildNodes(xmlNode *__pyx_v_c_paren
  *         return 0
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node);
+  __pyx_t_2 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":218
@@ -10883,7 +10915,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
  */
   while (1) {
     if ((__pyx_v_c_parent != 0)) {
-      __pyx_t_2 = _isElementOrXInclude(__pyx_v_c_parent);
+      __pyx_t_2 = (_isElementOrXInclude(__pyx_v_c_parent) != 0);
       if (!__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":234
@@ -10893,7 +10925,7 @@ static void __pyx_f_4lxml_5etree__copyParentNamespaces(xmlNode *__pyx_v_c_from_n
  *         c_new_ns = c_parent.nsDef
  *         while c_new_ns:
  */
-        __pyx_t_3 = (__pyx_v_c_parent->type == XML_DOCUMENT_NODE);
+        __pyx_t_3 = ((__pyx_v_c_parent->type == XML_DOCUMENT_NODE) != 0);
         __pyx_t_4 = __pyx_t_3;
       } else {
         __pyx_t_4 = __pyx_t_2;
@@ -10983,7 +11015,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
  *         c_ns_cache.size = 20
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_ns_cache->size == 0);
+  __pyx_t_1 = ((__pyx_v_c_ns_cache->size == 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":251
@@ -11025,7 +11057,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
  *         c_ns_cache.new = c_ns_ptr
  *         c_ns_ptr = <xmlNs**> stdlib.realloc(
  */
-  __pyx_t_1 = (__pyx_v_c_ns_ptr != NULL);
+  __pyx_t_1 = ((__pyx_v_c_ns_ptr != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":257
@@ -11056,7 +11088,7 @@ static int __pyx_f_4lxml_5etree__growNsCache(__pyx_t_4lxml_5etree__nscache *__py
  *         c_ns_cache.old = c_ns_ptr
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_ns_ptr != NULL);
+  __pyx_t_1 = ((__pyx_v_c_ns_ptr != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":261
@@ -11145,7 +11177,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__appendToNsCache(__pyx_t_4lxml_5et
  *         _growNsCache(c_ns_cache)
  *     c_ns_cache.old[c_ns_cache.last] = c_old_ns
  */
-  __pyx_t_1 = (__pyx_v_c_ns_cache->last >= __pyx_v_c_ns_cache->size);
+  __pyx_t_1 = ((__pyx_v_c_ns_cache->last >= __pyx_v_c_ns_cache->size) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":271
@@ -11236,7 +11268,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
  *             c_element.doc, c_element.parent, c_nsdef[0].href)
  */
   while (1) {
-    __pyx_t_1 = ((__pyx_v_c_nsdef[0]) != NULL);
+    __pyx_t_1 = (((__pyx_v_c_nsdef[0]) != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":289
@@ -11255,7 +11287,7 @@ static int __pyx_f_4lxml_5etree__stripRedundantNamespaceDeclarations(xmlNode *__
  *             # new namespace href => keep and cache the ns declaration
  *             _appendToNsCache(c_ns_cache, c_nsdef[0], c_nsdef[0])
  */
-    __pyx_t_1 = (__pyx_v_c_ns == NULL);
+    __pyx_t_1 = ((__pyx_v_c_ns == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":292
@@ -11370,11 +11402,12 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   int __pyx_t_1;
   int __pyx_t_2;
   size_t __pyx_t_3;
-  xmlNs *__pyx_t_4;
-  xmlNode *__pyx_t_5;
+  size_t __pyx_t_4;
+  int __pyx_t_5;
   int __pyx_t_6;
-  int __pyx_t_7;
-  PyObject *__pyx_t_8 = NULL;
+  xmlNs *__pyx_t_7;
+  xmlNode *__pyx_t_8;
+  PyObject *__pyx_t_9 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -11396,7 +11429,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *         return 0
  * 
  */
-  __pyx_t_1 = (!_isElementOrXInclude(__pyx_v_c_element));
+  __pyx_t_1 = ((!(_isElementOrXInclude(__pyx_v_c_element) != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":346
@@ -11482,7 +11515,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *         if hasProxy(c_element):
  *             proxy_count += 1
  */
-  __pyx_t_1 = _isElementOrXInclude(__pyx_v_c_element);
+  __pyx_t_1 = (_isElementOrXInclude(__pyx_v_c_element) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":358
@@ -11492,7 +11525,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *             proxy_count += 1
  * 
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_element);
+    __pyx_t_1 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_element) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":359
@@ -11514,7 +11547,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *             _stripRedundantNamespaceDeclarations(
  *                 c_element, &c_ns_cache, &c_del_ns_list)
  */
-    __pyx_t_1 = (__pyx_v_c_element->nsDef != NULL);
+    __pyx_t_1 = ((__pyx_v_c_element->nsDef != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":365
@@ -11543,109 +11576,180 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *         c_node = c_element
  *         while c_node is not NULL:             # <<<<<<<<<<<<<<
  *             if c_node.ns is not NULL:
- *                 for i from 0 <= i < c_ns_cache.last:
+ *                 c_ns = NULL
  */
     while (1) {
-      __pyx_t_1 = (__pyx_v_c_node != NULL);
+      __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_1) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":371
  *         c_node = c_element
  *         while c_node is not NULL:
  *             if c_node.ns is not NULL:             # <<<<<<<<<<<<<<
- *                 for i from 0 <= i < c_ns_cache.last:
- *                     if c_node.ns is c_ns_cache.old[i]:
+ *                 c_ns = NULL
+ *                 for i in range(c_ns_cache.last):
  */
-      __pyx_t_1 = (__pyx_v_c_node->ns != NULL);
+      __pyx_t_1 = ((__pyx_v_c_node->ns != NULL) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":372
  *         while c_node is not NULL:
  *             if c_node.ns is not NULL:
- *                 for i from 0 <= i < c_ns_cache.last:             # <<<<<<<<<<<<<<
+ *                 c_ns = NULL             # <<<<<<<<<<<<<<
+ *                 for i in range(c_ns_cache.last):
  *                     if c_node.ns is c_ns_cache.old[i]:
- *                         c_node.ns = c_ns_cache.new[i]
  */
-        __pyx_t_3 = __pyx_v_c_ns_cache.last;
-        for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) {
+        __pyx_v_c_ns = NULL;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":373
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":373
  *             if c_node.ns is not NULL:
- *                 for i from 0 <= i < c_ns_cache.last:
+ *                 c_ns = NULL
+ *                 for i in range(c_ns_cache.last):             # <<<<<<<<<<<<<<
+ *                     if c_node.ns is c_ns_cache.old[i]:
+ *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE
+ */
+        __pyx_t_3 = __pyx_v_c_ns_cache.last;
+        for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
+          __pyx_v_i = __pyx_t_4;
+
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":374
+ *                 c_ns = NULL
+ *                 for i in range(c_ns_cache.last):
  *                     if c_node.ns is c_ns_cache.old[i]:             # <<<<<<<<<<<<<<
- *                         c_node.ns = c_ns_cache.new[i]
- *                         break
+ *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE
+ *                                 and c_node.ns.prefix
  */
-          __pyx_t_1 = (__pyx_v_c_node->ns == (__pyx_v_c_ns_cache.old[__pyx_v_i]));
+          __pyx_t_1 = ((__pyx_v_c_node->ns == (__pyx_v_c_ns_cache.old[__pyx_v_i])) != 0);
           if (__pyx_t_1) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":374
- *                 for i from 0 <= i < c_ns_cache.last:
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":375
+ *                 for i in range(c_ns_cache.last):
  *                     if c_node.ns is c_ns_cache.old[i]:
- *                         c_node.ns = c_ns_cache.new[i]             # <<<<<<<<<<<<<<
- *                         break
- *                 else:
+ *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE             # <<<<<<<<<<<<<<
+ *                                 and c_node.ns.prefix
+ *                                 and not c_ns_cache.new[i].prefix):
  */
-            __pyx_v_c_node->ns = (__pyx_v_c_ns_cache.new[__pyx_v_i]);
+            __pyx_t_1 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
+            if (__pyx_t_1) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":375
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":376
  *                     if c_node.ns is c_ns_cache.old[i]:
- *                         c_node.ns = c_ns_cache.new[i]
+ *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE
+ *                                 and c_node.ns.prefix             # <<<<<<<<<<<<<<
+ *                                 and not c_ns_cache.new[i].prefix):
+ *                             # avoid dropping prefix from attributes
+ */
+              if ((__pyx_v_c_node->ns->prefix != 0)) {
+
+                /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":377
+ *                         if (c_node.type == tree.XML_ATTRIBUTE_NODE
+ *                                 and c_node.ns.prefix
+ *                                 and not c_ns_cache.new[i].prefix):             # <<<<<<<<<<<<<<
+ *                             # avoid dropping prefix from attributes
+ *                             continue
+ */
+                __pyx_t_5 = ((!((__pyx_v_c_ns_cache.new[__pyx_v_i])->prefix != 0)) != 0);
+                __pyx_t_6 = __pyx_t_5;
+              } else {
+                __pyx_t_6 = (__pyx_v_c_node->ns->prefix != 0);
+              }
+              __pyx_t_5 = __pyx_t_6;
+            } else {
+              __pyx_t_5 = __pyx_t_1;
+            }
+            if (__pyx_t_5) {
+
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":379
+ *                                 and not c_ns_cache.new[i].prefix):
+ *                             # avoid dropping prefix from attributes
+ *                             continue             # <<<<<<<<<<<<<<
+ *                         c_ns = c_ns_cache.new[i]
+ *                         break
+ */
+              goto __pyx_L10_continue;
+              goto __pyx_L13;
+            }
+            __pyx_L13:;
+
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":380
+ *                             # avoid dropping prefix from attributes
+ *                             continue
+ *                         c_ns = c_ns_cache.new[i]             # <<<<<<<<<<<<<<
+ *                         break
+ * 
+ */
+            __pyx_v_c_ns = (__pyx_v_c_ns_cache.new[__pyx_v_i]);
+
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":381
+ *                             continue
+ *                         c_ns = c_ns_cache.new[i]
  *                         break             # <<<<<<<<<<<<<<
- *                 else:
- *                     # not in cache => find a replacement from this document
+ * 
+ *                 if not c_ns:
  */
             goto __pyx_L11_break;
             goto __pyx_L12;
           }
           __pyx_L12:;
+          __pyx_L10_continue:;
         }
-        /*else*/ {
+        __pyx_L11_break:;
+
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":383
+ *                         break
+ * 
+ *                 if not c_ns:             # <<<<<<<<<<<<<<
+ *                     # not in cache or not acceptable
+ *                     # => find a replacement from this document
+ */
+        __pyx_t_5 = ((!(__pyx_v_c_ns != 0)) != 0);
+        if (__pyx_t_5) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":380
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":388
  *                     c_ns = doc._findOrBuildNodeNs(
  *                         c_start_node, c_node.ns.href, c_node.ns.prefix,
  *                         c_node.type == tree.XML_ATTRIBUTE_NODE)             # <<<<<<<<<<<<<<
  *                     _appendToNsCache(&c_ns_cache, c_node.ns, c_ns)
- *                     c_node.ns = c_ns
+ *                 c_node.ns = c_ns
  */
-          __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node->ns->href, __pyx_v_c_node->ns->prefix, (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE)); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __pyx_v_c_ns = __pyx_t_4;
+          __pyx_t_7 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_start_node, __pyx_v_c_node->ns->href, __pyx_v_c_node->ns->prefix, (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE)); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_v_c_ns = __pyx_t_7;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":381
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":389
  *                         c_start_node, c_node.ns.href, c_node.ns.prefix,
  *                         c_node.type == tree.XML_ATTRIBUTE_NODE)
  *                     _appendToNsCache(&c_ns_cache, c_node.ns, c_ns)             # <<<<<<<<<<<<<<
- *                     c_node.ns = c_ns
+ *                 c_node.ns = c_ns
  * 
  */
-          __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache((&__pyx_v_c_ns_cache), __pyx_v_c_node->ns, __pyx_v_c_ns); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_2 = __pyx_f_4lxml_5etree__appendToNsCache((&__pyx_v_c_ns_cache), __pyx_v_c_node->ns, __pyx_v_c_ns); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          goto __pyx_L14;
+        }
+        __pyx_L14:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":382
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":390
  *                         c_node.type == tree.XML_ATTRIBUTE_NODE)
  *                     _appendToNsCache(&c_ns_cache, c_node.ns, c_ns)
- *                     c_node.ns = c_ns             # <<<<<<<<<<<<<<
+ *                 c_node.ns = c_ns             # <<<<<<<<<<<<<<
  * 
  *             if c_node is c_element:
  */
-          __pyx_v_c_node->ns = __pyx_v_c_ns;
-        }
-        __pyx_L11_break:;
+        __pyx_v_c_node->ns = __pyx_v_c_ns;
         goto __pyx_L9;
       }
       __pyx_L9:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":384
- *                     c_node.ns = c_ns
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":392
+ *                 c_node.ns = c_ns
  * 
  *             if c_node is c_element:             # <<<<<<<<<<<<<<
  *                 # after the element, continue with its attributes
  *                 c_node = <xmlNode*>c_element.properties
  */
-      __pyx_t_1 = (__pyx_v_c_node == __pyx_v_c_element);
-      if (__pyx_t_1) {
+      __pyx_t_5 = ((__pyx_v_c_node == __pyx_v_c_element) != 0);
+      if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":386
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":394
  *             if c_node is c_element:
  *                 # after the element, continue with its attributes
  *                 c_node = <xmlNode*>c_element.properties             # <<<<<<<<<<<<<<
@@ -11653,27 +11757,27 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *                 c_node = c_node.next
  */
         __pyx_v_c_node = ((xmlNode *)__pyx_v_c_element->properties);
-        goto __pyx_L13;
+        goto __pyx_L15;
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":388
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":396
  *                 c_node = <xmlNode*>c_element.properties
  *             else:
  *                 c_node = c_node.next             # <<<<<<<<<<<<<<
  *     tree.END_FOR_EACH_FROM(c_element)
  * 
  */
-        __pyx_t_5 = __pyx_v_c_node->next;
-        __pyx_v_c_node = __pyx_t_5;
+        __pyx_t_8 = __pyx_v_c_node->next;
+        __pyx_v_c_node = __pyx_t_8;
       }
-      __pyx_L13:;
+      __pyx_L15:;
     }
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":389
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":397
  *             else:
  *                 c_node = c_node.next
  *     tree.END_FOR_EACH_FROM(c_element)             # <<<<<<<<<<<<<<
@@ -11682,17 +11786,17 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
   END_FOR_EACH_FROM(__pyx_v_c_element);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":392
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":400
  * 
  *     # free now unused namespace declarations
  *     if c_del_ns_list is not NULL:             # <<<<<<<<<<<<<<
  *         tree.xmlFreeNsList(c_del_ns_list)
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_del_ns_list != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_5 = ((__pyx_v_c_del_ns_list != NULL) != 0);
+  if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":393
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":401
  *     # free now unused namespace declarations
  *     if c_del_ns_list is not NULL:
  *         tree.xmlFreeNsList(c_del_ns_list)             # <<<<<<<<<<<<<<
@@ -11700,21 +11804,21 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *     # cleanup
  */
     xmlFreeNsList(__pyx_v_c_del_ns_list);
-    goto __pyx_L14;
+    goto __pyx_L16;
   }
-  __pyx_L14:;
+  __pyx_L16:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":396
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":404
  * 
  *     # cleanup
  *     if c_ns_cache.new is not NULL:             # <<<<<<<<<<<<<<
  *         stdlib.free(c_ns_cache.new)
  *     if c_ns_cache.old is not NULL:
  */
-  __pyx_t_1 = (__pyx_v_c_ns_cache.new != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_5 = ((__pyx_v_c_ns_cache.new != NULL) != 0);
+  if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":397
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":405
  *     # cleanup
  *     if c_ns_cache.new is not NULL:
  *         stdlib.free(c_ns_cache.new)             # <<<<<<<<<<<<<<
@@ -11722,21 +11826,21 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *         stdlib.free(c_ns_cache.old)
  */
     free(__pyx_v_c_ns_cache.new);
-    goto __pyx_L15;
+    goto __pyx_L17;
   }
-  __pyx_L15:;
+  __pyx_L17:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":398
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":406
  *     if c_ns_cache.new is not NULL:
  *         stdlib.free(c_ns_cache.new)
  *     if c_ns_cache.old is not NULL:             # <<<<<<<<<<<<<<
  *         stdlib.free(c_ns_cache.old)
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_ns_cache.old != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_5 = ((__pyx_v_c_ns_cache.old != NULL) != 0);
+  if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":399
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":407
  *         stdlib.free(c_ns_cache.new)
  *     if c_ns_cache.old is not NULL:
  *         stdlib.free(c_ns_cache.old)             # <<<<<<<<<<<<<<
@@ -11744,21 +11848,21 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *     # 3) fix the names in the tree if we moved it from a different thread
  */
     free(__pyx_v_c_ns_cache.old);
-    goto __pyx_L16;
+    goto __pyx_L18;
   }
-  __pyx_L16:;
+  __pyx_L18:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":402
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":410
  * 
  *     # 3) fix the names in the tree if we moved it from a different thread
  *     if doc._c_doc.dict is not c_source_doc.dict:             # <<<<<<<<<<<<<<
  *         fixThreadDictNames(c_start_node, c_source_doc.dict, doc._c_doc.dict)
  * 
  */
-  __pyx_t_1 = (__pyx_v_doc->_c_doc->dict != __pyx_v_c_source_doc->dict);
-  if (__pyx_t_1) {
+  __pyx_t_5 = ((__pyx_v_doc->_c_doc->dict != __pyx_v_c_source_doc->dict) != 0);
+  if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":403
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":411
  *     # 3) fix the names in the tree if we moved it from a different thread
  *     if doc._c_doc.dict is not c_source_doc.dict:
  *         fixThreadDictNames(c_start_node, c_source_doc.dict, doc._c_doc.dict)             # <<<<<<<<<<<<<<
@@ -11766,59 +11870,60 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *     # 4) fix _Document references
  */
     __pyx_f_4lxml_5etree_fixThreadDictNames(__pyx_v_c_start_node, __pyx_v_c_source_doc->dict, __pyx_v_doc->_c_doc->dict);
-    goto __pyx_L17;
+    goto __pyx_L19;
   }
-  __pyx_L17:;
+  __pyx_L19:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":407
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":415
  *     # 4) fix _Document references
  *     #    (and potentially deallocate the source document)
  *     if proxy_count > 0:             # <<<<<<<<<<<<<<
  *         if proxy_count == 1 and c_start_node._private is not NULL:
  *             proxy = getProxy(c_start_node)
  */
-  __pyx_t_1 = (__pyx_v_proxy_count > 0);
-  if (__pyx_t_1) {
+  __pyx_t_5 = ((__pyx_v_proxy_count > 0) != 0);
+  if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":408
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":416
  *     #    (and potentially deallocate the source document)
  *     if proxy_count > 0:
  *         if proxy_count == 1 and c_start_node._private is not NULL:             # <<<<<<<<<<<<<<
  *             proxy = getProxy(c_start_node)
  *             if proxy is not None:
  */
-    __pyx_t_1 = (__pyx_v_proxy_count == 1);
-    if (__pyx_t_1) {
-      __pyx_t_6 = (__pyx_v_c_start_node->_private != NULL);
-      __pyx_t_7 = __pyx_t_6;
+    __pyx_t_5 = ((__pyx_v_proxy_count == 1) != 0);
+    if (__pyx_t_5) {
+      __pyx_t_1 = ((__pyx_v_c_start_node->_private != NULL) != 0);
+      __pyx_t_6 = __pyx_t_1;
     } else {
-      __pyx_t_7 = __pyx_t_1;
+      __pyx_t_6 = __pyx_t_5;
     }
-    if (__pyx_t_7) {
+    if (__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":409
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":417
  *     if proxy_count > 0:
  *         if proxy_count == 1 and c_start_node._private is not NULL:
  *             proxy = getProxy(c_start_node)             # <<<<<<<<<<<<<<
  *             if proxy is not None:
  *                 _updateProxyDocument(proxy, doc)
  */
-      __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_start_node)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_8);
-      __pyx_v_proxy = ((struct LxmlElement *)__pyx_t_8);
-      __pyx_t_8 = 0;
+      __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_start_node)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_v_proxy = ((struct LxmlElement *)__pyx_t_9);
+      __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":410
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":418
  *         if proxy_count == 1 and c_start_node._private is not NULL:
  *             proxy = getProxy(c_start_node)
  *             if proxy is not None:             # <<<<<<<<<<<<<<
  *                 _updateProxyDocument(proxy, doc)
  *             else:
  */
-      __pyx_t_7 = (((PyObject *)__pyx_v_proxy) != Py_None);
-      if (__pyx_t_7) {
+      __pyx_t_6 = (((PyObject *)__pyx_v_proxy) != Py_None);
+      __pyx_t_5 = (__pyx_t_6 != 0);
+      if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":411
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":419
  *             proxy = getProxy(c_start_node)
  *             if proxy is not None:
  *                 _updateProxyDocument(proxy, doc)             # <<<<<<<<<<<<<<
@@ -11826,11 +11931,11 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  *                 fixElementDocument(c_start_node, doc, proxy_count)
  */
         __pyx_f_4lxml_5etree__updateProxyDocument(__pyx_v_proxy, __pyx_v_doc);
-        goto __pyx_L20;
+        goto __pyx_L22;
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":413
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":421
  *                 _updateProxyDocument(proxy, doc)
  *             else:
  *                 fixElementDocument(c_start_node, doc, proxy_count)             # <<<<<<<<<<<<<<
@@ -11839,12 +11944,12 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
         __pyx_f_4lxml_5etree_fixElementDocument(__pyx_v_c_start_node, __pyx_v_doc, __pyx_v_proxy_count);
       }
-      __pyx_L20:;
-      goto __pyx_L19;
+      __pyx_L22:;
+      goto __pyx_L21;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":415
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":423
  *                 fixElementDocument(c_start_node, doc, proxy_count)
  *         else:
  *             fixElementDocument(c_start_node, doc, proxy_count)             # <<<<<<<<<<<<<<
@@ -11853,12 +11958,12 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
  */
       __pyx_f_4lxml_5etree_fixElementDocument(__pyx_v_c_start_node, __pyx_v_doc, __pyx_v_proxy_count);
     }
-    __pyx_L19:;
-    goto __pyx_L18;
+    __pyx_L21:;
+    goto __pyx_L20;
   }
-  __pyx_L18:;
+  __pyx_L20:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":417
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":425
  *             fixElementDocument(c_start_node, doc, proxy_count)
  * 
  *     return 0             # <<<<<<<<<<<<<<
@@ -11871,7 +11976,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_8);
+  __Pyx_XDECREF(__pyx_t_9);
   __Pyx_AddTraceback("lxml.etree.moveNodeToDocument", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -11880,7 +11985,7 @@ static int __pyx_f_4lxml_5etree_moveNodeToDocument(struct LxmlDocument *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":420
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":428
  * 
  * 
  * cdef void fixElementDocument(xmlNode* c_element, _Document doc,             # <<<<<<<<<<<<<<
@@ -11894,12 +11999,13 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   __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;
   __Pyx_RefNannySetupContext("fixElementDocument", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":422
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":430
  * cdef void fixElementDocument(xmlNode* c_element, _Document doc,
  *                              size_t proxy_count):
  *     cdef xmlNode* c_node = c_element             # <<<<<<<<<<<<<<
@@ -11908,7 +12014,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
   __pyx_v_c_node = __pyx_v_c_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":423
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":431
  *                              size_t proxy_count):
  *     cdef xmlNode* c_node = c_element
  *     cdef _Element proxy = None # init-to-None required due to fake-loop below             # <<<<<<<<<<<<<<
@@ -11918,7 +12024,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   __Pyx_INCREF(Py_None);
   __pyx_v_proxy = ((struct LxmlElement *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":424
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":432
  *     cdef xmlNode* c_node = c_element
  *     cdef _Element proxy = None # init-to-None required due to fake-loop below
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)             # <<<<<<<<<<<<<<
@@ -11927,30 +12033,30 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
   BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_node, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":425
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":433
  *     cdef _Element proxy = None # init-to-None required due to fake-loop below
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node._private is not NULL:             # <<<<<<<<<<<<<<
  *         proxy = getProxy(c_node)
  *         if proxy is not None:
  */
-  __pyx_t_1 = (__pyx_v_c_node->_private != NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->_private != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":426
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":434
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node._private is not NULL:
  *         proxy = getProxy(c_node)             # <<<<<<<<<<<<<<
  *         if proxy is not None:
  *             _updateProxyDocument(proxy, doc)
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(((PyObject *)__pyx_v_proxy));
     __pyx_v_proxy = ((struct LxmlElement *)__pyx_t_2);
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":427
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":435
  *     if c_node._private is not NULL:
  *         proxy = getProxy(c_node)
  *         if proxy is not None:             # <<<<<<<<<<<<<<
@@ -11958,9 +12064,10 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  *             proxy_count -= 1
  */
     __pyx_t_1 = (((PyObject *)__pyx_v_proxy) != Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":428
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":436
  *         proxy = getProxy(c_node)
  *         if proxy is not None:
  *             _updateProxyDocument(proxy, doc)             # <<<<<<<<<<<<<<
@@ -11969,7 +12076,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
       __pyx_f_4lxml_5etree__updateProxyDocument(__pyx_v_proxy, __pyx_v_doc);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":429
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":437
  *         if proxy is not None:
  *             _updateProxyDocument(proxy, doc)
  *             proxy_count -= 1             # <<<<<<<<<<<<<<
@@ -11978,17 +12085,17 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
       __pyx_v_proxy_count = (__pyx_v_proxy_count - 1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":430
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":438
  *             _updateProxyDocument(proxy, doc)
  *             proxy_count -= 1
  *             if proxy_count == 0:             # <<<<<<<<<<<<<<
  *                 return
  *     tree.END_FOR_EACH_FROM(c_node)
  */
-      __pyx_t_1 = (__pyx_v_proxy_count == 0);
-      if (__pyx_t_1) {
+      __pyx_t_3 = ((__pyx_v_proxy_count == 0) != 0);
+      if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":431
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":439
  *             proxy_count -= 1
  *             if proxy_count == 0:
  *                 return             # <<<<<<<<<<<<<<
@@ -12006,7 +12113,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":432
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":440
  *             if proxy_count == 0:
  *                 return
  *     tree.END_FOR_EACH_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -12024,7 +12131,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":434
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":442
  *     tree.END_FOR_EACH_FROM(c_node)
  * 
  * cdef void fixThreadDictNames(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -12038,31 +12145,31 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
   int __pyx_t_3;
   xmlNode *__pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":441
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":449
  *     # this should only be called when the element is based on a
  *     # different libxml2 tag name dictionary
  *     if c_element.type == tree.XML_DOCUMENT_NODE or \             # <<<<<<<<<<<<<<
  *             c_element.type == tree.XML_HTML_DOCUMENT_NODE:
  *         # may define "xml" namespace
  */
-  __pyx_t_1 = (__pyx_v_c_element->type == XML_DOCUMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_element->type == XML_DOCUMENT_NODE) != 0);
   if (!__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":442
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":450
  *     # different libxml2 tag name dictionary
  *     if c_element.type == tree.XML_DOCUMENT_NODE or \
  *             c_element.type == tree.XML_HTML_DOCUMENT_NODE:             # <<<<<<<<<<<<<<
  *         # may define "xml" namespace
  *         fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
  */
-    __pyx_t_2 = (__pyx_v_c_element->type == XML_HTML_DOCUMENT_NODE);
+    __pyx_t_2 = ((__pyx_v_c_element->type == XML_HTML_DOCUMENT_NODE) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":444
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":452
  *             c_element.type == tree.XML_HTML_DOCUMENT_NODE:
  *         # may define "xml" namespace
  *         fixThreadDictNsForNode(c_element, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12071,7 +12178,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
  */
     __pyx_f_4lxml_5etree_fixThreadDictNsForNode(__pyx_v_c_element, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":445
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":453
  *         # may define "xml" namespace
  *         fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
  *         c_element = c_element.children             # <<<<<<<<<<<<<<
@@ -12081,7 +12188,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
     __pyx_t_4 = __pyx_v_c_element->children;
     __pyx_v_c_element = __pyx_t_4;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":446
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":454
  *         fixThreadDictNsForNode(c_element, c_src_dict, c_dict)
  *         c_element = c_element.children
  *         while c_element is not NULL:             # <<<<<<<<<<<<<<
@@ -12089,10 +12196,10 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
  *             c_element = c_element.next
  */
     while (1) {
-      __pyx_t_3 = (__pyx_v_c_element != NULL);
+      __pyx_t_3 = ((__pyx_v_c_element != NULL) != 0);
       if (!__pyx_t_3) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":447
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":455
  *         c_element = c_element.children
  *         while c_element is not NULL:
  *             fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12101,7 +12208,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
  */
       __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(__pyx_v_c_element, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":448
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":456
  *         while c_element is not NULL:
  *             fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  *             c_element = c_element.next             # <<<<<<<<<<<<<<
@@ -12114,17 +12221,17 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":449
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":457
  *             fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  *             c_element = c_element.next
  *     elif tree._isElementOrXInclude(c_element):             # <<<<<<<<<<<<<<
  *         fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  * 
  */
-  __pyx_t_3 = _isElementOrXInclude(__pyx_v_c_element);
+  __pyx_t_3 = (_isElementOrXInclude(__pyx_v_c_element) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":450
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":458
  *             c_element = c_element.next
  *     elif tree._isElementOrXInclude(c_element):
  *         fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12138,7 +12245,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNames(xmlNode *__pyx_v_c_element,
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":452
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":460
  *         fixThreadDictNamesForNode(c_element, c_src_dict, c_dict)
  * 
  * cdef void fixThreadDictNamesForNode(xmlNode* c_element,             # <<<<<<<<<<<<<<
@@ -12153,7 +12260,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   int __pyx_t_3;
   int __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":455
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":463
  *                                     tree.xmlDict* c_src_dict,
  *                                     tree.xmlDict* c_dict) nogil:
  *     cdef xmlNode* c_node = c_element             # <<<<<<<<<<<<<<
@@ -12162,7 +12269,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
   __pyx_v_c_node = __pyx_v_c_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":456
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":464
  *                                     tree.xmlDict* c_dict) nogil:
  *     cdef xmlNode* c_node = c_element
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)             # <<<<<<<<<<<<<<
@@ -12171,17 +12278,17 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
   BEGIN_FOR_EACH_FROM(__pyx_v_c_element, __pyx_v_c_node, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":457
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":465
  *     cdef xmlNode* c_node = c_element
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node.name is not NULL:             # <<<<<<<<<<<<<<
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)
  *     if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START):
  */
-  __pyx_t_1 = (__pyx_v_c_node->name != NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->name != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":458
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":466
  *     tree.BEGIN_FOR_EACH_FROM(c_element, c_node, 1)
  *     if c_node.name is not NULL:
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12193,7 +12300,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":459
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":467
  *     if c_node.name is not NULL:
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)
  *     if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START):             # <<<<<<<<<<<<<<
@@ -12208,10 +12315,10 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   } else {
     __pyx_t_4 = __pyx_t_1;
   }
-  __pyx_t_1 = __pyx_t_4;
+  __pyx_t_1 = (__pyx_t_4 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":461
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":469
  *     if c_node.type in (tree.XML_ELEMENT_NODE, tree.XML_XINCLUDE_START):
  *         fixThreadDictNamesForAttributes(
  *             c_node.properties, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12220,7 +12327,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
  */
     __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(__pyx_v_c_node->properties, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":462
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":470
  *         fixThreadDictNamesForAttributes(
  *             c_node.properties, c_src_dict, c_dict)
  *         fixThreadDictNsForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12231,17 +12338,17 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
     goto __pyx_L4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":463
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":471
  *             c_node.properties, c_src_dict, c_dict)
  *         fixThreadDictNsForNode(c_node, c_src_dict, c_dict)
  *     elif c_node.type == tree.XML_TEXT_NODE:             # <<<<<<<<<<<<<<
  *         # libxml2's SAX2 parser interns some indentation space
  *         fixThreadDictContentForNode(c_node, c_src_dict, c_dict)
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_TEXT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_TEXT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":465
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":473
  *     elif c_node.type == tree.XML_TEXT_NODE:
  *         # libxml2's SAX2 parser interns some indentation space
  *         fixThreadDictContentForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12253,7 +12360,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":466
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":474
  *         # libxml2's SAX2 parser interns some indentation space
  *         fixThreadDictContentForNode(c_node, c_src_dict, c_dict)
  *     tree.END_FOR_EACH_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -12264,7 +12371,7 @@ static void __pyx_f_4lxml_5etree_fixThreadDictNamesForNode(xmlNode *__pyx_v_c_el
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":468
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":476
  *     tree.END_FOR_EACH_FROM(c_node)
  * 
  * cdef inline void fixThreadDictNamesForAttributes(tree.xmlAttr* c_attr,             # <<<<<<<<<<<<<<
@@ -12278,7 +12385,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
   int __pyx_t_1;
   xmlNode *__pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":472
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":480
  *                                                  tree.xmlDict* c_dict) nogil:
  *     cdef xmlNode* c_child
  *     cdef xmlNode* c_node = <xmlNode*>c_attr             # <<<<<<<<<<<<<<
@@ -12287,7 +12394,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  */
   __pyx_v_c_node = ((xmlNode *)__pyx_v_c_attr);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":473
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":481
  *     cdef xmlNode* c_child
  *     cdef xmlNode* c_node = <xmlNode*>c_attr
  *     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -12295,10 +12402,10 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  *         # libxml2 keeps some (!) attribute values in the dict
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":474
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":482
  *     cdef xmlNode* c_node = <xmlNode*>c_attr
  *     while c_node is not NULL:
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12307,7 +12414,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  */
     __pyx_f_4lxml_5etree_fixThreadDictNameForNode(__pyx_v_c_node, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":476
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":484
  *         fixThreadDictNameForNode(c_node, c_src_dict, c_dict)
  *         # libxml2 keeps some (!) attribute values in the dict
  *         c_child = c_node.children             # <<<<<<<<<<<<<<
@@ -12317,7 +12424,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
     __pyx_t_2 = __pyx_v_c_node->children;
     __pyx_v_c_child = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":477
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":485
  *         # libxml2 keeps some (!) attribute values in the dict
  *         c_child = c_node.children
  *         while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -12325,10 +12432,10 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  *             c_child = c_child.next
  */
     while (1) {
-      __pyx_t_1 = (__pyx_v_c_child != NULL);
+      __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_1) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":478
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":486
  *         c_child = c_node.children
  *         while c_child is not NULL:
  *             fixThreadDictContentForNode(c_child, c_src_dict, c_dict)             # <<<<<<<<<<<<<<
@@ -12337,7 +12444,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
  */
       __pyx_f_4lxml_5etree_fixThreadDictContentForNode(__pyx_v_c_child, __pyx_v_c_src_dict, __pyx_v_c_dict);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":479
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":487
  *         while c_child is not NULL:
  *             fixThreadDictContentForNode(c_child, c_src_dict, c_dict)
  *             c_child = c_child.next             # <<<<<<<<<<<<<<
@@ -12348,7 +12455,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
       __pyx_v_c_child = __pyx_t_2;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":480
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":488
  *             fixThreadDictContentForNode(c_child, c_src_dict, c_dict)
  *             c_child = c_child.next
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -12361,7 +12468,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNamesForAttributes(x
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":482
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":490
  *         c_node = c_node.next
  * 
  * cdef inline void fixThreadDictNameForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -12376,9 +12483,8 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   int __pyx_t_3;
   int __pyx_t_4;
   int __pyx_t_5;
-  int __pyx_t_6;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":485
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":493
  *                                           tree.xmlDict* c_src_dict,
  *                                           tree.xmlDict* c_dict) nogil:
  *     cdef const_xmlChar* c_name = c_node.name             # <<<<<<<<<<<<<<
@@ -12388,34 +12494,34 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   __pyx_t_1 = __pyx_v_c_node->name;
   __pyx_v_c_name = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":486
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":494
  *                                           tree.xmlDict* c_dict) nogil:
  *     cdef const_xmlChar* c_name = c_node.name
  *     if c_name is not NULL and \             # <<<<<<<<<<<<<<
  *            c_node.type != tree.XML_TEXT_NODE and \
  *            c_node.type != tree.XML_COMMENT_NODE:
  */
-  __pyx_t_2 = (__pyx_v_c_name != NULL);
+  __pyx_t_2 = ((__pyx_v_c_name != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":487
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":495
  *     cdef const_xmlChar* c_name = c_node.name
  *     if c_name is not NULL and \
  *            c_node.type != tree.XML_TEXT_NODE and \             # <<<<<<<<<<<<<<
  *            c_node.type != tree.XML_COMMENT_NODE:
  *         if tree.xmlDictOwns(c_src_dict, c_node.name):
  */
-    __pyx_t_3 = (__pyx_v_c_node->type != XML_TEXT_NODE);
+    __pyx_t_3 = ((__pyx_v_c_node->type != XML_TEXT_NODE) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":488
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":496
  *     if c_name is not NULL and \
  *            c_node.type != tree.XML_TEXT_NODE and \
  *            c_node.type != tree.XML_COMMENT_NODE:             # <<<<<<<<<<<<<<
  *         if tree.xmlDictOwns(c_src_dict, c_node.name):
  *             # c_name can be NULL on memory error, but we don't handle that here
  */
-      __pyx_t_4 = (__pyx_v_c_node->type != XML_COMMENT_NODE);
+      __pyx_t_4 = ((__pyx_v_c_node->type != XML_COMMENT_NODE) != 0);
       __pyx_t_5 = __pyx_t_4;
     } else {
       __pyx_t_5 = __pyx_t_3;
@@ -12426,17 +12532,17 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":489
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":497
  *            c_node.type != tree.XML_TEXT_NODE and \
  *            c_node.type != tree.XML_COMMENT_NODE:
  *         if tree.xmlDictOwns(c_src_dict, c_node.name):             # <<<<<<<<<<<<<<
  *             # c_name can be NULL on memory error, but we don't handle that here
  *             c_name = tree.xmlDictLookup(c_dict, c_name, -1)
  */
-    __pyx_t_6 = xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_node->name);
-    if (__pyx_t_6) {
+    __pyx_t_3 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_node->name) != 0);
+    if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":491
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":499
  *         if tree.xmlDictOwns(c_src_dict, c_node.name):
  *             # c_name can be NULL on memory error, but we don't handle that here
  *             c_name = tree.xmlDictLookup(c_dict, c_name, -1)             # <<<<<<<<<<<<<<
@@ -12445,17 +12551,17 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
  */
       __pyx_v_c_name = xmlDictLookup(__pyx_v_c_dict, __pyx_v_c_name, -1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":492
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":500
  *             # c_name can be NULL on memory error, but we don't handle that here
  *             c_name = tree.xmlDictLookup(c_dict, c_name, -1)
  *             if c_name is not NULL:             # <<<<<<<<<<<<<<
  *                 c_node.name = c_name
  * 
  */
-      __pyx_t_3 = (__pyx_v_c_name != NULL);
+      __pyx_t_3 = ((__pyx_v_c_name != NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":493
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":501
  *             c_name = tree.xmlDictLookup(c_dict, c_name, -1)
  *             if c_name is not NULL:
  *                 c_node.name = c_name             # <<<<<<<<<<<<<<
@@ -12475,7 +12581,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNameForNode(xmlNode
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":495
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":503
  *                 c_node.name = c_name
  * 
  * cdef inline void fixThreadDictContentForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -12487,43 +12593,42 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
   int __pyx_t_1;
   int __pyx_t_2;
   int __pyx_t_3;
-  int __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":498
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":506
  *                                              tree.xmlDict* c_src_dict,
  *                                              tree.xmlDict* c_dict) nogil:
  *     if c_node.content is not NULL and \             # <<<<<<<<<<<<<<
  *            c_node.content is not <xmlChar*>&c_node.properties:
  *         if tree.xmlDictOwns(c_src_dict, c_node.content):
  */
-  __pyx_t_1 = (__pyx_v_c_node->content != NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->content != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":499
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":507
  *                                              tree.xmlDict* c_dict) nogil:
  *     if c_node.content is not NULL and \
  *            c_node.content is not <xmlChar*>&c_node.properties:             # <<<<<<<<<<<<<<
  *         if tree.xmlDictOwns(c_src_dict, c_node.content):
  *             # result can be NULL on memory error, but we don't handle that here
  */
-    __pyx_t_2 = (__pyx_v_c_node->content != ((xmlChar *)(&__pyx_v_c_node->properties)));
+    __pyx_t_2 = ((__pyx_v_c_node->content != ((xmlChar *)(&__pyx_v_c_node->properties))) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":500
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":508
  *     if c_node.content is not NULL and \
  *            c_node.content is not <xmlChar*>&c_node.properties:
  *         if tree.xmlDictOwns(c_src_dict, c_node.content):             # <<<<<<<<<<<<<<
  *             # result can be NULL on memory error, but we don't handle that here
  *             c_node.content = <xmlChar*>tree.xmlDictLookup(c_dict, c_node.content, -1)
  */
-    __pyx_t_4 = xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_node->content);
-    if (__pyx_t_4) {
+    __pyx_t_3 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_node->content) != 0);
+    if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":502
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":510
  *         if tree.xmlDictOwns(c_src_dict, c_node.content):
  *             # result can be NULL on memory error, but we don't handle that here
  *             c_node.content = <xmlChar*>tree.xmlDictLookup(c_dict, c_node.content, -1)             # <<<<<<<<<<<<<<
@@ -12540,7 +12645,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictContentForNode(xmlNo
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":504
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":512
  *             c_node.content = <xmlChar*>tree.xmlDictLookup(c_dict, c_node.content, -1)
  * 
  * cdef inline void fixThreadDictNsForNode(xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -12552,9 +12657,8 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
   xmlNs *__pyx_v_c_ns;
   xmlNs *__pyx_t_1;
   int __pyx_t_2;
-  int __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":507
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":515
  *                                         tree.xmlDict* c_src_dict,
  *                                         tree.xmlDict* c_dict) nogil:
  *     cdef xmlNs* c_ns = c_node.nsDef             # <<<<<<<<<<<<<<
@@ -12564,7 +12668,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
   __pyx_t_1 = __pyx_v_c_node->nsDef;
   __pyx_v_c_ns = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":508
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":516
  *                                         tree.xmlDict* c_dict) nogil:
  *     cdef xmlNs* c_ns = c_node.nsDef
  *     while c_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -12572,30 +12676,30 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_ns != NULL);
+    __pyx_t_2 = ((__pyx_v_c_ns != NULL) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":509
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":517
  *     cdef xmlNs* c_ns = c_node.nsDef
  *     while c_ns is not NULL:
  *         if c_ns.href is not NULL:             # <<<<<<<<<<<<<<
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)
  */
-    __pyx_t_2 = (__pyx_v_c_ns->href != NULL);
+    __pyx_t_2 = ((__pyx_v_c_ns->href != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":510
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":518
  *     while c_ns is not NULL:
  *         if c_ns.href is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):             # <<<<<<<<<<<<<<
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)
  *         if c_ns.prefix is not NULL:
  */
-      __pyx_t_3 = xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_ns->href);
-      if (__pyx_t_3) {
+      __pyx_t_2 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_ns->href) != 0);
+      if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":511
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":519
  *         if c_ns.href is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)             # <<<<<<<<<<<<<<
@@ -12610,27 +12714,27 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":512
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":520
  *             if tree.xmlDictOwns(c_src_dict, c_ns.href):
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)
  *         if c_ns.prefix is not NULL:             # <<<<<<<<<<<<<<
  *             if tree.xmlDictOwns(c_src_dict, c_ns.prefix):
  *                 c_ns.prefix = tree.xmlDictLookup(c_dict, c_ns.prefix, -1)
  */
-    __pyx_t_2 = (__pyx_v_c_ns->prefix != NULL);
+    __pyx_t_2 = ((__pyx_v_c_ns->prefix != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":513
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":521
  *                 c_ns.href = tree.xmlDictLookup(c_dict, c_ns.href, -1)
  *         if c_ns.prefix is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.prefix):             # <<<<<<<<<<<<<<
  *                 c_ns.prefix = tree.xmlDictLookup(c_dict, c_ns.prefix, -1)
  *         c_ns = c_ns.next
  */
-      __pyx_t_3 = xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_ns->prefix);
-      if (__pyx_t_3) {
+      __pyx_t_2 = (xmlDictOwns(__pyx_v_c_src_dict, __pyx_v_c_ns->prefix) != 0);
+      if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":514
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":522
  *         if c_ns.prefix is not NULL:
  *             if tree.xmlDictOwns(c_src_dict, c_ns.prefix):
  *                 c_ns.prefix = tree.xmlDictLookup(c_dict, c_ns.prefix, -1)             # <<<<<<<<<<<<<<
@@ -12644,7 +12748,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree_fixThreadDictNsForNode(xmlNode *_
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":515
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":523
  *             if tree.xmlDictOwns(c_src_dict, c_ns.prefix):
  *                 c_ns.prefix = tree.xmlDictLookup(c_dict, c_ns.prefix, -1)
  *         c_ns = c_ns.next             # <<<<<<<<<<<<<<
@@ -12716,7 +12820,7 @@ static void __pyx_f_4lxml_5etree_displayNode(xmlNode *__pyx_v_c_node, PyObject *
  *         c_child = c_child.next
  */
   while (1) {
-    __pyx_t_5 = (__pyx_v_c_child != NULL);
+    __pyx_t_5 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_5) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":11
@@ -12778,7 +12882,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__assertValidNode(struct LxmlElemen
  * cdef inline int _assertValidDoc(_Document doc) except -1:
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_element->_c_node != NULL))) {
+  if (unlikely(!((__pyx_v_element->_c_node != NULL) != 0))) {
     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(((PyObject *)__pyx_v_element));
@@ -12834,7 +12938,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__assertValidDoc(struct LxmlDocumen
  * cdef _Document _documentOrRaise(object input):
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_doc->_c_doc != NULL))) {
+  if (unlikely(!((__pyx_v_doc->_c_doc != NULL) != 0))) {
     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(((PyObject *)__pyx_v_doc));
@@ -12877,9 +12981,10 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
   struct LxmlDocument *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -12893,7 +12998,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *             doc = (<_ElementTree>input)._context_node._doc
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":28
  *     cdef _Document doc
@@ -12902,7 +13008,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *             doc = (<_ElementTree>input)._context_node._doc
  *         else:
  */
-    __pyx_t_1 = (((PyObject *)((struct LxmlElementTree *)__pyx_v_input)->_context_node) != Py_None);
+    __pyx_t_2 = (((PyObject *)((struct LxmlElementTree *)__pyx_v_input)->_context_node) != Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":29
@@ -12912,10 +13019,10 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *         else:
  *             doc = None
  */
-      __pyx_t_2 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_input)->_context_node->_doc);
-      __Pyx_INCREF(__pyx_t_2);
-      __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-      __pyx_t_2 = 0;
+      __pyx_t_3 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_input)->_context_node->_doc);
+      __Pyx_INCREF(__pyx_t_3);
+      __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+      __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     /*else*/ {
@@ -12942,7 +13049,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *     elif isinstance(input, _Document):
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":33
  *             doc = None
@@ -12951,10 +13059,10 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *     elif isinstance(input, _Document):
  *         doc = <_Document>input
  */
-    __pyx_t_2 = ((PyObject *)((struct LxmlElement *)__pyx_v_input)->_doc);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)((struct LxmlElement *)__pyx_v_input)->_doc);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
 
@@ -12965,7 +13073,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *         doc = <_Document>input
  *     else:
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__Document)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__Document)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":35
@@ -12988,13 +13097,13 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *     if doc is None:
  *         raise ValueError, u"Input object has no document: %s" % \
  */
-    __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_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_t_3 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 38; __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);
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_20), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -13007,7 +13116,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *             python._fqtypename(input)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_doc) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":41
  *     if doc is None:
@@ -13016,13 +13126,13 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *     _assertValidDoc(doc)
  *     return doc
  */
-    __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_t_4 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_21), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __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_4)); __pyx_t_4 = 0;
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), 0, 0);
-    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
   }
@@ -13035,7 +13145,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
  *     return doc
  * 
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":43
  *             python._fqtypename(input)
@@ -13052,8 +13162,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentOrRaise(PyObject *__py
   __pyx_r = ((struct LxmlDocument *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._documentOrRaise", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -13076,9 +13186,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
   struct LxmlElement *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -13092,7 +13203,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     elif isinstance(input, _Element):
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":53
  *     cdef _Element node
@@ -13101,10 +13213,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     elif isinstance(input, _Element):
  *         node = <_Element>input
  */
-    __pyx_t_2 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_input)->_context_node);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_node = ((struct LxmlElement *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_input)->_context_node);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_node = ((struct LxmlElement *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
 
@@ -13115,7 +13227,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *         node = <_Element>input
  *     elif isinstance(input, _Document):
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":55
@@ -13138,7 +13251,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     else:
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_input, ((PyObject*)__pyx_ptype_4lxml_5etree__Document)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":57
  *         node = <_Element>input
@@ -13147,11 +13261,11 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     else:
  *         raise TypeError, u"Invalid input object: %s" % \
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_9_Document_getroot(((struct LxmlDocument *)__pyx_v_input)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_node = ((struct LxmlElement *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(((struct LxmlDocument *)__pyx_v_input)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 57; __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[4]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_node = ((struct LxmlElement *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -13163,13 +13277,13 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     if node is None:
  *         raise ValueError, u"Input object has no element: %s" % \
  */
-    __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_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_t_3 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 60; __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);
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_20), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -13181,7 +13295,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *         raise ValueError, u"Input object has no element: %s" % \
  *             python._fqtypename(input)
  */
-  __pyx_t_1 = (((PyObject *)__pyx_v_node) == Py_None);
+  __pyx_t_2 = (((PyObject *)__pyx_v_node) == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":63
@@ -13191,13 +13306,13 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     _assertValidNode(node)
  *     return node
  */
-    __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_t_4 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_input)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_22), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __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_4)); __pyx_t_4 = 0;
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), 0, 0);
-    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -13210,7 +13325,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
  *     return node
  * 
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":65
  *             python._fqtypename(input)
@@ -13227,8 +13342,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__rootNodeOrRaise(PyObject *__pyx
   __pyx_r = ((struct LxmlElement *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._rootNodeOrRaise", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -13253,13 +13368,13 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   struct LxmlElement *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  xmlDoc *__pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_2;
+  xmlDoc *__pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
-  PyObject *(*__pyx_t_7)(PyObject *);
-  int __pyx_t_8;
+  PyObject *__pyx_t_7 = NULL;
+  PyObject *(*__pyx_t_8)(PyObject *);
   int __pyx_t_9;
   xmlNode *__pyx_t_10;
   int __pyx_t_11;
@@ -13280,7 +13395,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *     ns_utf, name_utf = _getNsTag(tag)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_doc) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":86
  *     cdef xmlNode* c_node
@@ -13289,8 +13405,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *     ns_utf, name_utf = _getNsTag(tag)
  *     if parser is not None and parser._for_html:
  */
-    __pyx_t_2 = __pyx_v_doc->_c_doc;
-    __pyx_v_c_doc = __pyx_t_2;
+    __pyx_t_3 = __pyx_v_doc->_c_doc;
+    __pyx_v_c_doc = __pyx_t_3;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -13302,10 +13418,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *     if parser is not None and parser._for_html:
  *         _htmlTagValidOrRaise(name_utf)
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  if (likely(PyTuple_CheckExact(__pyx_t_3))) {
-    PyObject* sequence = __pyx_t_3;
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  if (likely(PyTuple_CheckExact(__pyx_t_4))) {
+    PyObject* sequence = __pyx_t_4;
     #if CYTHON_COMPILING_IN_CPYTHON
     Py_ssize_t size = Py_SIZE(sequence);
     #else
@@ -13317,45 +13433,45 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
       {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
-    __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
-    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
+    __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
     __Pyx_INCREF(__pyx_t_5);
+    __Pyx_INCREF(__pyx_t_6);
     #else
-    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
     #endif
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   } else if (1) {
     __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
-    index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
-    __Pyx_GOTREF(__pyx_t_4);
-    index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
+    __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
+    index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_5);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_7 = NULL;
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed;
+    __Pyx_GOTREF(__pyx_t_6);
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = NULL;
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     goto __pyx_L5_unpacking_done;
     __pyx_L4_unpacking_failed:;
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_t_7 = NULL;
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+    __pyx_t_8 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L5_unpacking_done:;
   }
-  __pyx_v_ns_utf = __pyx_t_4;
-  __pyx_t_4 = 0;
-  __pyx_v_name_utf = __pyx_t_5;
+  __pyx_v_ns_utf = __pyx_t_5;
   __pyx_t_5 = 0;
+  __pyx_v_name_utf = __pyx_t_6;
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":88
  *         c_doc = doc._c_doc
@@ -13364,13 +13480,13 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *         _htmlTagValidOrRaise(name_utf)
  *         if c_doc is NULL:
  */
-  __pyx_t_1 = (((PyObject *)__pyx_v_parser) != Py_None);
-  if (__pyx_t_1) {
-    __pyx_t_8 = __pyx_v_parser->_for_html;
+  __pyx_t_2 = (((PyObject *)__pyx_v_parser) != Py_None);
+  if ((__pyx_t_2 != 0)) {
+    __pyx_t_1 = (__pyx_v_parser->_for_html != 0);
   } else {
-    __pyx_t_8 = __pyx_t_1;
+    __pyx_t_1 = (__pyx_t_2 != 0);
   }
-  if (__pyx_t_8) {
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":89
  *     ns_utf, name_utf = _getNsTag(tag)
@@ -13388,8 +13504,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *             c_doc = _newHTMLDoc()
  *     else:
  */
-    __pyx_t_8 = (__pyx_v_c_doc == NULL);
-    if (__pyx_t_8) {
+    __pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":91
  *         _htmlTagValidOrRaise(name_utf)
@@ -13398,8 +13514,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *     else:
  *         _tagValidOrRaise(name_utf)
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_v_c_doc = __pyx_t_2;
+      __pyx_t_3 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_v_c_doc = __pyx_t_3;
       goto __pyx_L7;
     }
     __pyx_L7:;
@@ -13423,8 +13539,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *             c_doc = _newXMLDoc()
  *     c_node = _createElement(c_doc, name_utf)
  */
-    __pyx_t_8 = (__pyx_v_c_doc == NULL);
-    if (__pyx_t_8) {
+    __pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":95
  *         _tagValidOrRaise(name_utf)
@@ -13433,8 +13549,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_v_c_doc = __pyx_t_2;
+      __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_v_c_doc = __pyx_t_3;
       goto __pyx_L8;
     }
     __pyx_L8:;
@@ -13458,8 +13574,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *         if doc is None and c_doc is not NULL:
  *             tree.xmlFreeDoc(c_doc)
  */
-  __pyx_t_8 = (__pyx_v_c_node == NULL);
-  if (__pyx_t_8) {
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":98
  *     c_node = _createElement(c_doc, name_utf)
@@ -13468,12 +13584,12 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *             tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()
  */
-    __pyx_t_8 = (((PyObject *)__pyx_v_doc) == Py_None);
-    if (__pyx_t_8) {
-      __pyx_t_1 = (__pyx_v_c_doc != NULL);
-      __pyx_t_11 = __pyx_t_1;
+    __pyx_t_1 = (((PyObject *)__pyx_v_doc) == Py_None);
+    if ((__pyx_t_1 != 0)) {
+      __pyx_t_2 = ((__pyx_v_c_doc != NULL) != 0);
+      __pyx_t_11 = __pyx_t_2;
     } else {
-      __pyx_t_11 = __pyx_t_8;
+      __pyx_t_11 = (__pyx_t_1 != 0);
     }
     if (__pyx_t_11) {
 
@@ -13523,7 +13639,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *             doc = _documentFactory(c_doc, parser)
  */
       __pyx_t_11 = (((PyObject *)__pyx_v_doc) == Py_None);
-      if (__pyx_t_11) {
+      __pyx_t_1 = (__pyx_t_11 != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":103
  *     try:
@@ -13541,11 +13658,11 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *         if text is not None:
  *             _setNodeText(c_node, text)
  */
-        __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
-        __Pyx_GOTREF(__pyx_t_3);
+        __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+        __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(((PyObject *)__pyx_v_doc));
-        __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
-        __pyx_t_3 = 0;
+        __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+        __pyx_t_4 = 0;
         goto __pyx_L19;
       }
       __pyx_L19:;
@@ -13557,7 +13674,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *             _setNodeText(c_node, text)
  *         if tail is not None:
  */
-      __pyx_t_11 = (__pyx_v_text != Py_None);
+      __pyx_t_1 = (__pyx_v_text != Py_None);
+      __pyx_t_11 = (__pyx_t_1 != 0);
       if (__pyx_t_11) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":106
@@ -13580,7 +13698,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *         # add namespaces to node if necessary
  */
       __pyx_t_11 = (__pyx_v_tail != Py_None);
-      if (__pyx_t_11) {
+      __pyx_t_1 = (__pyx_t_11 != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":108
  *             _setNodeText(c_node, text)
@@ -13610,9 +13729,9 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *         return _elementFactory(doc, c_node)
  *     except:
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, __pyx_v_doc, __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_4 = __pyx_f_4lxml_5etree__initNodeAttributes(__pyx_v_c_node, __pyx_v_doc, __pyx_v_attrib, __pyx_v_extra_attrs); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":112
  *         _initNodeNamespaces(c_node, doc, ns_utf, nsmap)
@@ -13622,10 +13741,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *         # free allocated c_node/c_doc unless Python does it for us
  */
       __Pyx_XDECREF(((PyObject *)__pyx_r));
-      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __pyx_r = ((struct LxmlElement *)__pyx_t_3);
-      __pyx_t_3 = 0;
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_r = ((struct LxmlElement *)__pyx_t_4);
+      __pyx_t_4 = 0;
       goto __pyx_L15_try_return;
     }
     __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
@@ -13639,10 +13758,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
     __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
     goto __pyx_L0;
     __pyx_L11_error:;
+    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
+    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":113
  *         _initNodeAttributes(c_node, doc, attrib, extra_attrs)
@@ -13653,10 +13772,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._makeElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_5, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_GOTREF(__pyx_t_5);
+      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
       __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_GOTREF(__pyx_t_5);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":115
  *     except:
@@ -13665,8 +13784,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *             # node not yet in document => will not be freed by document
  *             if tail is not None:
  */
-      __pyx_t_11 = (__pyx_v_c_node->doc != __pyx_v_c_doc);
-      if (__pyx_t_11) {
+      __pyx_t_1 = ((__pyx_v_c_node->doc != __pyx_v_c_doc) != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":117
  *         if c_node.doc is not c_doc:
@@ -13675,7 +13794,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *                 _removeText(c_node.next) # tail
  *             tree.xmlFreeNode(c_node)
  */
-        __pyx_t_11 = (__pyx_v_tail != Py_None);
+        __pyx_t_1 = (__pyx_v_tail != Py_None);
+        __pyx_t_11 = (__pyx_t_1 != 0);
         if (__pyx_t_11) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":118
@@ -13710,7 +13830,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  *             tree.xmlFreeDoc(c_doc)
  */
       __pyx_t_11 = (((PyObject *)__pyx_v_doc) == Py_None);
-      if (__pyx_t_11) {
+      __pyx_t_1 = (__pyx_t_11 != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":122
  *         if doc is None:
@@ -13731,15 +13852,15 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  * 
  * cdef int _initNewElement(_Element element, bint is_html, name_utf, ns_utf,
  */
-      __Pyx_GIVEREF(__pyx_t_3);
-      __Pyx_GIVEREF(__pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_4);
-      __Pyx_ErrRestore(__pyx_t_3, __pyx_t_5, __pyx_t_4);
-      __pyx_t_3 = 0; __pyx_t_5 = 0; __pyx_t_4 = 0; 
+      __Pyx_GIVEREF(__pyx_t_6);
+      __Pyx_GIVEREF(__pyx_t_5);
+      __Pyx_ErrRestore(__pyx_t_4, __pyx_t_6, __pyx_t_5);
+      __pyx_t_4 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; 
       {__pyx_filename = __pyx_f[4]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       goto __pyx_L12_exception_handled;
     }
     __pyx_L13_except_error:;
@@ -13759,10 +13880,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
   __pyx_r = ((struct LxmlElement *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.etree._makeElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -13789,9 +13910,9 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  xmlDoc *__pyx_t_2;
-  xmlNode *__pyx_t_3;
-  int __pyx_t_4;
+  int __pyx_t_2;
+  xmlDoc *__pyx_t_3;
+  xmlNode *__pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
@@ -13806,7 +13927,8 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *         _htmlTagValidOrRaise(name_utf)
  *         c_doc = _newHTMLDoc()
  */
-  if (__pyx_v_is_html) {
+  __pyx_t_1 = (__pyx_v_is_html != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":136
  *     cdef _Document doc
@@ -13815,7 +13937,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *         c_doc = _newHTMLDoc()
  *     else:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":137
  *     if is_html:
@@ -13824,8 +13946,8 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *     else:
  *         _tagValidOrRaise(name_utf)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_doc = __pyx_t_2;
+    __pyx_t_3 = __pyx_f_4lxml_5etree__newHTMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_doc = __pyx_t_3;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -13837,7 +13959,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *         c_doc = _newXMLDoc()
  *     c_node = _createElement(c_doc, name_utf)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name_utf); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":140
  *     else:
@@ -13846,8 +13968,8 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *     c_node = _createElement(c_doc, name_utf)
  *     if c_node is NULL:
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_doc = __pyx_t_2;
+    __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_doc = __pyx_t_3;
   }
   __pyx_L3:;
 
@@ -13858,8 +13980,8 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *     if c_node is NULL:
  *         if c_doc is not NULL:
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_node = __pyx_t_3;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__createElement(__pyx_v_c_doc, __pyx_v_name_utf); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_node = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":142
  *         c_doc = _newXMLDoc()
@@ -13868,8 +13990,8 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *         if c_doc is not NULL:
  *             tree.xmlFreeDoc(c_doc)
  */
-  __pyx_t_4 = (__pyx_v_c_node == NULL);
-  if (__pyx_t_4) {
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":143
  *     c_node = _createElement(c_doc, name_utf)
@@ -13878,8 +14000,8 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *             tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()
  */
-    __pyx_t_4 = (__pyx_v_c_doc != NULL);
-    if (__pyx_t_4) {
+    __pyx_t_1 = ((__pyx_v_c_doc != NULL) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":144
  *     if c_node is NULL:
@@ -13933,7 +14055,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *     _initNodeAttributes(c_node, doc, attrib, extra_attrs)
  *     _registerProxy(element, doc, c_node)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, __pyx_v_doc, __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__initNodeNamespaces(__pyx_v_c_node, __pyx_v_doc, __pyx_v_ns_utf, __pyx_v_nsmap); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":150
  *     # add namespaces to node if necessary
@@ -13953,7 +14075,7 @@ static int __pyx_f_4lxml_5etree__initNewElement(struct LxmlElement *__pyx_v_elem
  *     element._init()
  *     return 0
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_element, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_element, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":152
  *     _initNodeAttributes(c_node, doc, attrib, extra_attrs)
@@ -14034,11 +14156,11 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  *     _assertValidNode(parent)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parent) == Py_None);
-  if (!__pyx_t_1) {
+  if (!(__pyx_t_1 != 0)) {
     __pyx_t_2 = (((PyObject *)__pyx_v_parent->_doc) == Py_None);
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -14146,10 +14268,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  *     else:
  */
   __pyx_t_3 = (((PyObject *)__pyx_v_parent->_doc->_parser) != Py_None);
-  if (__pyx_t_3) {
-    __pyx_t_1 = __pyx_v_parent->_doc->_parser->_for_html;
+  if ((__pyx_t_3 != 0)) {
+    __pyx_t_1 = (__pyx_v_parent->_doc->_parser->_for_html != 0);
   } else {
-    __pyx_t_1 = __pyx_t_3;
+    __pyx_t_1 = (__pyx_t_3 != 0);
   }
   if (__pyx_t_1) {
 
@@ -14193,7 +14315,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  *         raise MemoryError()
  *     tree.xmlAddChild(parent._c_node, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":175
@@ -14239,7 +14361,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  *         if tail is not None:
  */
       __pyx_t_1 = (__pyx_v_text != Py_None);
-      if (__pyx_t_1) {
+      __pyx_t_3 = (__pyx_t_1 != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":180
  *     try:
@@ -14260,7 +14383,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeSubElement(struct LxmlEleme
  *             _setTailText(c_node, tail)
  * 
  */
-      __pyx_t_1 = (__pyx_v_tail != Py_None);
+      __pyx_t_3 = (__pyx_v_tail != Py_None);
+      __pyx_t_1 = (__pyx_t_3 != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":182
@@ -14456,7 +14580,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *             _uriValidOrRaise(node_ns_utf)
  */
   __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_nsmap); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_1);
+  __pyx_t_2 = ((!__pyx_t_1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":203
@@ -14467,7 +14591,8 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *             doc._setNodeNs(c_node, _xcstr(node_ns_utf))
  */
     __pyx_t_2 = (__pyx_v_node_ns_utf != Py_None);
-    if (__pyx_t_2) {
+    __pyx_t_1 = (__pyx_t_2 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":204
  *     if not nsmap:
@@ -14533,13 +14658,13 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *         # Move the default namespace to the end.  This makes sure libxml2
  *         # prefers a prefix if the ns is defined redundantly on the same
  */
-  __pyx_t_2 = (__Pyx_PySequence_Contains(Py_None, __pyx_v_nsmap, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_2) {
+  __pyx_t_1 = (__Pyx_PySequence_Contains(Py_None, __pyx_v_nsmap, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if ((__pyx_t_1 != 0)) {
     __pyx_t_6 = PyList_GET_SIZE(((PyObject *)__pyx_v_nsdefs)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_1 = (__pyx_t_6 > 1);
-    __pyx_t_7 = __pyx_t_1;
-  } else {
+    __pyx_t_2 = ((__pyx_t_6 > 1) != 0);
     __pyx_t_7 = __pyx_t_2;
+  } else {
+    __pyx_t_7 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_7) {
 
@@ -14707,7 +14832,8 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *             _prefixValidOrRaise(prefix_utf)
  */
     __pyx_t_7 = (__pyx_v_prefix != Py_None);
-    if (__pyx_t_7) {
+    __pyx_t_1 = (__pyx_t_7 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":225
  *         c_href = _xcstr(href_utf)
@@ -14770,8 +14896,8 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *                 c_ns.href is NULL or \
  *                 tree.xmlStrcmp(c_ns.href, c_href) != 0:
  */
-    __pyx_t_7 = (__pyx_v_c_ns == NULL);
-    if (!__pyx_t_7) {
+    __pyx_t_1 = ((__pyx_v_c_ns == NULL) != 0);
+    if (!__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":233
  *         c_ns = tree.xmlSearchNs(doc._c_doc, c_node, c_prefix)
@@ -14780,8 +14906,8 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *                 tree.xmlStrcmp(c_ns.href, c_href) != 0:
  *             c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)
  */
-      __pyx_t_2 = (__pyx_v_c_ns->href == NULL);
-      if (!__pyx_t_2) {
+      __pyx_t_7 = ((__pyx_v_c_ns->href == NULL) != 0);
+      if (!__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":234
  *         if c_ns is NULL or \
@@ -14790,16 +14916,16 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *             c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)
  *         if href_utf == node_ns_utf:
  */
-        __pyx_t_1 = (xmlStrcmp(__pyx_v_c_ns->href, __pyx_v_c_href) != 0);
-        __pyx_t_13 = __pyx_t_1;
-      } else {
+        __pyx_t_2 = ((xmlStrcmp(__pyx_v_c_ns->href, __pyx_v_c_href) != 0) != 0);
         __pyx_t_13 = __pyx_t_2;
+      } else {
+        __pyx_t_13 = __pyx_t_7;
       }
-      __pyx_t_2 = __pyx_t_13;
+      __pyx_t_7 = __pyx_t_13;
     } else {
-      __pyx_t_2 = __pyx_t_7;
+      __pyx_t_7 = __pyx_t_1;
     }
-    if (__pyx_t_2) {
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":235
  *                 c_ns.href is NULL or \
@@ -14821,9 +14947,9 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *             node_ns_utf = None
  */
     __pyx_t_5 = PyObject_RichCompare(((PyObject *)__pyx_v_href_utf), __pyx_v_node_ns_utf, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    if (__pyx_t_2) {
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":237
  *             c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)
@@ -14857,8 +14983,9 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *         doc._setNodeNs(c_node, _xcstr(node_ns_utf))
  *     return 0
  */
-  __pyx_t_2 = (__pyx_v_node_ns_utf != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_7 = (__pyx_v_node_ns_utf != Py_None);
+  __pyx_t_1 = (__pyx_t_7 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":241
  * 
@@ -14949,12 +15076,12 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *             python._fqtypename(attrib)
  */
   __pyx_t_1 = (__pyx_v_attrib != Py_None);
-  if (__pyx_t_1) {
+  if ((__pyx_t_1 != 0)) {
     __pyx_t_2 = PyObject_HasAttr(__pyx_v_attrib, ((PyObject *)__pyx_n_u__items)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = (!__pyx_t_2);
+    __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
     __pyx_t_2 = __pyx_t_3;
   } else {
-    __pyx_t_2 = __pyx_t_1;
+    __pyx_t_2 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_2) {
 
@@ -15001,7 +15128,8 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *         else:
  */
     __pyx_t_3 = (__pyx_v_attrib == Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_2 = (__pyx_t_3 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":255
  *     if extra is not None and extra:
@@ -15049,8 +15177,8 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *         is_html = doc._parser._for_html
  *         for name, value in sorted(attrib.items()):
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_3) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":259
  *             attrib.update(extra)
@@ -15059,8 +15187,8 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *         for name, value in sorted(attrib.items()):
  *             attr_ns_utf, attr_name_utf = _getNsTag(name)
  */
-    __pyx_t_3 = __pyx_v_doc->_parser->_for_html;
-    __pyx_v_is_html = __pyx_t_3;
+    __pyx_t_2 = __pyx_v_doc->_parser->_for_html;
+    __pyx_v_is_html = __pyx_t_2;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":260
  *     if attrib:
@@ -15246,8 +15374,8 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *                 _attributeValidOrRaise(attr_name_utf)
  *             value_utf = _utf8(value)
  */
-      __pyx_t_3 = (!__pyx_v_is_html);
-      if (__pyx_t_3) {
+      __pyx_t_2 = ((!(__pyx_v_is_html != 0)) != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":263
  *             attr_ns_utf, attr_name_utf = _getNsTag(name)
@@ -15281,7 +15409,8 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *                 tree.xmlNewProp(c_node, _xcstr(attr_name_utf), _xcstr(value_utf))
  *             else:
  */
-      __pyx_t_3 = (__pyx_v_attr_ns_utf == Py_None);
+      __pyx_t_2 = (__pyx_v_attr_ns_utf == Py_None);
+      __pyx_t_3 = (__pyx_t_2 != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":266
@@ -15417,7 +15546,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *             c_element.parent.type == tree.XML_DOCUMENT_NODE:
  *         # include the document node
  */
-  __pyx_t_1 = (__pyx_v_c_element->parent != NULL);
+  __pyx_t_1 = ((__pyx_v_c_element->parent != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":294
@@ -15427,7 +15556,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *         # include the document node
  *         c_nsdef = c_element.parent.nsDef
  */
-    __pyx_t_2 = (__pyx_v_c_element->parent->type == XML_DOCUMENT_NODE);
+    __pyx_t_2 = ((__pyx_v_c_element->parent->type == XML_DOCUMENT_NODE) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -15452,7 +15581,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                 if c_ns_list is NULL:
  */
     while (1) {
-      __pyx_t_3 = (__pyx_v_c_nsdef != NULL);
+      __pyx_t_3 = ((__pyx_v_c_nsdef != NULL) != 0);
       if (!__pyx_t_3) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":298
@@ -15462,7 +15591,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                 if c_ns_list is NULL:
  *                     c_ns_list_size = 20
  */
-      __pyx_t_3 = (__pyx_v_c_ns_list_len >= __pyx_v_c_ns_list_size);
+      __pyx_t_3 = ((__pyx_v_c_ns_list_len >= __pyx_v_c_ns_list_size) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":299
@@ -15472,7 +15601,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                     c_ns_list_size = 20
  *                 else:
  */
-        __pyx_t_3 = (__pyx_v_c_ns_list == NULL);
+        __pyx_t_3 = ((__pyx_v_c_ns_list == NULL) != 0);
         if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":300
@@ -15514,7 +15643,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                     if c_ns_list is not NULL:
  *                         stdlib.free(c_ns_list)
  */
-        __pyx_t_3 = (__pyx_v_c_nsref_ptr == NULL);
+        __pyx_t_3 = ((__pyx_v_c_nsref_ptr == NULL) != 0);
         if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":306
@@ -15524,7 +15653,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                         stdlib.free(c_ns_list)
  *                     raise MemoryError()
  */
-          __pyx_t_3 = (__pyx_v_c_ns_list != NULL);
+          __pyx_t_3 = ((__pyx_v_c_ns_list != NULL) != 0);
           if (__pyx_t_3) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":307
@@ -15632,7 +15761,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *             if c_ns_list is NULL:
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_nsdef != NULL);
+    __pyx_t_3 = ((__pyx_v_c_nsdef != NULL) != 0);
     if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":320
@@ -15642,7 +15771,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *             if c_ns_list is NULL:
  *                 c_ns_list_size = 20
  */
-    __pyx_t_3 = (__pyx_v_c_ns_list_len >= __pyx_v_c_ns_list_size);
+    __pyx_t_3 = ((__pyx_v_c_ns_list_len >= __pyx_v_c_ns_list_size) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":321
@@ -15652,7 +15781,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                 c_ns_list_size = 20
  *             else:
  */
-      __pyx_t_3 = (__pyx_v_c_ns_list == NULL);
+      __pyx_t_3 = ((__pyx_v_c_ns_list == NULL) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":322
@@ -15694,7 +15823,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                 if c_ns_list is not NULL:
  *                     stdlib.free(c_ns_list)
  */
-      __pyx_t_3 = (__pyx_v_c_nsref_ptr == NULL);
+      __pyx_t_3 = ((__pyx_v_c_nsref_ptr == NULL) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":328
@@ -15704,7 +15833,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                     stdlib.free(c_ns_list)
  *                 raise MemoryError()
  */
-        __pyx_t_3 = (__pyx_v_c_ns_list != NULL);
+        __pyx_t_3 = ((__pyx_v_c_ns_list != NULL) != 0);
         if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":329
@@ -15788,7 +15917,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *         c_node = c_element
  *         while c_node is not NULL:
  */
-  __pyx_t_3 = (__pyx_v_c_element->type == XML_ELEMENT_NODE);
+  __pyx_t_3 = ((__pyx_v_c_element->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":340
@@ -15808,7 +15937,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                 for i in range(c_ns_list_len):
  */
     while (1) {
-      __pyx_t_3 = (__pyx_v_c_node != NULL);
+      __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_3) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":342
@@ -15818,7 +15947,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                 for i in range(c_ns_list_len):
  *                     if c_node.ns is c_ns_list[i].ns:
  */
-      __pyx_t_3 = (__pyx_v_c_node->ns != NULL);
+      __pyx_t_3 = ((__pyx_v_c_node->ns != NULL) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":343
@@ -15839,7 +15968,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                         c_ns_list_len -= 1
  *                         c_ns_list[i].ns   = c_ns_list[c_ns_list_len].ns
  */
-          __pyx_t_3 = (__pyx_v_c_node->ns == (__pyx_v_c_ns_list[__pyx_v_i]).ns);
+          __pyx_t_3 = ((__pyx_v_c_node->ns == (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
           if (__pyx_t_3) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":345
@@ -15913,7 +16042,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *                 # continue with attributes
  *                 c_node = <xmlNode*>c_element.properties
  */
-      __pyx_t_3 = (__pyx_v_c_node == __pyx_v_c_element);
+      __pyx_t_3 = ((__pyx_v_c_node == __pyx_v_c_element) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":353
@@ -15960,7 +16089,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *         return 0
  * 
  */
-  __pyx_t_3 = (__pyx_v_c_ns_list == NULL);
+  __pyx_t_3 = ((__pyx_v_c_ns_list == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":359
@@ -16014,7 +16143,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *             c_node.nsDef = c_node.nsDef.next
  *         else:
  */
-    __pyx_t_3 = (__pyx_v_c_nsdef == (__pyx_v_c_ns_list[__pyx_v_i]).ns);
+    __pyx_t_3 = ((__pyx_v_c_nsdef == (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":366
@@ -16038,7 +16167,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *             c_nsdef.next = c_nsdef.next.next
  */
       while (1) {
-        __pyx_t_3 = (__pyx_v_c_nsdef->next != (__pyx_v_c_ns_list[__pyx_v_i]).ns);
+        __pyx_t_3 = ((__pyx_v_c_nsdef->next != (__pyx_v_c_ns_list[__pyx_v_i]).ns) != 0);
         if (!__pyx_t_3) break;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":369
@@ -16081,7 +16210,7 @@ static int __pyx_f_4lxml_5etree__removeUnusedNamespaceDeclarations(xmlNode *__py
  *         stdlib.free(c_ns_list)
  *     return 0
  */
-  __pyx_t_3 = (__pyx_v_c_ns_list != NULL);
+  __pyx_t_3 = ((__pyx_v_c_ns_list != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":374
@@ -16154,11 +16283,11 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *         return NULL
  *     if tree.xmlStrcmp(c_href, tree.XML_XML_NAMESPACE) == 0:
  */
-  __pyx_t_1 = (__pyx_v_c_href == NULL);
+  __pyx_t_1 = ((__pyx_v_c_href == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_node == NULL);
+    __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
     if (!__pyx_t_2) {
-      __pyx_t_3 = (__pyx_v_c_node->type == XML_ENTITY_REF_NODE);
+      __pyx_t_3 = ((__pyx_v_c_node->type == XML_ENTITY_REF_NODE) != 0);
       __pyx_t_4 = __pyx_t_3;
     } else {
       __pyx_t_4 = __pyx_t_2;
@@ -16189,7 +16318,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *         # no special cases here, let libxml2 handle this
  *         return tree.xmlSearchNsByHref(c_node.doc, c_node, c_href)
  */
-  __pyx_t_2 = (xmlStrcmp(__pyx_v_c_href, XML_XML_NAMESPACE) == 0);
+  __pyx_t_2 = ((xmlStrcmp(__pyx_v_c_href, XML_XML_NAMESPACE) == 0) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":392
@@ -16212,7 +16341,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *         is_attribute = 1
  *     while c_node is not NULL and c_node.type != tree.XML_ELEMENT_NODE:
  */
-  __pyx_t_2 = (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE);
+  __pyx_t_2 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":394
@@ -16235,9 +16364,9 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *     c_element = c_node
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_node != NULL);
+    __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_2) {
-      __pyx_t_1 = (__pyx_v_c_node->type != XML_ELEMENT_NODE);
+      __pyx_t_1 = ((__pyx_v_c_node->type != XML_ELEMENT_NODE) != 0);
       __pyx_t_4 = __pyx_t_1;
     } else {
       __pyx_t_4 = __pyx_t_2;
@@ -16272,7 +16401,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *             c_ns = c_node.nsDef
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_c_node != NULL);
+    __pyx_t_4 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":399
@@ -16282,7 +16411,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *             c_ns = c_node.nsDef
  *             while c_ns is not NULL:
  */
-    __pyx_t_4 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+    __pyx_t_4 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":400
@@ -16303,7 +16432,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                     if c_ns.prefix is NULL and is_attribute:
  */
       while (1) {
-        __pyx_t_4 = (__pyx_v_c_ns != NULL);
+        __pyx_t_4 = ((__pyx_v_c_ns != NULL) != 0);
         if (!__pyx_t_4) break;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":402
@@ -16313,9 +16442,9 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                     if c_ns.prefix is NULL and is_attribute:
  *                         # for attributes, continue searching a named
  */
-        __pyx_t_4 = (__pyx_v_c_ns->href != NULL);
+        __pyx_t_4 = ((__pyx_v_c_ns->href != NULL) != 0);
         if (__pyx_t_4) {
-          __pyx_t_2 = (xmlStrcmp(__pyx_v_c_href, __pyx_v_c_ns->href) == 0);
+          __pyx_t_2 = ((xmlStrcmp(__pyx_v_c_href, __pyx_v_c_ns->href) == 0) != 0);
           __pyx_t_1 = __pyx_t_2;
         } else {
           __pyx_t_1 = __pyx_t_4;
@@ -16329,9 +16458,9 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                         # for attributes, continue searching a named
  *                         # prefix, but keep the first default namespace
  */
-          __pyx_t_1 = (__pyx_v_c_ns->prefix == NULL);
+          __pyx_t_1 = ((__pyx_v_c_ns->prefix == NULL) != 0);
           if (__pyx_t_1) {
-            __pyx_t_4 = __pyx_v_is_attribute;
+            __pyx_t_4 = (__pyx_v_is_attribute != 0);
           } else {
             __pyx_t_4 = __pyx_t_1;
           }
@@ -16344,7 +16473,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(
  */
-            __pyx_t_4 = (__pyx_v_c_default_ns == NULL);
+            __pyx_t_4 = ((__pyx_v_c_default_ns == NULL) != 0);
             if (__pyx_t_4) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":408
@@ -16368,7 +16497,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                         # start node is in namespace scope => found!
  *                         return c_ns
  */
-          __pyx_t_4 = (xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns);
+          __pyx_t_4 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns) != 0);
           if (__pyx_t_4) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":412
@@ -16405,9 +16534,9 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                 # optimise: the node may have the namespace itself
  *                 c_ns = c_node.ns
  */
-      __pyx_t_4 = (__pyx_v_c_node != __pyx_v_c_element);
+      __pyx_t_4 = ((__pyx_v_c_node != __pyx_v_c_element) != 0);
       if (__pyx_t_4) {
-        __pyx_t_1 = (__pyx_v_c_node->ns != NULL);
+        __pyx_t_1 = ((__pyx_v_c_node->ns != NULL) != 0);
         __pyx_t_2 = __pyx_t_1;
       } else {
         __pyx_t_2 = __pyx_t_4;
@@ -16431,9 +16560,9 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                     if c_ns.prefix is NULL and is_attribute:
  *                         # for attributes, continue searching a named
  */
-        __pyx_t_2 = (__pyx_v_c_ns->href != NULL);
+        __pyx_t_2 = ((__pyx_v_c_ns->href != NULL) != 0);
         if (__pyx_t_2) {
-          __pyx_t_4 = (xmlStrcmp(__pyx_v_c_href, __pyx_v_c_ns->href) == 0);
+          __pyx_t_4 = ((xmlStrcmp(__pyx_v_c_href, __pyx_v_c_ns->href) == 0) != 0);
           __pyx_t_1 = __pyx_t_4;
         } else {
           __pyx_t_1 = __pyx_t_2;
@@ -16447,9 +16576,9 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                         # for attributes, continue searching a named
  *                         # prefix, but keep the first default namespace
  */
-          __pyx_t_1 = (__pyx_v_c_ns->prefix == NULL);
+          __pyx_t_1 = ((__pyx_v_c_ns->prefix == NULL) != 0);
           if (__pyx_t_1) {
-            __pyx_t_2 = __pyx_v_is_attribute;
+            __pyx_t_2 = (__pyx_v_is_attribute != 0);
           } else {
             __pyx_t_2 = __pyx_t_1;
           }
@@ -16462,7 +16591,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                             c_default_ns = c_ns
  *                     elif tree.xmlSearchNs(
  */
-            __pyx_t_2 = (__pyx_v_c_default_ns == NULL);
+            __pyx_t_2 = ((__pyx_v_c_default_ns == NULL) != 0);
             if (__pyx_t_2) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":423
@@ -16486,7 +16615,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *                         # start node is in namespace scope => found!
  *                         return c_ns
  */
-          __pyx_t_2 = (xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns);
+          __pyx_t_2 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, __pyx_v_c_ns->prefix) == __pyx_v_c_ns) != 0);
           if (__pyx_t_2) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":427
@@ -16529,7 +16658,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *         if tree.xmlSearchNs(c_element.doc, c_element, NULL) is c_default_ns:
  *             return c_default_ns
  */
-  __pyx_t_2 = (__pyx_v_c_default_ns != NULL);
+  __pyx_t_2 = ((__pyx_v_c_default_ns != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":431
@@ -16539,7 +16668,7 @@ static xmlNs *__pyx_f_4lxml_5etree__searchNsByHref(xmlNode *__pyx_v_c_node, cons
  *             return c_default_ns
  *     return NULL
  */
-    __pyx_t_2 = (xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, NULL) == __pyx_v_c_default_ns);
+    __pyx_t_2 = ((xmlSearchNs(__pyx_v_c_element->doc, __pyx_v_c_element, NULL) == __pyx_v_c_default_ns) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":432
@@ -16602,7 +16731,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  *         tree.xmlUnlinkNode(c_node)
  *         return 0
  */
-  __pyx_t_1 = (__pyx_v_c_node->children == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->children == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":440
@@ -16655,7 +16784,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  *         c_child = c_child.next
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_child != NULL);
+    __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":447
@@ -16685,7 +16814,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  *         c_child = c_node.children
  *         while c_child is not NULL:
  */
-  __pyx_t_1 = (__pyx_v_c_node->nsDef != NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->nsDef != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":453
@@ -16706,7 +16835,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  *             c_child = c_child.next
  */
     while (1) {
-      __pyx_t_1 = (__pyx_v_c_child != NULL);
+      __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_1) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":455
@@ -16739,7 +16868,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  *         c_parent.children = c_node.children
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_node->prev == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->prev == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":460
@@ -16784,7 +16913,7 @@ static int __pyx_f_4lxml_5etree__replaceNodeByChildren(struct LxmlDocument *__py
  *         c_parent.last = c_node.last
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_node->next == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->next == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":465
@@ -17018,7 +17147,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeValueFromNsName(xmlNode *__pyx_v
  *         return None
  *     try:
  */
-  __pyx_t_1 = (__pyx_v_c_result == NULL);
+  __pyx_t_1 = ((__pyx_v_c_result == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":488
@@ -17215,7 +17344,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
  *     if c_result is NULL:
  */
   __pyx_t_7 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_7) {
+  if ((__pyx_t_7 != 0)) {
     __pyx_t_6 = ((const xmlChar *)NULL);
   } else {
     __pyx_t_6 = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns);
@@ -17238,7 +17367,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNodeAttributeValue(xmlNode *__pyx_v_c_
  *         # XXX free namespace that is not in use..?
  *         return default
  */
-  __pyx_t_7 = (__pyx_v_c_result == NULL);
+  __pyx_t_7 = ((__pyx_v_c_result == NULL) != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":501
@@ -17411,7 +17540,8 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
   PyObject *(*__pyx_t_5)(PyObject *);
   int __pyx_t_6;
   int __pyx_t_7;
-  xmlNs *__pyx_t_8;
+  int __pyx_t_8;
+  xmlNs *__pyx_t_9;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -17487,7 +17617,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  *         _attributeValidOrRaise(tag)
  *     c_tag = _xcstr(tag)
  */
-  __pyx_t_6 = (!__pyx_v_element->_doc->_parser->_for_html);
+  __pyx_t_6 = ((!(__pyx_v_element->_doc->_parser->_for_html != 0)) != 0);
   if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":515
@@ -17519,7 +17649,8 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  *     else:
  */
   __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-  if (__pyx_t_6) {
+  __pyx_t_8 = (__pyx_t_6 != 0);
+  if (__pyx_t_8) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":518
  *     c_tag = _xcstr(tag)
@@ -17568,7 +17699,8 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  *         c_ns = NULL
  *     else:
  */
-  __pyx_t_6 = (__pyx_v_ns == Py_None);
+  __pyx_t_8 = (__pyx_v_ns == Py_None);
+  __pyx_t_6 = (__pyx_t_8 != 0);
   if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":523
@@ -17590,8 +17722,8 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  *     tree.xmlSetNsProp(element._c_node, c_ns, c_tag, c_value)
  *     return 0
  */
-    __pyx_t_8 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 1); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_ns = __pyx_t_8;
+    __pyx_t_9 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 1); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_ns = __pyx_t_9;
   }
   __pyx_L7:;
 
@@ -17652,7 +17784,6 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
   PyObject *(*__pyx_t_5)(PyObject *);
   const xmlChar *__pyx_t_6;
   int __pyx_t_7;
-  int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -17728,7 +17859,7 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
  *         raise KeyError, key
  */
   __pyx_t_7 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_7) {
+  if ((__pyx_t_7 != 0)) {
     __pyx_t_6 = ((const xmlChar *)NULL);
   } else {
     __pyx_t_6 = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns);
@@ -17742,8 +17873,8 @@ static int __pyx_f_4lxml_5etree__delAttribute(struct LxmlElement *__pyx_v_elemen
  *         raise KeyError, key
  *     return 0
  */
-  __pyx_t_8 = __pyx_f_4lxml_5etree__delAttributeFromNsName(__pyx_v_element->_c_node, __pyx_v_c_href, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag));
-  if (__pyx_t_8) {
+  __pyx_t_7 = (__pyx_f_4lxml_5etree__delAttributeFromNsName(__pyx_v_element->_c_node, __pyx_v_c_href, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_tag)) != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":533
  *     c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
@@ -17815,7 +17946,7 @@ static int __pyx_f_4lxml_5etree__delAttributeFromNsName(xmlNode *__pyx_v_c_node,
  *         # XXX free namespace that is not in use..?
  *         return -1
  */
-  __pyx_t_1 = (__pyx_v_c_attr == NULL);
+  __pyx_t_1 = ((__pyx_v_c_attr == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":540
@@ -17908,7 +18039,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  *             count += 1
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_attr != NULL);
+    __pyx_t_2 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":552
@@ -17918,7 +18049,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  *             count += 1
  *         c_attr = c_attr.next
  */
-    __pyx_t_2 = (__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE);
+    __pyx_t_2 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":553
@@ -17951,7 +18082,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  *         return []
  * 
  */
-  __pyx_t_2 = (!__pyx_v_count);
+  __pyx_t_2 = ((!(__pyx_v_count != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":557
@@ -18010,7 +18141,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  *             if collecttype == 1:
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_attr != NULL);
+    __pyx_t_2 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":563
@@ -18020,7 +18151,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  *             if collecttype == 1:
  *                 item = _namespacedName(<xmlNode*>c_attr)
  */
-    __pyx_t_2 = (__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE);
+    __pyx_t_2 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":566
@@ -18428,7 +18559,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  *             c_text = c_node_cur.content
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_node_cur != NULL);
+    __pyx_t_2 = ((__pyx_v_c_node_cur != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":613
@@ -18438,7 +18569,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  *             c_text = c_node_cur.content
  *         scount += 1
  */
-    __pyx_t_2 = ((__pyx_v_c_node_cur->content[0]) != '\x00');
+    __pyx_t_2 = (((__pyx_v_c_node_cur->content[0]) != '\x00') != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":614
@@ -18480,7 +18611,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  *         return '' if scount > 0 else None
  *     if scount == 1:
  */
-  __pyx_t_2 = (__pyx_v_c_text == NULL);
+  __pyx_t_2 = ((__pyx_v_c_text == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":620
@@ -18491,7 +18622,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  *         return funicode(c_text)
  */
     __Pyx_XDECREF(__pyx_r);
-    if ((__pyx_v_scount > 0)) {
+    if (((__pyx_v_scount > 0) != 0)) {
       __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
       __pyx_t_4 = ((PyObject *)__pyx_kp_s_25);
     } else {
@@ -18512,7 +18643,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  *         return funicode(c_text)
  * 
  */
-  __pyx_t_2 = (__pyx_v_scount == 1);
+  __pyx_t_2 = ((__pyx_v_scount == 1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":622
@@ -18550,7 +18681,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
  *         c_node = _textNodeOrSkip(c_node.next)
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_node != NULL);
+    __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":627
@@ -18639,7 +18770,7 @@ static void __pyx_f_4lxml_5etree__removeText(xmlNode *__pyx_v_c_node) {
  *         tree.xmlUnlinkNode(c_node)
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":639
@@ -18696,8 +18827,9 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -18720,7 +18852,8 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *     # now add new text node with value at start
  */
   __pyx_t_1 = (__pyx_v_value == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":649
  *     _removeText(c_node.children)
@@ -18742,8 +18875,8 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *         text = _utf8(value)
  *         c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  */
-  __pyx_t_1 = _isString(__pyx_v_value);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (_isString(__pyx_v_value) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":652
  *     # now add new text node with value at start
@@ -18752,10 +18885,10 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *         c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  *     elif isinstance(value, CDATA):
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_v_text = ((PyObject*)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_v_text = ((PyObject*)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":653
  *     if python._isString(value):
@@ -18775,7 +18908,8 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *         c_text_node = tree.xmlNewCDataBlock(
  *             c_node.doc, _xcstr((<CDATA>value)._utf8_data),
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree_CDATA)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree_CDATA)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":656
@@ -18785,8 +18919,8 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *             python.PyBytes_GET_SIZE((<CDATA>value)._utf8_data))
  *     else:
  */
-    __pyx_t_2 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data);
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data);
+    __Pyx_INCREF(__pyx_t_3);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":657
  *         c_text_node = tree.xmlNewCDataBlock(
@@ -18795,11 +18929,11 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *     else:
  *         # this will raise the right error
  */
-    __pyx_t_3 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_c_text_node = xmlNewCDataBlock(__pyx_v_c_node->doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_t_2), PyBytes_GET_SIZE(__pyx_t_3));
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_4 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_CDATA *)__pyx_v_value)->_utf8_data);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_c_text_node = xmlNewCDataBlock(__pyx_v_c_node->doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_t_3), PyBytes_GET_SIZE(__pyx_t_4));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L4;
   }
   /*else*/ {
@@ -18811,9 +18945,9 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *        return -1
  *     if c_node.children is NULL:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":661
  *         # this will raise the right error
@@ -18834,7 +18968,7 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
  *         tree.xmlAddChild(c_node, c_text_node)
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_node->children == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->children == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":663
@@ -18873,8 +19007,8 @@ static int __pyx_f_4lxml_5etree__setNodeText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._setNodeText", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -18897,7 +19031,8 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -18920,7 +19055,8 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  *     text = _utf8(value)
  */
   __pyx_t_1 = (__pyx_v_value == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":673
  *     _removeText(c_node.next)
@@ -18942,10 +19078,10 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
  *     c_text_node = tree.xmlNewDocText(c_node.doc, _xcstr(text))
  *     # XXX what if we're the top element?
  */
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_text = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_text = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":675
  *         return 0
@@ -18978,7 +19114,7 @@ static int __pyx_f_4lxml_5etree__setTailText(xmlNode *__pyx_v_c_node, PyObject *
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._setTailText", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -19007,7 +19143,8 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
   PyObject *__pyx_t_4 = NULL;
   PyObject *(*__pyx_t_5)(PyObject *);
   int __pyx_t_6;
-  xmlNs *__pyx_t_7;
+  int __pyx_t_7;
+  xmlNs *__pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -19083,7 +19220,8 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
  *     else:
  */
   __pyx_t_6 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_6) {
+  __pyx_t_7 = (__pyx_t_6 != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":684
  *     ns, tag = _getNsTag(value)
@@ -19108,8 +19246,8 @@ static PyObject *__pyx_f_4lxml_5etree__resolveQNameText(struct LxmlElement *__py
  *         return python.PyBytes_FromFormat('%s:%s', c_ns.prefix, _cstr(tag))
  * 
  */
-    __pyx_t_7 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 0); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_ns = __pyx_t_7;
+    __pyx_t_8 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_element->_doc, __pyx_v_element->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns), NULL, 0); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_ns = __pyx_t_8;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":688
  *         c_ns = element._doc._findOrBuildNodeNs(
@@ -19216,7 +19354,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
  *             count += 1
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":698
@@ -19226,7 +19364,7 @@ static CYTHON_INLINE Py_ssize_t __pyx_f_4lxml_5etree__countElements(xmlNode *__p
  *             count += 1
  *         c_node = c_node.next
  */
-    __pyx_t_1 = _isElement(__pyx_v_c_node);
+    __pyx_t_1 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":699
@@ -19283,8 +19421,9 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -19316,7 +19455,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  *         c_start_node[0] = NULL
  *         c_length[0] = 0
  */
-  __pyx_t_1 = (__pyx_v_childcount == 0);
+  __pyx_t_1 = ((__pyx_v_childcount == 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":714
@@ -19345,7 +19484,8 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  *         else:
  */
     __pyx_t_1 = (((PySliceObject*)__pyx_v_sliceobject)->step == Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":717
  *         c_length[0] = 0
@@ -19366,10 +19506,10 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  *         return 0
  *     python.PySlice_GetIndicesEx(
  */
-      __pyx_t_2 = ((PySliceObject*)__pyx_v_sliceobject)->step;
-      __Pyx_INCREF(__pyx_t_2);
-      __pyx_t_3 = _PyEval_SliceIndex(__pyx_t_2, __pyx_v_c_step); if (unlikely(__pyx_t_3 == 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_3 = ((PySliceObject*)__pyx_v_sliceobject)->step;
+      __Pyx_INCREF(__pyx_t_3);
+      __pyx_t_4 = _PyEval_SliceIndex(__pyx_t_3, __pyx_v_c_step); if (unlikely(__pyx_t_4 == 0)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     }
     __pyx_L4:;
 
@@ -19393,7 +19533,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  *     if start > childcount / 2:
  *         c_start_node[0] = _findChildBackwards(c_parent, childcount - start - 1)
  */
-  __pyx_t_3 = _lx_PySlice_GetIndicesEx(((PyObject *)__pyx_v_sliceobject), __pyx_v_childcount, (&__pyx_v_start), (&__pyx_v_stop), __pyx_v_c_step, __pyx_v_c_length); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = _lx_PySlice_GetIndicesEx(((PyObject *)__pyx_v_sliceobject), __pyx_v_childcount, (&__pyx_v_start), (&__pyx_v_stop), __pyx_v_c_step, __pyx_v_c_length); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":723
  *     python.PySlice_GetIndicesEx(
@@ -19402,8 +19542,8 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
  *         c_start_node[0] = _findChildBackwards(c_parent, childcount - start - 1)
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_start > __Pyx_div_Py_ssize_t(__pyx_v_childcount, 2));
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_start > __Pyx_div_Py_ssize_t(__pyx_v_childcount, 2)) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":724
  *         sliceobject, childcount, &start, &stop, c_step, c_length)
@@ -19441,7 +19581,7 @@ static int __pyx_f_4lxml_5etree__findChildSlice(PyObject *__pyx_v_sliceobject, x
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._findChildSlice", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -19488,7 +19628,8 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  *     if sliceobject.start is None and \
  */
   __pyx_t_1 = (__pyx_v_sliceobject == ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":734
  *     cdef Py_ssize_t step = 0
@@ -19510,8 +19651,8 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  *             sliceobject.stop is None:
  *         if sliceobject.step is None:
  */
-  __pyx_t_1 = (((PySliceObject*)__pyx_v_sliceobject)->start == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (((PySliceObject*)__pyx_v_sliceobject)->start == Py_None);
+  if ((__pyx_t_2 != 0)) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":736
  *         return 0
@@ -19520,10 +19661,10 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  *         if sliceobject.step is None:
  *             return 1
  */
-    __pyx_t_2 = (((PySliceObject*)__pyx_v_sliceobject)->stop == Py_None);
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_1 = (((PySliceObject*)__pyx_v_sliceobject)->stop == Py_None);
+    __pyx_t_3 = (__pyx_t_1 != 0);
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   }
   if (__pyx_t_3) {
 
@@ -19535,7 +19676,8 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  *         python._PyEval_SliceIndex(sliceobject.step, &step)
  */
     __pyx_t_3 = (((PySliceObject*)__pyx_v_sliceobject)->step == Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_2 = (__pyx_t_3 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":738
  *             sliceobject.stop is None:
@@ -19569,8 +19711,8 @@ static int __pyx_f_4lxml_5etree__isFullSlice(PyObject *__pyx_v_sliceobject) {
  *             return 1
  *         return 0
  */
-    __pyx_t_3 = (__pyx_v_step == 1);
-    if (__pyx_t_3) {
+    __pyx_t_2 = ((__pyx_v_step == 1) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":741
  *         python._PyEval_SliceIndex(sliceobject.step, &step)
@@ -19671,7 +19813,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
  *         if not _isElement(c_node):
  *             c_node = _nextElement(c_node)
  */
-  __pyx_t_3 = (__pyx_v_c_node != NULL);
+  __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":750
@@ -19681,7 +19823,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
  *             c_node = _nextElement(c_node)
  *         while c_node is not NULL:
  */
-    __pyx_t_3 = (!_isElement(__pyx_v_c_node));
+    __pyx_t_3 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":751
@@ -19704,7 +19846,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectChildren(struct LxmlElement *__pyx
  *             c_node = _nextElement(c_node)
  */
     while (1) {
-      __pyx_t_3 = (__pyx_v_c_node != NULL);
+      __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_3) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":753
@@ -19782,7 +19924,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChild(xmlNode *__pyx_v_c
  *         return _findChildBackwards(c_node, -index - 1)
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_index < 0);
+  __pyx_t_1 = ((__pyx_v_index < 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":759
@@ -19860,7 +20002,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  *             if c == index:
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_child != NULL);
+    __pyx_t_2 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":771
@@ -19870,7 +20012,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  *             if c == index:
  *                 return c_child
  */
-    __pyx_t_2 = _isElement(__pyx_v_c_child);
+    __pyx_t_2 = (_isElement(__pyx_v_c_child) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":772
@@ -19880,7 +20022,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildForwards(xmlNode *_
  *                 return c_child
  *             c += 1
  */
-      __pyx_t_2 = (__pyx_v_c == __pyx_v_index);
+      __pyx_t_2 = ((__pyx_v_c == __pyx_v_index) != 0);
       if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":773
@@ -19979,7 +20121,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  *             if c == index:
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_child != NULL);
+    __pyx_t_2 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":787
@@ -19989,7 +20131,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  *             if c == index:
  *                 return c_child
  */
-    __pyx_t_2 = _isElement(__pyx_v_c_child);
+    __pyx_t_2 = (_isElement(__pyx_v_c_child) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":788
@@ -19999,7 +20141,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__findChildBackwards(xmlNode *
  *                 return c_child
  *             c += 1
  */
-      __pyx_t_2 = (__pyx_v_c == __pyx_v_index);
+      __pyx_t_2 = ((__pyx_v_c == __pyx_v_index) != 0);
       if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":789
@@ -20077,7 +20219,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":802
@@ -20087,7 +20229,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  *                c_node.type == tree.XML_CDATA_SECTION_NODE:
  *             return c_node
  */
-    __pyx_t_1 = (__pyx_v_c_node->type == XML_TEXT_NODE);
+    __pyx_t_1 = ((__pyx_v_c_node->type == XML_TEXT_NODE) != 0);
     if (!__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":803
@@ -20097,7 +20239,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  *             return c_node
  *         elif c_node.type == tree.XML_XINCLUDE_START or \
  */
-      __pyx_t_2 = (__pyx_v_c_node->type == XML_CDATA_SECTION_NODE);
+      __pyx_t_2 = ((__pyx_v_c_node->type == XML_CDATA_SECTION_NODE) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
@@ -20123,7 +20265,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  *                  c_node.type == tree.XML_XINCLUDE_END:
  *             c_node = c_node.next
  */
-    __pyx_t_3 = (__pyx_v_c_node->type == XML_XINCLUDE_START);
+    __pyx_t_3 = ((__pyx_v_c_node->type == XML_XINCLUDE_START) != 0);
     if (!__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":806
@@ -20133,7 +20275,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__textNodeOrSkip(xmlNode *__py
  *             c_node = c_node.next
  *         else:
  */
-      __pyx_t_1 = (__pyx_v_c_node->type == XML_XINCLUDE_END);
+      __pyx_t_1 = ((__pyx_v_c_node->type == XML_XINCLUDE_END) != 0);
       __pyx_t_2 = __pyx_t_1;
     } else {
       __pyx_t_2 = __pyx_t_3;
@@ -20203,7 +20345,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
  *         return NULL
  *     c_node = c_node.next
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":816
@@ -20237,7 +20379,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
  *             return c_node
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":819
@@ -20247,7 +20389,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__nextElement(xmlNode *__pyx_v
  *             return c_node
  *         c_node = c_node.next
  */
-    __pyx_t_1 = _isElement(__pyx_v_c_node);
+    __pyx_t_1 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":820
@@ -20312,7 +20454,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
  *         return NULL
  *     c_node = c_node.prev
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":828
@@ -20346,7 +20488,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
  *             return c_node
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":831
@@ -20356,7 +20498,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__previousElement(xmlNode *__p
  *             return c_node
  *         c_node = c_node.prev
  */
-    __pyx_t_1 = _isElement(__pyx_v_c_node);
+    __pyx_t_1 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":832
@@ -20423,9 +20565,9 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
  *         return NULL
  *     c_node = c_node.parent
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (!_isElement(__pyx_v_c_node));
+    __pyx_t_2 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -20462,9 +20604,9 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__parentElement(xmlNode *__pyx
  *         return NULL
  *     return c_node
  */
-  __pyx_t_3 = (__pyx_v_c_node == NULL);
+  __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
   if (!__pyx_t_3) {
-    __pyx_t_1 = (!_isElement(__pyx_v_c_node));
+    __pyx_t_1 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
     __pyx_t_2 = __pyx_t_1;
   } else {
     __pyx_t_2 = __pyx_t_3;
@@ -20524,7 +20666,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *         return 0
  *     if c_node.type != tree.XML_ELEMENT_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":860
@@ -20547,7 +20689,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *         # not an element, only succeed if we match everything
  *         return c_name is NULL and c_href is NULL
  */
-  __pyx_t_1 = (__pyx_v_c_node->type != XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type != XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":863
@@ -20577,7 +20719,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *         if c_href is NULL:
  *             # always match
  */
-  __pyx_t_3 = (__pyx_v_c_name == NULL);
+  __pyx_t_3 = ((__pyx_v_c_name == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":865
@@ -20587,7 +20729,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *             # always match
  *             return 1
  */
-    __pyx_t_3 = (__pyx_v_c_href == NULL);
+    __pyx_t_3 = ((__pyx_v_c_href == NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":867
@@ -20619,7 +20761,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *                 return c_href[0] == c'\0'
  *             else:
  */
-      __pyx_t_3 = (__pyx_v_c_node_href == NULL);
+      __pyx_t_3 = ((__pyx_v_c_node_href == NULL) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":871
@@ -20658,7 +20800,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *         if _getNs(c_node) is not NULL:
  *             return 0
  */
-  __pyx_t_3 = (__pyx_v_c_href == NULL);
+  __pyx_t_3 = ((__pyx_v_c_href == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":875
@@ -20668,7 +20810,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *             return 0
  *         return c_node.name == c_name or tree.xmlStrcmp(c_node.name, c_name) == 0
  */
-    __pyx_t_3 = (_getNs(__pyx_v_c_node) != NULL);
+    __pyx_t_3 = ((_getNs(__pyx_v_c_node) != NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":876
@@ -20710,9 +20852,9 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *         c_node_href = _getNs(c_node)
  *         if c_node_href is NULL:
  */
-  __pyx_t_2 = (__pyx_v_c_node->name == __pyx_v_c_name);
+  __pyx_t_2 = ((__pyx_v_c_node->name == __pyx_v_c_name) != 0);
   if (!__pyx_t_2) {
-    __pyx_t_3 = (xmlStrcmp(__pyx_v_c_node->name, __pyx_v_c_name) == 0);
+    __pyx_t_3 = ((xmlStrcmp(__pyx_v_c_node->name, __pyx_v_c_name) == 0) != 0);
     __pyx_t_1 = __pyx_t_3;
   } else {
     __pyx_t_1 = __pyx_t_2;
@@ -20735,7 +20877,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatches(xmlNode *__pyx_v_c_nod
  *             return c_href[0] == c'\0'
  *         else:
  */
-    __pyx_t_1 = (__pyx_v_c_node_href == NULL);
+    __pyx_t_1 = ((__pyx_v_c_node_href == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":881
@@ -20809,9 +20951,9 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
  *         return 0
  *     if c_qname.href is NULL:
  */
-  __pyx_t_1 = (__pyx_v_c_qname->c_name != NULL);
+  __pyx_t_1 = ((__pyx_v_c_qname->c_name != NULL) != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_qname->c_name != __pyx_v_c_node->name);
+    __pyx_t_2 = ((__pyx_v_c_qname->c_name != __pyx_v_c_node->name) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -20838,7 +20980,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
  *         return 1
  *     c_node_href = _getNs(c_node)
  */
-  __pyx_t_3 = (__pyx_v_c_qname->href == NULL);
+  __pyx_t_3 = ((__pyx_v_c_qname->href == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":909
@@ -20879,7 +21021,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
  *         return c_node_href is NULL or c_node_href[0] == '\0'
  *     elif c_node_href is NULL:
  */
-  __pyx_t_3 = ((__pyx_v_c_href[0]) == '\x00');
+  __pyx_t_3 = (((__pyx_v_c_href[0]) == '\x00') != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":913
@@ -20908,7 +21050,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__tagMatchesExactly(xmlNode *__pyx_
  *         return 0
  *     else:
  */
-  __pyx_t_2 = (__pyx_v_c_node_href == NULL);
+  __pyx_t_2 = ((__pyx_v_c_node_href == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":915
@@ -20966,8 +21108,9 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
   PyObject *__pyx_t_6 = NULL;
   PyObject *(*__pyx_t_7)(PyObject *);
   int __pyx_t_8;
-  Py_ssize_t __pyx_t_9;
+  int __pyx_t_9;
   Py_ssize_t __pyx_t_10;
+  Py_ssize_t __pyx_t_11;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -21069,7 +21212,8 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  *         elif force_into_dict:
  */
     __pyx_t_8 = (__pyx_v_tag == ((PyObject*)Py_None));
-    if (__pyx_t_8) {
+    __pyx_t_9 = (__pyx_t_8 != 0);
+    if (__pyx_t_9) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":931
  *     for ns, tag in ns_tags:
@@ -21089,7 +21233,8 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  *             c_tag = tree.xmlDictLookup(c_doc.dict, _xcstr(tag), len(tag))
  *             if c_tag is NULL:
  */
-    if (__pyx_v_force_into_dict) {
+    __pyx_t_9 = (__pyx_v_force_into_dict != 0);
+    if (__pyx_t_9) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":933
  *             c_tag = <const_xmlChar*>NULL
@@ -21102,8 +21247,8 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
         PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_9 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_v_c_tag = xmlDictLookup(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_tag)), __pyx_t_9);
+      __pyx_t_10 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_v_c_tag = xmlDictLookup(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_tag)), __pyx_t_10);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":934
  *         elif force_into_dict:
@@ -21112,8 +21257,8 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  *                 # clean up before raising the error
  *                 for i in xrange(count):
  */
-      __pyx_t_8 = (__pyx_v_c_tag == NULL);
-      if (__pyx_t_8) {
+      __pyx_t_9 = ((__pyx_v_c_tag == NULL) != 0);
+      if (__pyx_t_9) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":936
  *             if c_tag is NULL:
@@ -21122,9 +21267,9 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  *                     cpython.ref.Py_XDECREF(c_ns_tags[i].href)
  *                 raise MemoryError()
  */
-        __pyx_t_9 = __pyx_v_count;
-        for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
-          __pyx_v_i = __pyx_t_10;
+        __pyx_t_10 = __pyx_v_count;
+        for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
+          __pyx_v_i = __pyx_t_11;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":937
  *                 # clean up before raising the error
@@ -21162,8 +21307,8 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
         PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_9 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_v_c_tag = xmlDictExists(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_tag)), __pyx_t_9);
+      __pyx_t_10 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_tag)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_v_c_tag = xmlDictExists(__pyx_v_c_doc->dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_tag)), __pyx_t_10);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":941
  *         else:
@@ -21172,8 +21317,8 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  *                 # not in the dict => not in the document
  *                 continue
  */
-      __pyx_t_8 = (__pyx_v_c_tag == NULL);
-      if (__pyx_t_8) {
+      __pyx_t_9 = ((__pyx_v_c_tag == NULL) != 0);
+      if (__pyx_t_9) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":943
  *             if c_tag is NULL:
@@ -21205,7 +21350,8 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
  *             c_ns_tags[count].href = NULL
  *         else:
  */
-    __pyx_t_8 = (__pyx_v_ns == ((PyObject*)Py_None));
+    __pyx_t_9 = (__pyx_v_ns == ((PyObject*)Py_None));
+    __pyx_t_8 = (__pyx_t_9 != 0);
     if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":946
@@ -21334,7 +21480,7 @@ static int __pyx_f_4lxml_5etree__removeNode(struct LxmlDocument *__pyx_v_doc, xm
  *         # make namespaces absolute
  *         moveNodeToDocument(doc, c_node.doc, c_node)
  */
-  __pyx_t_2 = (!__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node));
+  __pyx_t_2 = ((!(__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node) != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":963
@@ -21404,7 +21550,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  *         if c_node.type == node_type:
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_node != NULL);
+    __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":971
@@ -21423,7 +21569,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  *             if with_tail:
  *                 _removeText(c_node.next)
  */
-    __pyx_t_2 = (__pyx_v_c_node->type == __pyx_v_node_type);
+    __pyx_t_2 = ((__pyx_v_c_node->type == __pyx_v_node_type) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":973
@@ -21433,7 +21579,8 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)
  */
-      if (__pyx_v_with_tail) {
+      __pyx_t_2 = (__pyx_v_with_tail != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":974
  *         if c_node.type == node_type:
@@ -21496,7 +21643,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  *         if c_node.type == node_type:
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_node != NULL);
+    __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":980
@@ -21515,7 +21662,7 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  *             if with_tail:
  *                 _removeText(c_node.next)
  */
-    __pyx_t_2 = (__pyx_v_c_node->type == __pyx_v_node_type);
+    __pyx_t_2 = ((__pyx_v_c_node->type == __pyx_v_node_type) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":982
@@ -21525,7 +21672,8 @@ static int __pyx_f_4lxml_5etree__removeSiblings(xmlNode *__pyx_v_c_element, xmlE
  *                 _removeText(c_node.next)
  *             tree.xmlUnlinkNode(c_node)
  */
-      if (__pyx_v_with_tail) {
+      __pyx_t_2 = (__pyx_v_with_tail != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":983
  *         if c_node.type == node_type:
@@ -21617,7 +21765,7 @@ static void __pyx_f_4lxml_5etree__moveTail(xmlNode *__pyx_v_c_tail, xmlNode *__p
  *         c_target = tree.xmlAddNextSibling(c_target, c_tail)
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_tail != NULL);
+    __pyx_t_1 = ((__pyx_v_c_tail != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":995
@@ -21686,7 +21834,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
  *             c_new_tail = tree.xmlDocCopyNode(c_tail, c_target.doc, 0)
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_tail != NULL);
+    __pyx_t_1 = ((__pyx_v_c_tail != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1005
@@ -21696,7 +21844,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
  *             c_new_tail = tree.xmlDocCopyNode(c_tail, c_target.doc, 0)
  *         else:
  */
-    __pyx_t_1 = (__pyx_v_c_target->doc != __pyx_v_c_tail->doc);
+    __pyx_t_1 = ((__pyx_v_c_target->doc != __pyx_v_c_tail->doc) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1006
@@ -21729,7 +21877,7 @@ static int __pyx_f_4lxml_5etree__copyTail(xmlNode *__pyx_v_c_tail, xmlNode *__py
  *             raise MemoryError()
  *         c_target = tree.xmlAddNextSibling(c_target, c_new_tail)
  */
-    __pyx_t_1 = (__pyx_v_c_new_tail == NULL);
+    __pyx_t_1 = ((__pyx_v_c_new_tail == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1010
@@ -21823,7 +21971,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *                  c_sibling.prev.type == tree.XML_COMMENT_NODE):
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_sibling->prev != NULL);
+    __pyx_t_1 = ((__pyx_v_c_sibling->prev != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1019
@@ -21833,7 +21981,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *                  c_sibling.prev.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.prev
  */
-      __pyx_t_2 = (__pyx_v_c_sibling->prev->type == XML_PI_NODE);
+      __pyx_t_2 = ((__pyx_v_c_sibling->prev->type == XML_PI_NODE) != 0);
       if (!__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1020
@@ -21843,7 +21991,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *         c_sibling = c_sibling.prev
  *     while c_sibling != c_node:
  */
-        __pyx_t_3 = (__pyx_v_c_sibling->prev->type == XML_COMMENT_NODE);
+        __pyx_t_3 = ((__pyx_v_c_sibling->prev->type == XML_COMMENT_NODE) != 0);
         __pyx_t_4 = __pyx_t_3;
       } else {
         __pyx_t_4 = __pyx_t_2;
@@ -21873,7 +22021,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *         if c_copy is NULL:
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_sibling != __pyx_v_c_node);
+    __pyx_t_2 = ((__pyx_v_c_sibling != __pyx_v_c_node) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1023
@@ -21892,7 +22040,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *             raise MemoryError()
  *         tree.xmlAddPrevSibling(c_target, c_copy)
  */
-    __pyx_t_2 = (__pyx_v_c_copy == NULL);
+    __pyx_t_2 = ((__pyx_v_c_copy == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1025
@@ -21935,7 +22083,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *                  c_sibling.next.type == tree.XML_COMMENT_NODE):
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_sibling->next != NULL);
+    __pyx_t_2 = ((__pyx_v_c_sibling->next != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1029
@@ -21945,7 +22093,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *                  c_sibling.next.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.next
  */
-      __pyx_t_1 = (__pyx_v_c_sibling->next->type == XML_PI_NODE);
+      __pyx_t_1 = ((__pyx_v_c_sibling->next->type == XML_PI_NODE) != 0);
       if (!__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1030
@@ -21955,7 +22103,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *         c_sibling = c_sibling.next
  *         c_copy = tree.xmlDocCopyNode(c_sibling, c_target.doc, 1)
  */
-        __pyx_t_4 = (__pyx_v_c_sibling->next->type == XML_COMMENT_NODE);
+        __pyx_t_4 = ((__pyx_v_c_sibling->next->type == XML_COMMENT_NODE) != 0);
         __pyx_t_3 = __pyx_t_4;
       } else {
         __pyx_t_3 = __pyx_t_1;
@@ -21992,7 +22140,7 @@ static int __pyx_f_4lxml_5etree__copyNonElementSiblings(xmlNode *__pyx_v_c_node,
  *             raise MemoryError()
  *         tree.xmlAddNextSibling(c_target, c_copy)
  */
-    __pyx_t_1 = (__pyx_v_c_copy == NULL);
+    __pyx_t_1 = ((__pyx_v_c_copy == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1034
@@ -22060,7 +22208,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  *         return 0
  *     if step > 0:
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1046
@@ -22083,7 +22231,7 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  *         next_element = _nextElement
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_step > 0);
+  __pyx_t_1 = ((__pyx_v_step > 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1048
@@ -22144,9 +22292,9 @@ static int __pyx_f_4lxml_5etree__deleteSlice(struct LxmlDocument *__pyx_v_doc, x
  *             c_next = next_element(c_next)
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_1) {
-      __pyx_t_2 = (__pyx_v_c < __pyx_v_count);
+      __pyx_t_2 = ((__pyx_v_c < __pyx_v_count) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
@@ -22268,7 +22416,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         next_element = _nextElement
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_step > 0))) {
+  if (unlikely(!((__pyx_v_step > 0) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -22281,7 +22429,8 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         next_element = _nextElement
  *     else:
  */
-  if (__pyx_v_left_to_right) {
+  __pyx_t_1 = (__pyx_v_left_to_right != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1080
  *     assert step > 0
@@ -22313,7 +22462,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *             not python.PyTuple_Check(elements):
  *         elements = list(elements)
  */
-  __pyx_t_1 = (!PyList_Check(__pyx_v_elements));
+  __pyx_t_1 = ((!(PyList_Check(__pyx_v_elements) != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1085
@@ -22323,7 +22472,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         elements = list(elements)
  * 
  */
-    __pyx_t_2 = (!PyTuple_Check(__pyx_v_elements));
+    __pyx_t_2 = ((!(PyTuple_Check(__pyx_v_elements) != 0)) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -22359,7 +22508,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         # *replacing* children stepwise with list => check size!
  *         seqlength = len(elements)
  */
-  __pyx_t_3 = (__pyx_v_step > 1);
+  __pyx_t_3 = ((__pyx_v_step > 1) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1090
@@ -22379,7 +22528,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *             raise ValueError, u"attempt to assign sequence of size %d " \
  *                 u"to extended slice of size %d" % (seqlength, slicelength)
  */
-    __pyx_t_3 = (__pyx_v_seqlength != __pyx_v_slicelength);
+    __pyx_t_3 = ((__pyx_v_seqlength != __pyx_v_slicelength) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1093
@@ -22421,7 +22570,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         # no children yet => add all elements straight away
  *         if left_to_right:
  */
-  __pyx_t_3 = (__pyx_v_c_node == NULL);
+  __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1097
@@ -22431,7 +22580,8 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *             for element in elements:
  *                 assert element is not None, u"Node must not be None"
  */
-    if (__pyx_v_left_to_right) {
+    __pyx_t_3 = (__pyx_v_left_to_right != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1098
  *         # no children yet => add all elements straight away
@@ -22488,7 +22638,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         #ifndef CYTHON_WITHOUT_ASSERTIONS
         __pyx_t_3 = (((PyObject *)__pyx_v_element) != Py_None);
-        if (unlikely(!__pyx_t_3)) {
+        if (unlikely(!(__pyx_t_3 != 0))) {
           PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
           {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
@@ -22563,7 +22713,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
         #ifndef CYTHON_WITHOUT_ASSERTIONS
         __pyx_t_3 = (((PyObject *)__pyx_v_element) != Py_None);
-        if (unlikely(!__pyx_t_3)) {
+        if (unlikely(!(__pyx_t_3 != 0))) {
           PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
           {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
@@ -22602,7 +22752,8 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         # L->R, remember left neighbour
  *         c_orig_neighbour = _previousElement(c_node)
  */
-  if (__pyx_v_left_to_right) {
+  __pyx_t_3 = (__pyx_v_left_to_right != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1110
  *     if left_to_right:
@@ -22653,9 +22804,9 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *             c_next = next_element(c_next)
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_3) {
-      __pyx_t_1 = (__pyx_v_c < __pyx_v_slicelength);
+      __pyx_t_1 = ((__pyx_v_c < __pyx_v_slicelength) != 0);
       __pyx_t_2 = __pyx_t_1;
     } else {
       __pyx_t_2 = __pyx_t_3;
@@ -22734,7 +22885,8 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         if c_orig_neighbour is not NULL:
  *             c_node = next_element(c_orig_neighbour)
  */
-  if (__pyx_v_left_to_right) {
+  __pyx_t_2 = (__pyx_v_left_to_right != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1133
  *     # find the first node right of the new insertion point
@@ -22743,7 +22895,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *             c_node = next_element(c_orig_neighbour)
  *         else:
  */
-    __pyx_t_2 = (__pyx_v_c_orig_neighbour != NULL);
+    __pyx_t_2 = ((__pyx_v_c_orig_neighbour != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1134
@@ -22778,7 +22930,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         # at the end, but reversed stepping
  *         # append one element and go to the next insertion point
  */
-  __pyx_t_2 = (__pyx_v_c_orig_neighbour == NULL);
+  __pyx_t_2 = ((__pyx_v_c_orig_neighbour == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1141
@@ -22835,7 +22987,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       #ifndef CYTHON_WITHOUT_ASSERTIONS
       __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
-      if (unlikely(!__pyx_t_2)) {
+      if (unlikely(!(__pyx_t_2 != 0))) {
         PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
@@ -22867,7 +23019,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *                 slicelength -= 1
  *                 for i in range(1, step):
  */
-      __pyx_t_2 = (__pyx_v_slicelength > 0);
+      __pyx_t_2 = ((__pyx_v_slicelength > 0) != 0);
       if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1146
@@ -22925,7 +23077,8 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         # adjust step size after removing slice as we are not stepping
  *         # over the newly inserted elements
  */
-  if (__pyx_v_left_to_right) {
+  __pyx_t_2 = (__pyx_v_left_to_right != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1154
  *         # adjust step size after removing slice as we are not stepping
@@ -22946,7 +23099,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"
  */
-  __pyx_t_2 = (__pyx_v_c_node != NULL);
+  __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1158
@@ -23004,7 +23157,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       #ifndef CYTHON_WITHOUT_ASSERTIONS
       __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
-      if (unlikely(!__pyx_t_2)) {
+      if (unlikely(!(__pyx_t_2 != 0))) {
         PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
@@ -23076,7 +23229,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *                 slicelength = slicelength - 1
  *                 for i in range(step):
  */
-      __pyx_t_2 = (__pyx_v_slicelength > 0);
+      __pyx_t_2 = ((__pyx_v_slicelength > 0) != 0);
       if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1172
@@ -23116,7 +23269,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *                     break
  *         else:
  */
-        __pyx_t_2 = (__pyx_v_c_node == NULL);
+        __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
         if (__pyx_t_2) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1176
@@ -23160,7 +23313,8 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  *         for element in elements:
  *             assert element is not None, u"Node must not be None"
  */
-  if (__pyx_v_left_to_right) {
+  __pyx_t_2 = (__pyx_v_left_to_right != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1183
  *     # append the remaining elements at the respective end
@@ -23217,7 +23371,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       #ifndef CYTHON_WITHOUT_ASSERTIONS
       __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
-      if (unlikely(!__pyx_t_2)) {
+      if (unlikely(!(__pyx_t_2 != 0))) {
         PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
@@ -23301,7 +23455,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
       #ifndef CYTHON_WITHOUT_ASSERTIONS
       __pyx_t_2 = (((PyObject *)__pyx_v_element) != Py_None);
-      if (unlikely(!__pyx_t_2)) {
+      if (unlikely(!(__pyx_t_2 != 0))) {
         PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_28));
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
@@ -23528,7 +23682,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  *         tree.xmlUnlinkNode(c_node)
  *         tree.xmlAddChild(parent._c_node, c_node)
  */
-  __pyx_t_3 = (__pyx_v_c_child == NULL);
+  __pyx_t_3 = ((__pyx_v_c_child == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1223
@@ -23796,7 +23950,6 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  long __pyx_t_2;
   __Pyx_RefNannySetupContext("isutf8", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1263
@@ -23816,7 +23969,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  *             return 1
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c != '\x00');
+    __pyx_t_1 = ((__pyx_v_c != '\x00') != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1265
@@ -23826,8 +23979,8 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  *             return 1
  *         s += 1
  */
-    __pyx_t_2 = (__pyx_v_c & 0x80);
-    if (__pyx_t_2) {
+    __pyx_t_1 = ((__pyx_v_c & 0x80) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1266
  *     while c != c'\0':
@@ -23893,9 +24046,8 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
   __Pyx_RefNannyDeclarations
   Py_ssize_t __pyx_t_1;
   int __pyx_t_2;
-  long __pyx_t_3;
+  int __pyx_t_3;
   int __pyx_t_4;
-  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -23941,7 +24093,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  *             # skip over multi byte sequences
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_s < __pyx_v_c_end);
+    __pyx_t_2 = ((__pyx_v_s < __pyx_v_c_end) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1280
@@ -23951,8 +24103,8 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  *             # skip over multi byte sequences
  *             while s < c_end and s[0] & 0x80:
  */
-    __pyx_t_3 = ((__pyx_v_s[0]) & 0x80);
-    if (__pyx_t_3) {
+    __pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1282
  *         if s[0] & 0x80:
@@ -23964,11 +24116,11 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
       while (1) {
         __pyx_t_2 = (__pyx_v_s < __pyx_v_c_end);
         if (__pyx_t_2) {
-          __pyx_t_4 = ((__pyx_v_s[0]) & 0x80);
+          __pyx_t_3 = (((__pyx_v_s[0]) & 0x80) != 0);
         } else {
-          __pyx_t_4 = __pyx_t_2;
+          __pyx_t_3 = __pyx_t_2;
         }
-        if (!__pyx_t_4) break;
+        if (!__pyx_t_3) break;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1283
  *             # skip over multi byte sequences
@@ -23999,14 +24151,14 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  *             return -1 # invalid!
  *         s += 1
  */
-    __pyx_t_4 = (__pyx_v_s < __pyx_v_c_end);
-    if (__pyx_t_4) {
-      __pyx_t_2 = (!xmlIsChar_ch((__pyx_v_s[0])));
-      __pyx_t_5 = __pyx_t_2;
+    __pyx_t_3 = ((__pyx_v_s < __pyx_v_c_end) != 0);
+    if (__pyx_t_3) {
+      __pyx_t_2 = ((!(xmlIsChar_ch((__pyx_v_s[0])) != 0)) != 0);
+      __pyx_t_4 = __pyx_t_2;
     } else {
-      __pyx_t_5 = __pyx_t_4;
+      __pyx_t_4 = __pyx_t_3;
     }
-    if (__pyx_t_5) {
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1286
  *             is_non_ascii = 1
@@ -24077,7 +24229,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_s != NULL)) {
+  if (((__pyx_v_s != NULL) != 0)) {
     __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
@@ -24129,7 +24281,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
  * cdef object funicode(const_xmlChar* s):
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_s != NULL)) {
+  if (((__pyx_v_s != NULL) != 0)) {
     __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
@@ -24169,9 +24321,8 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   int __pyx_v_is_non_ascii;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
-  int __pyx_t_2;
-  long __pyx_t_3;
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -24184,7 +24335,8 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *         return s.decode('UTF-8')
  *     spos = s
  */
-  if (LXML_UNICODE_STRINGS) {
+  __pyx_t_1 = (LXML_UNICODE_STRINGS != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1301
  *     cdef bint is_non_ascii
@@ -24194,10 +24346,10 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *     is_non_ascii = 0
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, strlen(((char *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-    __pyx_r = ((PyObject *)__pyx_t_1);
-    __pyx_t_1 = 0;
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, strlen(((char *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_r = ((PyObject *)__pyx_t_2);
+    __pyx_t_2 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -24229,8 +24381,8 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *             is_non_ascii = 1
  */
   while (1) {
-    __pyx_t_2 = ((__pyx_v_spos[0]) != '\x00');
-    if (!__pyx_t_2) break;
+    __pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
+    if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1305
  *     is_non_ascii = 0
@@ -24239,8 +24391,8 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *             is_non_ascii = 1
  *             break
  */
-    __pyx_t_3 = ((__pyx_v_spos[0]) & 0x80);
-    if (__pyx_t_3) {
+    __pyx_t_1 = (((__pyx_v_spos[0]) & 0x80) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1306
  *     while spos[0] != c'\0':
@@ -24290,8 +24442,8 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *         slen += tree.xmlStrlen(spos)
  *     if is_non_ascii:
  */
-  __pyx_t_2 = ((__pyx_v_spos[0]) != '\x00');
-  if (__pyx_t_2) {
+  __pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1311
  *     slen = spos - s
@@ -24312,7 +24464,8 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *         return s[:slen].decode('UTF-8')
  *     return <bytes>s[:slen]
  */
-  if (__pyx_v_is_non_ascii) {
+  __pyx_t_1 = (__pyx_v_is_non_ascii != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1313
  *         slen += tree.xmlStrlen(spos)
@@ -24322,10 +24475,10 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-    __pyx_r = ((PyObject *)__pyx_t_1);
-    __pyx_t_1 = 0;
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_r = ((PyObject *)__pyx_t_2);
+    __pyx_t_2 = 0;
     goto __pyx_L0;
     goto __pyx_L8;
   }
@@ -24339,17 +24492,17 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  * cdef bytes _utf8(object s):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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);
-  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
+  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+  __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_2)));
+  __pyx_r = ((PyObject *)__pyx_t_2);
+  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_AddTraceback("lxml.etree.funicode", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -24388,10 +24541,10 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  *         utf8_string = <bytes>s
  *         invalid = check_string_utf8(utf8_string)
  */
-  __pyx_t_1 = (!IS_PYTHON3);
+  __pyx_t_1 = ((!(IS_PYTHON3 != 0)) != 0);
   if (__pyx_t_1) {
     __pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_s)) == ((PyObject *)((PyObject*)(&PyBytes_Type))));
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
@@ -24426,7 +24579,8 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  *         invalid = check_string_utf8(utf8_string) == -1 # non-XML?
  */
   __pyx_t_3 = PyUnicode_Check(__pyx_v_s); 
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1327
  *         invalid = check_string_utf8(utf8_string)
@@ -24463,7 +24617,8 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  *         utf8_string = bytes(s)
  *         invalid = check_string_utf8(utf8_string)
  */
-  __pyx_t_3 = PyBytes_Check(__pyx_v_s); 
+  __pyx_t_1 = PyBytes_Check(__pyx_v_s); 
+  __pyx_t_3 = (__pyx_t_1 != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1330
@@ -24529,7 +24684,8 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  *         raise ValueError(
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  */
-  if (__pyx_v_invalid) {
+  __pyx_t_3 = (__pyx_v_invalid != 0);
+  if (__pyx_t_3) {
 
     /* "/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__)
@@ -24601,7 +24757,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
   __pyx_t_2 = (__pyx_v_s != Py_None);
-  if (__pyx_t_2) {
+  if ((__pyx_t_2 != 0)) {
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_s)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_1 = __pyx_t_3;
@@ -24653,7 +24809,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  *         return 1
  *     # test if it looks like an absolute Windows path
  */
-  __pyx_t_1 = ((__pyx_v_c_path[0]) == '/');
+  __pyx_t_1 = (((__pyx_v_c_path[0]) == '/') != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1347
@@ -24676,9 +24832,9 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  *             (c_path[0] >= c'A' and c_path[0] <= c'Z'):
  *         if c_path[1] == c':':
  */
-  __pyx_t_1 = ((__pyx_v_c_path[0]) >= 'a');
+  __pyx_t_1 = (((__pyx_v_c_path[0]) >= 'a') != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = ((__pyx_v_c_path[0]) <= 'z');
+    __pyx_t_2 = (((__pyx_v_c_path[0]) <= 'z') != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -24692,9 +24848,9 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  *         if c_path[1] == c':':
  *             return 1
  */
-    __pyx_t_1 = ((__pyx_v_c_path[0]) >= 'A');
+    __pyx_t_1 = (((__pyx_v_c_path[0]) >= 'A') != 0);
     if (__pyx_t_1) {
-      __pyx_t_2 = ((__pyx_v_c_path[0]) <= 'Z');
+      __pyx_t_2 = (((__pyx_v_c_path[0]) <= 'Z') != 0);
       __pyx_t_4 = __pyx_t_2;
     } else {
       __pyx_t_4 = __pyx_t_1;
@@ -24712,7 +24868,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  *             return 1
  *     # test if it looks like a relative path
  */
-    __pyx_t_1 = ((__pyx_v_c_path[1]) == ':');
+    __pyx_t_1 = (((__pyx_v_c_path[1]) == ':') != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1352
@@ -24739,7 +24895,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  *         if c == c':':
  */
   while (1) {
-    __pyx_t_1 = ((__pyx_v_c_path[0]) != '\x00');
+    __pyx_t_1 = (((__pyx_v_c_path[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1355
@@ -24860,12 +25016,13 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  unsigned char *__pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  unsigned char *__pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
-  int __pyx_t_7;
+  PyObject *__pyx_t_7 = NULL;
+  int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -24879,7 +25036,8 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  *     elif isinstance(filename, bytes):
  */
   __pyx_t_1 = (__pyx_v_filename == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1369
  *     """
@@ -24902,7 +25060,8 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  *         return filename
  *     elif isinstance(filename, unicode):
  */
-  __pyx_t_1 = PyBytes_Check(__pyx_v_filename); 
+  __pyx_t_2 = PyBytes_Check(__pyx_v_filename); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1371
@@ -24927,7 +25086,8 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  *         if _isFilePath(<unsigned char*>filename8):
  */
   __pyx_t_1 = PyUnicode_Check(__pyx_v_filename); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1373
  *         return filename
@@ -24940,10 +25100,10 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
       {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_v_filename8 = ((PyObject *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __pyx_v_filename8 = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1374
  *     elif isinstance(filename, unicode):
@@ -24952,9 +25112,9 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  *             try:
  *                 return python.PyUnicode_AsEncodedString(
  */
-    __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) {
+    __pyx_t_4 = __Pyx_PyObject_AsUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = (__pyx_f_4lxml_5etree__isFilePath(((unsigned char *)__pyx_t_4)) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1375
  *         filename8 = (<unicode>filename).encode('utf8')
@@ -24964,10 +25124,10 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  *                     filename, _C_FILENAME_ENCODING, NULL)
  */
       {
-        __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
-        __Pyx_XGOTREF(__pyx_t_4);
+        __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
         __Pyx_XGOTREF(__pyx_t_5);
         __Pyx_XGOTREF(__pyx_t_6);
+        __Pyx_XGOTREF(__pyx_t_7);
         /*try:*/ {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1376
@@ -24986,24 +25146,24 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  *             except UnicodeEncodeError:
  *                 pass
  */
-          __pyx_t_2 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-          __Pyx_GOTREF(__pyx_t_2);
-          __pyx_r = __pyx_t_2;
-          __pyx_t_2 = 0;
+          __pyx_t_3 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __Pyx_GOTREF(__pyx_t_3);
+          __pyx_r = __pyx_t_3;
+          __pyx_t_3 = 0;
           goto __pyx_L9_try_return;
         }
-        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
         __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
         goto __pyx_L12_try_end;
         __pyx_L9_try_return:;
-        __Pyx_XGIVEREF(__pyx_t_4);
         __Pyx_XGIVEREF(__pyx_t_5);
         __Pyx_XGIVEREF(__pyx_t_6);
-        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
+        __Pyx_XGIVEREF(__pyx_t_7);
+        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
         goto __pyx_L0;
         __pyx_L5_error:;
-        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1378
  *                 return python.PyUnicode_AsEncodedString(
@@ -25012,21 +25172,21 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  *                 pass
  *         return filename8
  */
-        __pyx_t_7 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeEncodeError);
-        if (__pyx_t_7) {
+        __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeEncodeError);
+        if (__pyx_t_8) {
           PyErr_Restore(0,0,0);
           goto __pyx_L6_exception_handled;
         }
-        __Pyx_XGIVEREF(__pyx_t_4);
         __Pyx_XGIVEREF(__pyx_t_5);
         __Pyx_XGIVEREF(__pyx_t_6);
-        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
+        __Pyx_XGIVEREF(__pyx_t_7);
+        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
         goto __pyx_L1_error;
         __pyx_L6_exception_handled:;
-        __Pyx_XGIVEREF(__pyx_t_4);
         __Pyx_XGIVEREF(__pyx_t_5);
         __Pyx_XGIVEREF(__pyx_t_6);
-        __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
+        __Pyx_XGIVEREF(__pyx_t_7);
+        __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
         __pyx_L12_try_end:;
       }
       goto __pyx_L4;
@@ -25055,10 +25215,10 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):
  */
-    __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;
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_33), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -25066,7 +25226,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._encodeFilename", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -25151,7 +25311,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  *         try:
  *             return python.PyUnicode_Decode(
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__isFilePath(__pyx_v_c_path);
+  __pyx_t_1 = (__pyx_f_4lxml_5etree__isFilePath(__pyx_v_c_path) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1393
@@ -25357,13 +25517,13 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
-  Py_ssize_t __pyx_t_5;
-  PyObject *__pyx_t_6 = NULL;
-  int __pyx_t_7;
-  PyObject *__pyx_t_8 = NULL;
+  PyObject *__pyx_t_5 = NULL;
+  Py_ssize_t __pyx_t_6;
+  PyObject *__pyx_t_7 = NULL;
+  int __pyx_t_8;
   PyObject *__pyx_t_9 = NULL;
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
@@ -25371,6 +25531,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   PyObject *__pyx_t_13 = NULL;
   PyObject *__pyx_t_14 = NULL;
   PyObject *__pyx_t_15 = NULL;
+  PyObject *__pyx_t_16 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -25385,7 +25546,8 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *     elif isinstance(filename, bytes):
  */
   __pyx_t_1 = (__pyx_v_filename == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1410
  *     cdef char* c_filename
@@ -25408,7 +25570,8 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *         if not check_string_utf8(<bytes>filename):
  *             # plain ASCII!
  */
-  __pyx_t_1 = PyBytes_Check(__pyx_v_filename); 
+  __pyx_t_2 = PyBytes_Check(__pyx_v_filename); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1412
@@ -25418,7 +25581,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *             # plain ASCII!
  *             return filename
  */
-    __pyx_t_1 = (!__pyx_f_4lxml_5etree_check_string_utf8(((PyObject*)__pyx_v_filename)));
+    __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_check_string_utf8(((PyObject*)__pyx_v_filename)) != 0)) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1414
@@ -25453,10 +25616,10 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *             filename = python.PyUnicode_Decode(
  */
     {
-      __Pyx_ExceptionSave(&__pyx_t_2, &__pyx_t_3, &__pyx_t_4);
-      __Pyx_XGOTREF(__pyx_t_2);
+      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
       __Pyx_XGOTREF(__pyx_t_3);
       __Pyx_XGOTREF(__pyx_t_4);
+      __Pyx_XGOTREF(__pyx_t_5);
       /*try:*/ {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1419
@@ -25470,7 +25633,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
           {__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 = 1419; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_6 = PyBytes_GET_SIZE(((PyObject *)((PyObject*)__pyx_v_filename))); if (unlikely(__pyx_t_6 == -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":1420
  *             filename = python.PyUnicode_Decode(
@@ -25479,18 +25642,18 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *         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 = 1418; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_7 = ((PyObject *)PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_6, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1418; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(__pyx_v_filename);
-        __pyx_v_filename = __pyx_t_6;
-        __pyx_t_6 = 0;
+        __pyx_v_filename = __pyx_t_7;
+        __pyx_t_7 = 0;
       }
-      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 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_L12_try_end;
       __pyx_L5_error:;
-      __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/apihelpers.pxi":1421
  *                 c_filename, len(<bytes>filename),
@@ -25499,15 +25662,15 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *             try:
  *                 # try if it's proper UTF-8
  */
-      __pyx_t_7 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
-      if (__pyx_t_7) {
+      __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
+      if (__pyx_t_8) {
         __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 = 1421; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
-        __Pyx_GOTREF(__pyx_t_6);
-        __Pyx_GOTREF(__pyx_t_8);
+        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1421; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __Pyx_GOTREF(__pyx_t_7);
         __Pyx_GOTREF(__pyx_t_9);
-        __Pyx_INCREF(__pyx_t_8);
-        __pyx_v_decode_exc = __pyx_t_8;
+        __Pyx_GOTREF(__pyx_t_10);
+        __Pyx_INCREF(__pyx_t_9);
+        __pyx_v_decode_exc = __pyx_t_9;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1422
  *                 _C_FILENAME_ENCODING, NULL)
@@ -25517,10 +25680,10 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *                 (<bytes>filename).decode('utf8')
  */
         {
-          __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
-          __Pyx_XGOTREF(__pyx_t_10);
+          __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
           __Pyx_XGOTREF(__pyx_t_11);
           __Pyx_XGOTREF(__pyx_t_12);
+          __Pyx_XGOTREF(__pyx_t_13);
           /*try:*/ {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
@@ -25534,9 +25697,9 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
               PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
               {__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 = 1424; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
-            __Pyx_GOTREF(((PyObject *)__pyx_t_13));
-            __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
+            __pyx_t_14 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_filename)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+            __Pyx_GOTREF(((PyObject *)__pyx_t_14));
+            __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1425
  *                 # try if it's proper UTF-8
@@ -25548,23 +25711,23 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
             __Pyx_XDECREF(__pyx_r);
             __Pyx_INCREF(__pyx_v_filename);
             __pyx_r = __pyx_v_filename;
-            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
             __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
             goto __pyx_L19_try_return;
           }
-          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
           __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
           __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
+          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
           goto __pyx_L22_try_end;
           __pyx_L19_try_return:;
-          __Pyx_XGIVEREF(__pyx_t_10);
           __Pyx_XGIVEREF(__pyx_t_11);
           __Pyx_XGIVEREF(__pyx_t_12);
-          __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
+          __Pyx_XGIVEREF(__pyx_t_13);
+          __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
           goto __pyx_L8_except_return;
           __pyx_L15_error:;
-          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1426
  *                 (<bytes>filename).decode('utf8')
@@ -25573,13 +25736,13 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):
  */
-          __pyx_t_7 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
-          if (__pyx_t_7) {
+          __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
+          if (__pyx_t_8) {
             __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 = 1426; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
-            __Pyx_GOTREF(__pyx_t_13);
+            if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
             __Pyx_GOTREF(__pyx_t_14);
             __Pyx_GOTREF(__pyx_t_15);
+            __Pyx_GOTREF(__pyx_t_16);
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1427
  *                 return filename
@@ -25590,46 +25753,46 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
             __Pyx_Raise(__pyx_v_decode_exc, 0, 0, 0);
             {__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_DECREF(__pyx_t_16); __pyx_t_16 = 0;
             goto __pyx_L16_exception_handled;
           }
           __pyx_L17_except_error:;
-          __Pyx_XGIVEREF(__pyx_t_10);
           __Pyx_XGIVEREF(__pyx_t_11);
           __Pyx_XGIVEREF(__pyx_t_12);
-          __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
+          __Pyx_XGIVEREF(__pyx_t_13);
+          __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
           goto __pyx_L7_except_error;
           __pyx_L16_exception_handled:;
-          __Pyx_XGIVEREF(__pyx_t_10);
           __Pyx_XGIVEREF(__pyx_t_11);
           __Pyx_XGIVEREF(__pyx_t_12);
-          __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
+          __Pyx_XGIVEREF(__pyx_t_13);
+          __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
           __pyx_L22_try_end:;
         }
-        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         goto __pyx_L6_exception_handled;
       }
       __pyx_L7_except_error:;
-      __Pyx_XGIVEREF(__pyx_t_2);
       __Pyx_XGIVEREF(__pyx_t_3);
       __Pyx_XGIVEREF(__pyx_t_4);
-      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
+      __Pyx_XGIVEREF(__pyx_t_5);
+      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
       goto __pyx_L1_error;
       __pyx_L8_except_return:;
-      __Pyx_XGIVEREF(__pyx_t_2);
       __Pyx_XGIVEREF(__pyx_t_3);
       __Pyx_XGIVEREF(__pyx_t_4);
-      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
+      __Pyx_XGIVEREF(__pyx_t_5);
+      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
       goto __pyx_L0;
       __pyx_L6_exception_handled:;
-      __Pyx_XGIVEREF(__pyx_t_2);
       __Pyx_XGIVEREF(__pyx_t_3);
       __Pyx_XGIVEREF(__pyx_t_4);
-      __Pyx_ExceptionReset(__pyx_t_2, __pyx_t_3, __pyx_t_4);
+      __Pyx_XGIVEREF(__pyx_t_5);
+      __Pyx_ExceptionReset(__pyx_t_3, __pyx_t_4, __pyx_t_5);
       __pyx_L12_try_end:;
     }
     goto __pyx_L3;
@@ -25644,7 +25807,8 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *     else:
  */
   __pyx_t_1 = PyUnicode_Check(__pyx_v_filename); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
  *                 raise decode_exc # otherwise re-raise original exception
@@ -25658,10 +25822,10 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
       {__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 = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_9));
-    __pyx_r = ((PyObject *)__pyx_t_9);
-    __pyx_t_9 = 0;
+    __pyx_t_10 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_10));
+    __pyx_r = ((PyObject *)__pyx_t_10);
+    __pyx_t_10 = 0;
     goto __pyx_L0;
     goto __pyx_L25;
   }
@@ -25674,10 +25838,10 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  * 
  * cdef tuple _getNsTag(tag):
  */
-    __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_t_10 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_10);
+    __Pyx_Raise(__pyx_t_10, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
     {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L25:;
@@ -25685,12 +25849,12 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_6);
-  __Pyx_XDECREF(__pyx_t_8);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_9);
-  __Pyx_XDECREF(__pyx_t_13);
+  __Pyx_XDECREF(__pyx_t_10);
   __Pyx_XDECREF(__pyx_t_14);
   __Pyx_XDECREF(__pyx_t_15);
+  __Pyx_XDECREF(__pyx_t_16);
   __Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -25830,10 +25994,10 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *         tag = (<QName>tag).text
  *     tag = _utf8(tag)
  */
-  __pyx_t_1 = (!_isString(__pyx_v_tag));
+  __pyx_t_1 = ((!(_isString(__pyx_v_tag) != 0)) != 0);
   if (__pyx_t_1) {
     __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_tag, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
@@ -25884,7 +26048,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  */
-  __pyx_t_3 = ((__pyx_v_c_tag[0]) == '{');
+  __pyx_t_3 = (((__pyx_v_c_tag[0]) == '{') != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1458
@@ -25912,7 +26076,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *             raise ValueError, u"Invalid tag name"
  *         nslen  = c_ns_end - c_tag
  */
-    __pyx_t_3 = (__pyx_v_c_ns_end == NULL);
+    __pyx_t_3 = ((__pyx_v_c_ns_end == NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1461
@@ -25953,7 +26117,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *             raise ValueError, u"Empty tag name"
  *         if nslen > 0:
  */
-    __pyx_t_3 = (__pyx_v_taglen == 0);
+    __pyx_t_3 = ((__pyx_v_taglen == 0) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1465
@@ -25976,7 +26140,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:
  */
-    __pyx_t_3 = (__pyx_v_nslen > 0);
+    __pyx_t_3 = ((__pyx_v_nslen > 0) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1467
@@ -26002,7 +26166,8 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *             ns = b''
  *         tag = <bytes>c_ns_end[1:taglen+1]
  */
-    if (__pyx_v_empty_ns) {
+    __pyx_t_3 = (__pyx_v_empty_ns != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1469
  *             ns = <bytes>c_tag[:nslen]
@@ -26041,7 +26206,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *         raise ValueError, u"Empty tag name"
  *     return ns, tag
  */
-  __pyx_t_3 = (PyBytes_GET_SIZE(__pyx_v_tag) == 0);
+  __pyx_t_3 = ((PyBytes_GET_SIZE(__pyx_v_tag) == 0) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1472
@@ -26202,9 +26367,9 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
  *         return 0
  *     while c_name[0] != c'\0':
  */
-  __pyx_t_1 = (__pyx_v_c_name == NULL);
+  __pyx_t_1 = ((__pyx_v_c_name == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = ((__pyx_v_c_name[0]) == '\x00');
+    __pyx_t_2 = (((__pyx_v_c_name[0]) == '\x00') != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -26232,7 +26397,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
  *         if c in (c'&', c'<', c'>', c'/', c'"', c"'",
  */
   while (1) {
-    __pyx_t_3 = ((__pyx_v_c_name[0]) != '\x00');
+    __pyx_t_3 = (((__pyx_v_c_name[0]) != '\x00') != 0);
     if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1489
@@ -26335,7 +26500,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  *         c_name += 1
  *         is_hex = 1
  */
-  __pyx_t_1 = ((__pyx_v_c_name[0]) == 'x');
+  __pyx_t_1 = (((__pyx_v_c_name[0]) == 'x') != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1499
@@ -26377,7 +26542,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  *         return 0
  *     while c_name[0] != c'\0':
  */
-  __pyx_t_1 = ((__pyx_v_c_name[0]) == '\x00');
+  __pyx_t_1 = (((__pyx_v_c_name[0]) == '\x00') != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1504
@@ -26401,7 +26566,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  *             if not is_hex:
  */
   while (1) {
-    __pyx_t_1 = ((__pyx_v_c_name[0]) != '\x00');
+    __pyx_t_1 = (((__pyx_v_c_name[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1506
@@ -26411,9 +26576,9 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  *             if not is_hex:
  *                 return 0
  */
-    __pyx_t_1 = ((__pyx_v_c_name[0]) < '0');
+    __pyx_t_1 = (((__pyx_v_c_name[0]) < '0') != 0);
     if (!__pyx_t_1) {
-      __pyx_t_2 = ((__pyx_v_c_name[0]) > '9');
+      __pyx_t_2 = (((__pyx_v_c_name[0]) > '9') != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
@@ -26427,7 +26592,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):
  */
-      __pyx_t_3 = (!__pyx_v_is_hex);
+      __pyx_t_3 = ((!(__pyx_v_is_hex != 0)) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1508
@@ -26454,7 +26619,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       if (__pyx_t_3) {
         __pyx_t_3 = ((__pyx_v_c_name[0]) <= 'f');
       }
-      __pyx_t_1 = (!__pyx_t_3);
+      __pyx_t_1 = ((!(__pyx_t_3 != 0)) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1510
@@ -26468,7 +26633,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
         if (__pyx_t_1) {
           __pyx_t_1 = ((__pyx_v_c_name[0]) <= 'F');
         }
-        __pyx_t_3 = (!__pyx_t_1);
+        __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);
         if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1511
@@ -26542,7 +26707,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
  *         raise ValueError("Invalid tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  */
-  __pyx_t_1 = (!__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf));
+  __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1518
@@ -26624,7 +26789,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
  *         raise ValueError("Invalid HTML tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  */
-  __pyx_t_1 = (!__pyx_f_4lxml_5etree__pyHtmlNameIsValid(__pyx_v_tag_utf));
+  __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyHtmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1524
@@ -26706,7 +26871,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
  *         raise ValueError("Invalid attribute name %r" %
  *                          (<bytes>name_utf).decode('utf8'))
  */
-  __pyx_t_1 = (!__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_name_utf));
+  __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_name_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1530
@@ -26788,7 +26953,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
  *         raise ValueError("Invalid namespace prefix %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  */
-  __pyx_t_1 = (!__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf));
+  __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1536
@@ -26880,7 +27045,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  *         raise ValueError("Invalid namespace URI %r" %
  *                          (<bytes>uri_utf).decode('utf8'))
  */
-  __pyx_t_1 = (__pyx_v_c_uri == NULL);
+  __pyx_t_1 = ((__pyx_v_c_uri == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
@@ -27015,7 +27180,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *         return funicode(name)
  *     elif python.LXML_UNICODE_STRINGS and python.PY_VERSION_HEX >= 0x02060000:
  */
-  __pyx_t_1 = (__pyx_v_href == NULL);
+  __pyx_t_1 = ((__pyx_v_href == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1552
@@ -27041,11 +27206,11 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)
  *     else:
  */
-  if (LXML_UNICODE_STRINGS) {
-    __pyx_t_1 = (PY_VERSION_HEX >= 0x02060000);
+  if ((LXML_UNICODE_STRINGS != 0)) {
+    __pyx_t_1 = ((PY_VERSION_HEX >= 0x02060000) != 0);
     __pyx_t_3 = __pyx_t_1;
   } else {
-    __pyx_t_3 = LXML_UNICODE_STRINGS;
+    __pyx_t_3 = (LXML_UNICODE_STRINGS != 0);
   }
   if (__pyx_t_3) {
 
@@ -27087,7 +27252,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  */
     __pyx_t_3 = LXML_UNICODE_STRINGS;
     if (!__pyx_t_3) {
-      __pyx_t_1 = __pyx_f_4lxml_5etree_isutf8((const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_s)));
+      __pyx_t_1 = (__pyx_f_4lxml_5etree_isutf8((const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_s))) != 0);
     } else {
       __pyx_t_1 = __pyx_t_3;
     }
@@ -27161,9 +27326,9 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   int __pyx_t_6;
-  int __pyx_lineno = 0;
-  const char *__pyx_filename = NULL;
-  int __pyx_clineno = 0;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getFilenameForFile", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1568
@@ -27263,7 +27428,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *             return os_path_abspath(filename)
  *     except:
  */
-      __pyx_t_6 = _isString(__pyx_v_filename);
+      __pyx_t_6 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1576
@@ -27356,7 +27521,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *             return os_path_abspath(filename)
  *     except:
  */
-      __pyx_t_6 = _isString(__pyx_v_filename);
+      __pyx_t_6 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1583
@@ -27653,7 +27818,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_LogEntry__setError(struct __pyx_obj_4lxm
  *             self.message = "unknown error"
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_error->message == NULL);
+  __pyx_t_2 = ((__pyx_v_error->message == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":68
@@ -27688,9 +27853,9 @@ static PyObject *__pyx_f_4lxml_5etree_9_LogEntry__setError(struct __pyx_obj_4lxm
  *                 size -= 1 # strip EOL
  *             try:
  */
-    __pyx_t_2 = (__pyx_v_size > 0);
+    __pyx_t_2 = ((__pyx_v_size > 0) != 0);
     if (__pyx_t_2) {
-      __pyx_t_3 = ((__pyx_v_error->message[(__pyx_v_size - 1)]) == '\n');
+      __pyx_t_3 = (((__pyx_v_error->message[(__pyx_v_size - 1)]) == '\n') != 0);
       __pyx_t_4 = __pyx_t_3;
     } else {
       __pyx_t_4 = __pyx_t_2;
@@ -27916,7 +28081,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_LogEntry__setError(struct __pyx_obj_4lxm
  *             self.filename = u'<string>'
  *         else:
  */
-  __pyx_t_4 = (__pyx_v_error->file == NULL);
+  __pyx_t_4 = ((__pyx_v_error->file == NULL) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":83
@@ -29093,9 +29258,9 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog_receive(CYTHON_UNUSED stru
 /* 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("receive (wrapper)", 0);
@@ -29234,7 +29399,8 @@ static void __pyx_f_4lxml_5etree_13_BaseErrorLog__receive(struct __pyx_obj_4lxml
  *             if is_error:
  */
   __pyx_t_4 = (__pyx_v_global_log != __pyx_v_self);
-  if (__pyx_t_4) {
+  __pyx_t_2 = (__pyx_t_4 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":152
  *         global_log = _getGlobalErrorLog()
@@ -29254,7 +29420,8 @@ static void __pyx_f_4lxml_5etree_13_BaseErrorLog__receive(struct __pyx_obj_4lxml
  *                 global_log.last_error = entry
  *         self.receive(entry)
  */
-    if (__pyx_v_is_error) {
+    __pyx_t_2 = (__pyx_v_is_error != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":154
  *             global_log.receive(entry)
@@ -29293,7 +29460,8 @@ static void __pyx_f_4lxml_5etree_13_BaseErrorLog__receive(struct __pyx_obj_4lxml
  *             self.last_error = entry
  * 
  */
-  if (__pyx_v_is_error) {
+  __pyx_t_2 = (__pyx_v_is_error != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":157
  *         self.receive(entry)
@@ -29411,7 +29579,8 @@ static void __pyx_f_4lxml_5etree_13_BaseErrorLog__receiveGeneric(struct __pyx_ob
  *             if is_error:
  */
   __pyx_t_4 = (__pyx_v_global_log != __pyx_v_self);
-  if (__pyx_t_4) {
+  __pyx_t_2 = (__pyx_t_4 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":171
  *         global_log = _getGlobalErrorLog()
@@ -29431,7 +29600,8 @@ static void __pyx_f_4lxml_5etree_13_BaseErrorLog__receiveGeneric(struct __pyx_ob
  *                 global_log.last_error = entry
  *         self.receive(entry)
  */
-    if (__pyx_v_is_error) {
+    __pyx_t_2 = (__pyx_v_is_error != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":173
  *             global_log.receive(entry)
@@ -29470,7 +29640,8 @@ static void __pyx_f_4lxml_5etree_13_BaseErrorLog__receiveGeneric(struct __pyx_ob
  *             self.last_error = entry
  * 
  */
-  if (__pyx_v_is_error) {
+  __pyx_t_2 = (__pyx_v_is_error != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":176
  *         self.receive(entry)
@@ -29514,11 +29685,12 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
+  PyObject *__pyx_t_7 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -29541,7 +29713,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         message = self._first_error.message
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_first_error) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":182
  *         code = xmlerror.XML_ERR_INTERNAL_ERROR
@@ -29551,27 +29724,27 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         if message:
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = PyInt_FromLong(__pyx_v_code); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 182; __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[1]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyInt_FromLong(__pyx_v_code); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 182; __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[1]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_default_message);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_default_message);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_default_message);
     __Pyx_GIVEREF(__pyx_v_default_message);
-    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    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_3, 2, __pyx_int_0);
+    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_0);
     __Pyx_GIVEREF(__pyx_int_0);
     __Pyx_INCREF(__pyx_int_0);
-    PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_int_0);
+    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_int_0);
     __Pyx_GIVEREF(__pyx_int_0);
-    __pyx_t_2 = 0;
-    __pyx_t_2 = PyObject_Call(__pyx_v_exctype, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = 0;
+    __pyx_t_3 = PyObject_Call(__pyx_v_exctype, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -29584,10 +29757,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         if message:
  *             code = self._first_error.type
  */
-  __pyx_t_2 = __pyx_v_self->_first_error->message;
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_v_message = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = __pyx_v_self->_first_error->message;
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_v_message = __pyx_t_3;
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":184
  *             return exctype(default_message, code, 0, 0)
@@ -29596,8 +29769,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *             code = self._first_error.type
  *         else:
  */
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_message); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_message); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":185
  *         message = self._first_error.message
@@ -29606,8 +29779,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         else:
  *             message = default_message
  */
-    __pyx_t_4 = __pyx_v_self->_first_error->type;
-    __pyx_v_code = __pyx_t_4;
+    __pyx_t_5 = __pyx_v_self->_first_error->type;
+    __pyx_v_code = __pyx_t_5;
     goto __pyx_L4;
   }
   /*else*/ {
@@ -29632,8 +29805,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         column = self._first_error.column
  *         if line > 0:
  */
-  __pyx_t_4 = __pyx_v_self->_first_error->line;
-  __pyx_v_line = __pyx_t_4;
+  __pyx_t_5 = __pyx_v_self->_first_error->line;
+  __pyx_v_line = __pyx_t_5;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":189
  *             message = default_message
@@ -29642,8 +29815,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         if line > 0:
  *             if column > 0:
  */
-  __pyx_t_4 = __pyx_v_self->_first_error->column;
-  __pyx_v_column = __pyx_t_4;
+  __pyx_t_5 = __pyx_v_self->_first_error->column;
+  __pyx_v_column = __pyx_t_5;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":190
  *         line = self._first_error.line
@@ -29652,8 +29825,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *             if column > 0:
  *                 message = u"%s, line %d, column %d" % (message, line, column)
  */
-  __pyx_t_1 = (__pyx_v_line > 0);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_line > 0) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":191
  *         column = self._first_error.column
@@ -29662,8 +29835,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *                 message = u"%s, line %d, column %d" % (message, line, column)
  *             else:
  */
-    __pyx_t_1 = (__pyx_v_column > 0);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_column > 0) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":192
  *         if line > 0:
@@ -29672,27 +29845,27 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *             else:
  *                 message = u"%s, line %d" % (message, line)
  */
-      __pyx_t_2 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = PyInt_FromLong(__pyx_v_column); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_4 = PyInt_FromLong(__pyx_v_column); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_v_message);
-      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_message);
+      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_message);
       __Pyx_GIVEREF(__pyx_v_message);
-      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
-      __Pyx_GIVEREF(__pyx_t_2);
-      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
+      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
       __Pyx_GIVEREF(__pyx_t_3);
-      __pyx_t_2 = 0;
+      PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_4);
+      __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_3 = 0;
-      __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_t_4 = 0;
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_48), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_3);
-      __pyx_t_3 = 0;
+      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __pyx_t_4 = 0;
       goto __pyx_L6;
     }
     /*else*/ {
@@ -29704,22 +29877,22 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         return exctype(message, code, line, column)
  * 
  */
-      __pyx_t_3 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_4 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_v_message);
-      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_message);
+      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_message);
       __Pyx_GIVEREF(__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_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;
+      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
+      __Pyx_GIVEREF(__pyx_t_4);
+      __pyx_t_4 = 0;
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_49), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_3);
-      __pyx_t_3 = 0;
+      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __pyx_t_4 = 0;
     }
     __pyx_L6:;
     goto __pyx_L5;
@@ -29734,40 +29907,40 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *     @cython.final
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyInt_FromLong(__pyx_v_code); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_5 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_2 = PyInt_FromLong(__pyx_v_column); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyInt_FromLong(__pyx_v_code); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_6 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_3 = PyInt_FromLong(__pyx_v_column); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_INCREF(__pyx_v_message);
-  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_message);
+  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_message);
   __Pyx_GIVEREF(__pyx_v_message);
-  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_6);
+  __Pyx_GIVEREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_3);
   __Pyx_GIVEREF(__pyx_t_3);
-  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5);
-  __Pyx_GIVEREF(__pyx_t_5);
-  PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_2);
-  __Pyx_GIVEREF(__pyx_t_2);
+  __pyx_t_4 = 0;
+  __pyx_t_6 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyObject_Call(__pyx_v_exctype, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
-  __pyx_t_5 = 0;
-  __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_v_exctype, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.etree._BaseErrorLog._buildParseException", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -29790,9 +29963,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -29806,7 +29980,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *         if self._first_error.message:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_first_error) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":200
  *     cdef _buildExceptionMessage(self, default_message):
@@ -29830,8 +30005,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *             message = self._first_error.message
  *         elif default_message is None:
  */
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_self->_first_error->message); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_self->_first_error->message); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":202
  *             return default_message
@@ -29840,10 +30015,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *         elif default_message is None:
  *             return None
  */
-    __pyx_t_2 = __pyx_v_self->_first_error->message;
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_message = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_v_self->_first_error->message;
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_message = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L4;
   }
 
@@ -29854,7 +30029,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *             return None
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_default_message == Py_None);
+  __pyx_t_2 = (__pyx_v_default_message == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":204
@@ -29891,7 +30067,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *             if self._first_error.column > 0:
  *                 message = u"%s, line %d, column %d" % (
  */
-  __pyx_t_1 = (__pyx_v_self->_first_error->line > 0);
+  __pyx_t_1 = ((__pyx_v_self->_first_error->line > 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":208
@@ -29901,7 +30077,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *                 message = u"%s, line %d, column %d" % (
  *                     message, self._first_error.line, self._first_error.column)
  */
-    __pyx_t_1 = (__pyx_v_self->_first_error->column > 0);
+    __pyx_t_1 = ((__pyx_v_self->_first_error->column > 0) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":210
@@ -29911,27 +30087,27 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *             else:
  *                 message = u"%s, line %d" % (message, self._first_error.line)
  */
-      __pyx_t_2 = PyInt_FromLong(__pyx_v_self->_first_error->line); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = PyInt_FromLong(__pyx_v_self->_first_error->column); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(__pyx_v_self->_first_error->line); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __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[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromLong(__pyx_v_self->_first_error->column); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 210; __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[1]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v_message);
-      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_message);
+      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_message);
       __Pyx_GIVEREF(__pyx_v_message);
-      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
-      __Pyx_GIVEREF(__pyx_t_2);
-      PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
+      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
       __Pyx_GIVEREF(__pyx_t_3);
-      __pyx_t_2 = 0;
+      PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
+      __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_3 = 0;
-      __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_t_4 = 0;
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_48), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_3);
-      __pyx_t_3 = 0;
+      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __pyx_t_4 = 0;
       goto __pyx_L6;
     }
     /*else*/ {
@@ -29943,22 +30119,22 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
  *         return message
  * 
  */
-      __pyx_t_3 = PyInt_FromLong(__pyx_v_self->_first_error->line); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __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[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromLong(__pyx_v_self->_first_error->line); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v_message);
-      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_message);
+      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_message);
       __Pyx_GIVEREF(__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_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;
+      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_49), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_3);
-      __pyx_t_3 = 0;
+      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __pyx_t_4 = 0;
     }
     __pyx_L6:;
     goto __pyx_L5;
@@ -29980,9 +30156,9 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._BaseErrorLog._buildExceptionMessage", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -30107,9 +30283,10 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -30135,7 +30312,8 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
  *             if last_error is None:
  */
     __pyx_t_1 = (__pyx_v_first_error == Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":221
  *         if entries:
@@ -30144,11 +30322,11 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
  *             if last_error is None:
  *                 last_error = entries[-1]
  */
-      __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_t_3 = __Pyx_GetItemInt(__pyx_v_entries, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_v_first_error);
-      __pyx_v_first_error = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_first_error = __pyx_t_3;
+      __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -30160,7 +30338,8 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
  *                 last_error = entries[-1]
  *         _BaseErrorLog.__init__(self, first_error, last_error)
  */
-    __pyx_t_1 = (__pyx_v_last_error == Py_None);
+    __pyx_t_2 = (__pyx_v_last_error == Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":223
@@ -30170,11 +30349,11 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
  *         _BaseErrorLog.__init__(self, first_error, last_error)
  *         self._entries = entries
  */
-      __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_t_3 = __Pyx_GetItemInt(__pyx_v_entries, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_v_last_error);
-      __pyx_v_last_error = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_last_error = __pyx_t_3;
+      __pyx_t_3 = 0;
       goto __pyx_L5;
     }
     __pyx_L5:;
@@ -30189,24 +30368,24 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
  *         self._entries = entries
  * 
  */
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseErrorLog)), __pyx_n_s____init__); 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);
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(__pyx_v_first_error);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_first_error);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_first_error);
   __Pyx_GIVEREF(__pyx_v_first_error);
   __Pyx_INCREF(__pyx_v_last_error);
-  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_last_error);
+  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_last_error);
   __Pyx_GIVEREF(__pyx_v_last_error);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":225
  *                 last_error = entries[-1]
@@ -30225,9 +30404,9 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._ListErrorLog.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -30845,6 +31024,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_16filter_domains(struct _
   Py_ssize_t __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
+  int __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -30870,7 +31050,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_16filter_domains(struct _
  *             domains = (domains,)
  *         for entry in self._entries:
  */
-  __pyx_t_2 = (!PySequence_Check(__pyx_v_domains));
+  __pyx_t_2 = ((!(PySequence_Check(__pyx_v_domains) != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":266
@@ -30927,7 +31107,8 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_16filter_domains(struct _
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_t_4, __pyx_v_domains, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    if (__pyx_t_2) {
+    __pyx_t_5 = (__pyx_t_2 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":269
  *         for entry in self._entries:
@@ -30936,7 +31117,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_16filter_domains(struct _
  *         return _ListErrorLog(filtered, None, None)
  * 
  */
-      __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;}
+      __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 = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
@@ -31015,6 +31196,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_18filter_types(struct __p
   Py_ssize_t __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
+  int __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -31040,7 +31222,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_18filter_types(struct __p
  *             types = (types,)
  *         for entry in self._entries:
  */
-  __pyx_t_2 = (!PySequence_Check(__pyx_v_types));
+  __pyx_t_2 = ((!(PySequence_Check(__pyx_v_types) != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":281
@@ -31097,7 +31279,8 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_18filter_types(struct __p
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_t_4, __pyx_v_types, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    if (__pyx_t_2) {
+    __pyx_t_5 = (__pyx_t_2 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":284
  *         for entry in self._entries:
@@ -31106,7 +31289,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_18filter_types(struct __p
  *         return _ListErrorLog(filtered, None, None)
  * 
  */
-      __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;}
+      __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 = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
@@ -31185,6 +31368,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_20filter_levels(struct __
   Py_ssize_t __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
+  int __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -31210,7 +31394,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_20filter_levels(struct __
  *             levels = (levels,)
  *         for entry in self._entries:
  */
-  __pyx_t_2 = (!PySequence_Check(__pyx_v_levels));
+  __pyx_t_2 = ((!(PySequence_Check(__pyx_v_levels) != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":296
@@ -31267,7 +31451,8 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_20filter_levels(struct __
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_t_4, __pyx_v_levels, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    if (__pyx_t_2) {
+    __pyx_t_5 = (__pyx_t_2 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":299
  *         for entry in self._entries:
@@ -31276,7 +31461,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_20filter_levels(struct __
  *         return _ListErrorLog(filtered, None, None)
  * 
  */
-      __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;}
+      __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 = 299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
@@ -32431,6 +32616,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_ErrorLog_receive(struct __pyx_obj_4lxml_
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
   int __pyx_t_5;
+  int __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -32467,7 +32653,8 @@ static PyObject *__pyx_f_4lxml_5etree_9_ErrorLog_receive(struct __pyx_obj_4lxml_
  *         self._entries.append(entry)
  */
   __pyx_t_4 = (((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._first_error) == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":397
  *     cpdef receive(self, _LogEntry entry):
@@ -32496,7 +32683,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_ErrorLog_receive(struct __pyx_obj_4lxml_
     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 = __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_t_6 = __Pyx_PyList_Append(__pyx_v_self->__pyx_base._entries, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_6 == -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;
@@ -32515,9 +32702,9 @@ static PyObject *__pyx_f_4lxml_5etree_9_ErrorLog_receive(struct __pyx_obj_4lxml_
 /* 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("receive (wrapper)", 0);
@@ -32702,6 +32889,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_DomainErrorLog_receive(struct __pyx_obj
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -32744,7 +32932,8 @@ static PyObject *__pyx_f_4lxml_5etree_15_DomainErrorLog_receive(struct __pyx_obj
   __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;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":407
  *     cpdef receive(self, _LogEntry entry):
@@ -32777,9 +32966,9 @@ static PyObject *__pyx_f_4lxml_5etree_15_DomainErrorLog_receive(struct __pyx_obj
 /* 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("receive (wrapper)", 0);
@@ -32995,7 +33184,7 @@ static PyObject *__pyx_f_4lxml_5etree_17_RotatingErrorLog_receive(struct __pyx_o
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._entries);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_4 = (PyList_GET_SIZE(__pyx_t_1) > __pyx_v_self->_max_len);
+  __pyx_t_4 = ((PyList_GET_SIZE(__pyx_t_1) > __pyx_v_self->_max_len) != 0);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_4) {
 
@@ -33045,9 +33234,9 @@ static PyObject *__pyx_f_4lxml_5etree_17_RotatingErrorLog_receive(struct __pyx_o
 /* 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("receive (wrapper)", 0);
@@ -33177,6 +33366,7 @@ static int __pyx_pf_4lxml_5etree_10PyErrorLog___init__(struct __pyx_obj_4lxml_5e
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -33321,7 +33511,8 @@ static int __pyx_pf_4lxml_5etree_10PyErrorLog___init__(struct __pyx_obj_4lxml_5e
  *                 logger = logging.getLogger(logger_name)
  */
   __pyx_t_4 = (__pyx_v_logger == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":453
  *         self._map_level = self.level_map.get
@@ -33330,8 +33521,8 @@ static int __pyx_pf_4lxml_5etree_10PyErrorLog___init__(struct __pyx_obj_4lxml_5e
  *                 logger = logging.getLogger(logger_name)
  *             else:
  */
-    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_logger_name); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_4) {
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_logger_name); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":454
  *         if logger is None:
@@ -33781,9 +33972,9 @@ static PyObject *__pyx_f_4lxml_5etree_10PyErrorLog_receive(struct __pyx_obj_4lxm
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("receive (wrapper)", 0);
@@ -33910,7 +34101,7 @@ static struct __pyx_obj_4lxml_5etree__BaseErrorLog *__pyx_f_4lxml_5etree__getGlo
  *         return __GLOBAL_ERROR_LOG
  *     try:
  */
-  __pyx_t_1 = (__pyx_v_thread_dict == NULL);
+  __pyx_t_1 = ((__pyx_v_thread_dict == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":505
@@ -34096,7 +34287,7 @@ static PyObject *__pyx_f_4lxml_5etree__setGlobalErrorLog(struct __pyx_obj_4lxml_
  *         global __GLOBAL_ERROR_LOG
  *         __GLOBAL_ERROR_LOG = log
  */
-  __pyx_t_1 = (__pyx_v_thread_dict == NULL);
+  __pyx_t_1 = ((__pyx_v_thread_dict == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":519
@@ -34190,9 +34381,9 @@ static PyObject *__pyx_pw_4lxml_5etree_5use_global_python_log(PyObject *__pyx_se
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("use_global_python_log (wrapper)", 0);
@@ -34274,7 +34465,7 @@ static void __pyx_f_4lxml_5etree__forwardError(void *__pyx_v_c_log_handler, xmlE
  *         log_handler = <_BaseErrorLog>c_log_handler
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_log_handler != NULL);
+  __pyx_t_1 = ((__pyx_v_c_log_handler != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":547
@@ -34373,13 +34564,8 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         return
  *     if msg[0] in b'\n\0':
  */
-  if (!0) {
-    __pyx_t_1 = (__pyx_v_msg == NULL);
-    __pyx_t_2 = __pyx_t_1;
-  } else {
-    __pyx_t_2 = 0;
-  }
-  if (__pyx_t_2) {
+  __pyx_t_1 = ((__pyx_v_msg == NULL) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":566
  *     cdef int i, text_size, element_size
@@ -34431,12 +34617,12 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_text = cvarargs.va_charptr(args)
  *     else:
  */
-  __pyx_t_2 = ((__pyx_v_msg[0]) == '%');
-  if (__pyx_t_2) {
-    __pyx_t_1 = ((__pyx_v_msg[1]) == 's');
-    __pyx_t_3 = __pyx_t_1;
-  } else {
+  __pyx_t_1 = (((__pyx_v_msg[0]) == '%') != 0);
+  if (__pyx_t_1) {
+    __pyx_t_2 = (((__pyx_v_msg[1]) == 's') != 0);
     __pyx_t_3 = __pyx_t_2;
+  } else {
+    __pyx_t_3 = __pyx_t_1;
   }
   if (__pyx_t_3) {
 
@@ -34498,12 +34684,12 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *                             'string://__STRING__XSLT', 23) == 0:
  *             c_error.file = '<xslt>'
  */
-      __pyx_t_3 = (strncmp(__pyx_v_c_error.file, __pyx_k_53, 23) == 0);
-      __pyx_t_2 = __pyx_t_3;
+      __pyx_t_3 = ((strncmp(__pyx_v_c_error.file, __pyx_k_53, 23) == 0) != 0);
+      __pyx_t_1 = __pyx_t_3;
     } else {
-      __pyx_t_2 = (__pyx_v_c_error.file != 0);
+      __pyx_t_1 = (__pyx_v_c_error.file != 0);
     }
-    if (__pyx_t_2) {
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":580
  *                 cstring_h.strncmp(c_error.file,
@@ -34538,8 +34724,8 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_error.line = cvarargs.va_int(args)
  *     else:
  */
-  __pyx_t_2 = (strstr(__pyx_v_msg, __pyx_k_55) != 0);
-  if (__pyx_t_2) {
+  __pyx_t_1 = (strstr(__pyx_v_msg, __pyx_k_55) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":584
  *         c_error.file = NULL
@@ -34571,8 +34757,8 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_element = cvarargs.va_charptr(args)
  *     else:
  */
-  __pyx_t_2 = (strstr(__pyx_v_msg, __pyx_k_56) != 0);
-  if (__pyx_t_2) {
+  __pyx_t_1 = (strstr(__pyx_v_msg, __pyx_k_56) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":588
  *         c_error.line = 0
@@ -34622,8 +34808,8 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         if c_element is not NULL and \
  *                 cstring_h.strchr(msg, c'%') == cstring_h.strrchr(msg, c'%'):
  */
-  __pyx_t_2 = (__pyx_v_c_text == NULL);
-  if (__pyx_t_2) {
+  __pyx_t_1 = ((__pyx_v_c_text == NULL) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":595
  *     c_message = NULL
@@ -34632,8 +34818,8 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *                 cstring_h.strchr(msg, c'%') == cstring_h.strrchr(msg, c'%'):
  *             # special case: a single occurrence of 'element %s'
  */
-    __pyx_t_2 = (__pyx_v_c_element != NULL);
-    if (__pyx_t_2) {
+    __pyx_t_1 = ((__pyx_v_c_element != NULL) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":596
  *     if c_text is NULL:
@@ -34642,12 +34828,12 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *             # special case: a single occurrence of 'element %s'
  *             text_size    = cstring_h.strlen(msg)
  */
-      __pyx_t_3 = (strchr(__pyx_v_msg, '%') == strrchr(__pyx_v_msg, '%'));
-      __pyx_t_1 = __pyx_t_3;
+      __pyx_t_3 = ((strchr(__pyx_v_msg, '%') == strrchr(__pyx_v_msg, '%')) != 0);
+      __pyx_t_2 = __pyx_t_3;
     } else {
-      __pyx_t_1 = __pyx_t_2;
+      __pyx_t_2 = __pyx_t_1;
     }
-    if (__pyx_t_1) {
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":598
  *                 cstring_h.strchr(msg, c'%') == cstring_h.strrchr(msg, c'%'):
@@ -34717,8 +34903,8 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_error.message = c_text
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_element == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_element == NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":607
  *             c_error.message = ''
@@ -34831,8 +35017,8 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         stdlib.free(c_message)
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_message != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_message != NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":624
  * 
@@ -35413,7 +35599,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getroot(struct LxmlDocument *__
  *             return None
  *         return _elementFactory(self, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":338
@@ -35559,7 +35745,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *             if c_dtd.ExternalID is not NULL:
  *                 public_id = funicode(c_dtd.ExternalID)
  */
-  __pyx_t_2 = (__pyx_v_c_dtd != NULL);
+  __pyx_t_2 = ((__pyx_v_c_dtd != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":355
@@ -35569,7 +35755,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *                 public_id = funicode(c_dtd.ExternalID)
  *             if c_dtd.SystemID is not NULL:
  */
-    __pyx_t_2 = (__pyx_v_c_dtd->ExternalID != NULL);
+    __pyx_t_2 = ((__pyx_v_c_dtd->ExternalID != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":356
@@ -35595,7 +35781,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *                 sys_url = funicode(c_dtd.SystemID)
  *         c_dtd = self._c_doc.extSubset
  */
-    __pyx_t_2 = (__pyx_v_c_dtd->SystemID != NULL);
+    __pyx_t_2 = ((__pyx_v_c_dtd->SystemID != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":358
@@ -35634,7 +35820,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *             if not public_id and c_dtd.ExternalID is not NULL:
  *                 public_id = funicode(c_dtd.ExternalID)
  */
-  __pyx_t_2 = (__pyx_v_c_dtd != NULL);
+  __pyx_t_2 = ((__pyx_v_c_dtd != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":361
@@ -35645,9 +35831,9 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *             if not sys_url and c_dtd.SystemID is not NULL:
  */
     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = (!__pyx_t_2);
+    __pyx_t_4 = ((!__pyx_t_2) != 0);
     if (__pyx_t_4) {
-      __pyx_t_2 = (__pyx_v_c_dtd->ExternalID != NULL);
+      __pyx_t_2 = ((__pyx_v_c_dtd->ExternalID != NULL) != 0);
       __pyx_t_5 = __pyx_t_2;
     } else {
       __pyx_t_5 = __pyx_t_4;
@@ -35678,9 +35864,9 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *         c_root_node = tree.xmlDocGetRootElement(self._c_doc)
  */
     __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_sys_url); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = (!__pyx_t_5);
+    __pyx_t_4 = ((!__pyx_t_5) != 0);
     if (__pyx_t_4) {
-      __pyx_t_5 = (__pyx_v_c_dtd->SystemID != NULL);
+      __pyx_t_5 = ((__pyx_v_c_dtd->SystemID != NULL) != 0);
       __pyx_t_2 = __pyx_t_5;
     } else {
       __pyx_t_2 = __pyx_t_4;
@@ -35722,7 +35908,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *             root_name = None
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_c_root_node == NULL);
+  __pyx_t_2 = ((__pyx_v_c_root_node == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":367
@@ -35829,7 +36015,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
  *             version = None
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_c_doc->version == NULL);
+  __pyx_t_2 = ((__pyx_v_c_doc->version == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":377
@@ -35866,7 +36052,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
  *             encoding = None
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_c_doc->encoding == NULL);
+  __pyx_t_2 = ((__pyx_v_c_doc->encoding == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":381
@@ -35955,7 +36141,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_isstandalone(struct LxmlDocumen
  *             return None
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_self->_c_doc->standalone == -1);
+  __pyx_t_1 = ((__pyx_v_self->_c_doc->standalone == -1) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":391
@@ -36016,6 +36202,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   PyObject *__pyx_t_1 = NULL;
   Py_ssize_t __pyx_t_2;
   int __pyx_t_3;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -36036,7 +36223,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   }
   __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_3 = (__pyx_v_self->_ns_counter < __pyx_t_2);
+  __pyx_t_3 = ((__pyx_v_self->_ns_counter < __pyx_t_2) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":400
@@ -36081,7 +36268,8 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
  *         self._ns_counter += 1
  */
   __pyx_t_3 = (__pyx_v_self->_prefix_tail != ((PyObject*)Py_None));
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":404
  *             ns = python.PyBytes_FromFormat("ns%d", self._ns_counter)
@@ -36115,8 +36303,8 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
  *             # overflow!
  *             self._ns_counter = 0
  */
-  __pyx_t_3 = (__pyx_v_self->_ns_counter < 0);
-  if (__pyx_t_3) {
+  __pyx_t_4 = ((__pyx_v_self->_ns_counter < 0) != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":408
  *         if self._ns_counter < 0:
@@ -36134,7 +36322,8 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
  *                 self._prefix_tail = b"A"
  *             else:
  */
-    __pyx_t_3 = (__pyx_v_self->_prefix_tail == ((PyObject*)Py_None));
+    __pyx_t_4 = (__pyx_v_self->_prefix_tail == ((PyObject*)Py_None));
+    __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":410
@@ -36229,7 +36418,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *             assert c_node.type == tree.XML_ELEMENT_NODE, \
  *                 u"invalid node type %d, expected %d" % (
  */
-  __pyx_t_1 = (__pyx_v_c_node->type != XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type != XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":426
@@ -36240,7 +36429,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *                 c_node.type, tree.XML_ELEMENT_NODE)
  */
     #ifndef CYTHON_WITHOUT_ASSERTIONS
-    if (unlikely(!(__pyx_v_c_node->type == XML_ELEMENT_NODE))) {
+    if (unlikely(!((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0))) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":428
  *             assert c_node.type == tree.XML_ELEMENT_NODE, \
@@ -36289,7 +36478,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *             if is_attribute and c_ns.prefix is NULL:
  *                 # do not put namespaced attributes into the default
  */
-  __pyx_t_1 = (__pyx_v_c_ns != NULL);
+  __pyx_t_1 = ((__pyx_v_c_ns != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":432
@@ -36299,11 +36488,11 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *                 # do not put namespaced attributes into the default
  *                 # namespace as this would break serialisation
  */
-    if (__pyx_v_is_attribute) {
-      __pyx_t_1 = (__pyx_v_c_ns->prefix == NULL);
+    if ((__pyx_v_is_attribute != 0)) {
+      __pyx_t_1 = ((__pyx_v_c_ns->prefix == NULL) != 0);
       __pyx_t_5 = __pyx_t_1;
     } else {
-      __pyx_t_5 = __pyx_v_is_attribute;
+      __pyx_t_5 = (__pyx_v_is_attribute != 0);
     }
     if (__pyx_t_5) {
       goto __pyx_L5;
@@ -36332,7 +36521,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *             dict_result = python.PyDict_GetItem(
  *                 _DEFAULT_NAMESPACE_PREFIXES, <unsigned char*>c_href)
  */
-  __pyx_t_5 = (__pyx_v_c_prefix == NULL);
+  __pyx_t_5 = ((__pyx_v_c_prefix == NULL) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":442
@@ -36357,7 +36546,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *                 prefix = <object>dict_result
  *             else:
  */
-    __pyx_t_5 = (__pyx_v_dict_result != NULL);
+    __pyx_t_5 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":444
@@ -36407,7 +36596,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *             c_prefix = _xcstr(prefix)
  */
   while (1) {
-    __pyx_t_5 = (xmlSearchNs(__pyx_v_self->_c_doc, __pyx_v_c_node, __pyx_v_c_prefix) != NULL);
+    __pyx_t_5 = ((xmlSearchNs(__pyx_v_self->_c_doc, __pyx_v_c_node, __pyx_v_c_prefix) != NULL) != 0);
     if (!__pyx_t_5) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":451
@@ -36449,7 +36638,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  *             raise MemoryError()
  *         return c_ns
  */
-  __pyx_t_5 = (__pyx_v_c_ns == NULL);
+  __pyx_t_5 = ((__pyx_v_c_ns == NULL) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":457
@@ -36606,6 +36795,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
+  int __pyx_t_3;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -36664,7 +36854,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
  *     result._parser = parser
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":481
  *     result._prefix_tail = None
@@ -37712,7 +37903,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_3URL___get__(struct __pyx_obj_4l
  *                 return None
  *             return _decodeFilename(self._doc._c_doc.URL)
  */
-  __pyx_t_1 = (__pyx_v_self->_doc->_c_doc->URL == NULL);
+  __pyx_t_1 = ((__pyx_v_self->_doc->_c_doc->URL == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":541
@@ -37782,6 +37973,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
   PyObject *__pyx_t_1 = NULL;
   const xmlChar *__pyx_t_2;
   int __pyx_t_3;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -37819,7 +38011,8 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
  *             else:
  */
   __pyx_t_3 = (__pyx_v_url == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":547
  *             c_oldurl = self._doc._c_doc.URL
@@ -37851,8 +38044,8 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
  *                 tree.xmlFree(<void*>c_oldurl)
  * 
  */
-  __pyx_t_3 = (__pyx_v_c_oldurl != NULL);
-  if (__pyx_t_3) {
+  __pyx_t_4 = ((__pyx_v_c_oldurl != NULL) != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":551
  *                 self._doc._c_doc.URL = tree.xmlStrdup(_xcstr(url))
@@ -38131,7 +38324,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
  *                 return u'<!DOCTYPE %s>' % root_name
  *             else:
  */
-  __pyx_t_7 = __pyx_f_4lxml_5etree_9_Document_hasdoctype(__pyx_v_self->_doc);
+  __pyx_t_7 = (__pyx_f_4lxml_5etree_9_Document_hasdoctype(__pyx_v_self->_doc) != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":568
@@ -38356,7 +38549,7 @@ static void __pyx_pf_4lxml_5etree_8_Element_2__dealloc__(struct LxmlElement *__p
  *             _unregisterProxy(self)
  *             attemptDeallocation(self._c_node)
  */
-  __pyx_t_1 = (__pyx_v_self->_c_node != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_c_node != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":607
@@ -38431,10 +38624,11 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  Py_ssize_t __pyx_t_3;
-  xmlDoc *__pyx_t_4;
-  xmlNode *__pyx_t_5;
-  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_3;
+  Py_ssize_t __pyx_t_4;
+  xmlDoc *__pyx_t_5;
+  xmlNode *__pyx_t_6;
+  PyObject *__pyx_t_7 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -38476,7 +38670,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *         if python.PySlice_Check(x):
  */
   __pyx_t_2 = (__pyx_v_value == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":626
  *         _assertValidNode(self)
@@ -38498,8 +38693,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *             # slice assignment
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  */
-  __pyx_t_2 = PySlice_Check(__pyx_v_x);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (PySlice_Check(__pyx_v_x) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":629
  *         if python.PySlice_Check(x):
@@ -38517,8 +38712,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *                 left_to_right = 1
  *             else:
  */
-    __pyx_t_2 = (__pyx_v_step > 0);
-    if (__pyx_t_2) {
+    __pyx_t_3 = ((__pyx_v_step > 0) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":631
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
@@ -38601,8 +38796,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *             if c_node is NULL:
  *                 raise IndexError, u"list index out of range"
  */
-    __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_node = __pyx_f_4lxml_5etree__findChild(__pyx_v_self->_c_node, __pyx_t_3);
+    __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_node = __pyx_f_4lxml_5etree__findChild(__pyx_v_self->_c_node, __pyx_t_4);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":642
  *             _assertValidNode(element)
@@ -38611,8 +38806,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *                 raise IndexError, u"list index out of range"
  *             c_source_doc = element._c_node.doc
  */
-    __pyx_t_2 = (__pyx_v_c_node == NULL);
-    if (__pyx_t_2) {
+    __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":643
  *             c_node = _findChild(self._c_node, x)
@@ -38634,8 +38829,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *             c_next = element._c_node.next
  *             _removeText(c_node.next)
  */
-    __pyx_t_4 = __pyx_v_element->_c_node->doc;
-    __pyx_v_c_source_doc = __pyx_t_4;
+    __pyx_t_5 = __pyx_v_element->_c_node->doc;
+    __pyx_v_c_source_doc = __pyx_t_5;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":645
  *                 raise IndexError, u"list index out of range"
@@ -38644,8 +38839,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *             _removeText(c_node.next)
  *             tree.xmlReplaceNode(c_node, element._c_node)
  */
-    __pyx_t_5 = __pyx_v_element->_c_node->next;
-    __pyx_v_c_next = __pyx_t_5;
+    __pyx_t_6 = __pyx_v_element->_c_node->next;
+    __pyx_v_c_next = __pyx_t_6;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":646
  *             c_source_doc = element._c_node.doc
@@ -38681,10 +38876,10 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *             if not attemptDeallocation(c_node):
  *                 moveNodeToDocument(self._doc, c_node.doc, c_node)
  */
-    __pyx_t_6 = ((PyObject *)__pyx_v_self->_doc);
-    __Pyx_INCREF(__pyx_t_6);
-    __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __pyx_t_7 = ((PyObject *)__pyx_v_self->_doc);
+    __Pyx_INCREF(__pyx_t_7);
+    __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __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/lxml.etree.pyx":650
  *             _moveTail(c_next, element._c_node)
@@ -38693,8 +38888,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  *                 moveNodeToDocument(self._doc, c_node.doc, c_node)
  * 
  */
-    __pyx_t_2 = (!__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node));
-    if (__pyx_t_2) {
+    __pyx_t_3 = ((!(__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node) != 0)) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":651
  *             moveNodeToDocument(self._doc, c_source_doc, element._c_node)
@@ -38703,10 +38898,10 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  * 
  *     def __delitem__(self, x):
  */
-      __pyx_t_6 = ((PyObject *)__pyx_v_self->_doc);
-      __Pyx_INCREF(__pyx_t_6);
-      __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_7 = ((PyObject *)__pyx_v_self->_doc);
+      __Pyx_INCREF(__pyx_t_7);
+      __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L7;
     }
     __pyx_L7:;
@@ -38716,7 +38911,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.etree._Element.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -38800,7 +38995,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  *             # slice deletion
  *             if _isFullSlice(<slice>x):
  */
-  __pyx_t_2 = PySlice_Check(__pyx_v_x);
+  __pyx_t_2 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":664
@@ -38810,7 +39005,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  *                 c_node = self._c_node.children
  *                 if c_node is not NULL:
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x));
+    __pyx_t_2 = (__pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x)) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":665
@@ -38830,7 +39025,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  *                     if not _isElement(c_node):
  *                         c_node = _nextElement(c_node)
  */
-      __pyx_t_2 = (__pyx_v_c_node != NULL);
+      __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
       if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":667
@@ -38840,7 +39035,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  *                         c_node = _nextElement(c_node)
  *                     while c_node is not NULL:
  */
-        __pyx_t_2 = (!_isElement(__pyx_v_c_node));
+        __pyx_t_2 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
         if (__pyx_t_2) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":668
@@ -38863,7 +39058,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  *                         _removeNode(self._doc, c_node)
  */
         while (1) {
-          __pyx_t_2 = (__pyx_v_c_node != NULL);
+          __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
           if (!__pyx_t_2) break;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":670
@@ -38946,7 +39141,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  *                 raise IndexError, u"index out of range: %d" % x
  *             _removeText(c_node.next)
  */
-    __pyx_t_2 = (__pyx_v_c_node == NULL);
+    __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":680
@@ -39091,8 +39286,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
-  xmlNode *__pyx_t_6;
-  int __pyx_t_7;
+  int __pyx_t_6;
+  xmlNode *__pyx_t_7;
   int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -39153,7 +39348,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
  *         # Comment/PI
  */
   __pyx_t_5 = (__pyx_v_root != Py_None);
-  if (__pyx_t_5) {
+  __pyx_t_6 = (__pyx_t_5 != 0);
+  if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":698
  *         root = new_doc.getroot()
@@ -39177,8 +39373,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
  *         while c_node is not NULL and c_node.type != self._c_node.type:
  *             c_node = c_node.next
  */
-  __pyx_t_6 = __pyx_v_c_doc->children;
-  __pyx_v_c_node = __pyx_t_6;
+  __pyx_t_7 = __pyx_v_c_doc->children;
+  __pyx_v_c_node = __pyx_t_7;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":701
  *         # Comment/PI
@@ -39188,12 +39384,12 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
  *         if c_node is NULL:
  */
   while (1) {
-    __pyx_t_5 = (__pyx_v_c_node != NULL);
-    if (__pyx_t_5) {
-      __pyx_t_7 = (__pyx_v_c_node->type != __pyx_v_self->_c_node->type);
-      __pyx_t_8 = __pyx_t_7;
-    } else {
+    __pyx_t_6 = ((__pyx_v_c_node != NULL) != 0);
+    if (__pyx_t_6) {
+      __pyx_t_5 = ((__pyx_v_c_node->type != __pyx_v_self->_c_node->type) != 0);
       __pyx_t_8 = __pyx_t_5;
+    } else {
+      __pyx_t_8 = __pyx_t_6;
     }
     if (!__pyx_t_8) break;
 
@@ -39204,8 +39400,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
  *         if c_node is NULL:
  *             return None
  */
-    __pyx_t_6 = __pyx_v_c_node->next;
-    __pyx_v_c_node = __pyx_t_6;
+    __pyx_t_7 = __pyx_v_c_node->next;
+    __pyx_v_c_node = __pyx_t_7;
   }
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":703
@@ -39215,7 +39411,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
  *             return None
  *         return _elementFactory(new_doc, c_node)
  */
-  __pyx_t_8 = (__pyx_v_c_node == NULL);
+  __pyx_t_8 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_8) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":704
@@ -39372,9 +39568,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_12set(struct LxmlElement *__pyx
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("append (wrapper)", 0);
@@ -39447,9 +39643,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_14append(struct LxmlElement *__
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("addnext (wrapper)", 0);
@@ -39508,9 +39704,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
  *             if element._c_node.type != tree.XML_PI_NODE:
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->parent != NULL);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->parent != NULL) != 0);
   if (__pyx_t_2) {
-    __pyx_t_3 = (!_isElement(__pyx_v_self->_c_node->parent));
+    __pyx_t_3 = ((!(_isElement(__pyx_v_self->_c_node->parent) != 0)) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -39524,7 +39720,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  */
-    __pyx_t_4 = (__pyx_v_element->_c_node->type != XML_PI_NODE);
+    __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_PI_NODE) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":738
@@ -39534,7 +39730,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  *             element.tail = None
  */
-      __pyx_t_4 = (__pyx_v_element->_c_node->type != XML_COMMENT_NODE);
+      __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_COMMENT_NODE) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":739
@@ -39589,9 +39785,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("addprevious (wrapper)", 0);
@@ -39650,9 +39846,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
  *             if element._c_node.type != tree.XML_PI_NODE:
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->parent != NULL);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->parent != NULL) != 0);
   if (__pyx_t_2) {
-    __pyx_t_3 = (!_isElement(__pyx_v_self->_c_node->parent));
+    __pyx_t_3 = ((!(_isElement(__pyx_v_self->_c_node->parent) != 0)) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -39666,7 +39862,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  */
-    __pyx_t_4 = (__pyx_v_element->_c_node->type != XML_PI_NODE);
+    __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_PI_NODE) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":757
@@ -39676,7 +39872,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  *             element.tail = None
  */
-      __pyx_t_4 = (__pyx_v_element->_c_node->type != XML_COMMENT_NODE);
+      __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_COMMENT_NODE) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":758
@@ -39757,6 +39953,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_20extend(struct LxmlElement *__
   PyObject *(*__pyx_t_4)(PyObject *);
   PyObject *__pyx_t_5 = NULL;
   int __pyx_t_6;
+  int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -39825,7 +40022,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_20extend(struct LxmlElement *__
  *             _assertValidNode(element)
  */
     __pyx_t_6 = (((PyObject *)__pyx_v_element) == Py_None);
-    if (__pyx_t_6) {
+    __pyx_t_7 = (__pyx_t_6 != 0);
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":771
  *         for element in elements:
@@ -39966,7 +40164,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  *             tree.xmlRemoveProp(c_attr)
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_c_attr != NULL);
+    __pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":793
@@ -40015,7 +40213,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  *             if not _isElement(c_node):
  *                 c_node = _nextElement(c_node)
  */
-  __pyx_t_4 = (__pyx_v_c_node != NULL);
+  __pyx_t_4 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":799
@@ -40025,7 +40223,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  *                 c_node = _nextElement(c_node)
  *             while c_node is not NULL:
  */
-    __pyx_t_4 = (!_isElement(__pyx_v_c_node));
+    __pyx_t_4 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":800
@@ -40048,7 +40246,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  *                 _removeNode(self._doc, c_node)
  */
     while (1) {
-      __pyx_t_4 = (__pyx_v_c_node != NULL);
+      __pyx_t_4 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_4) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":802
@@ -40222,7 +40420,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
  *             _appendChild(self, element)
  *             return
  */
-  __pyx_t_3 = (__pyx_v_c_node == NULL);
+  __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":818
@@ -40314,9 +40512,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("remove (wrapper)", 0);
@@ -40387,7 +40585,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
  *             raise ValueError, u"Element is not a child of this node."
  *         c_next = element._c_node.next
  */
-  __pyx_t_3 = (__pyx_v_c_node->parent != __pyx_v_self->_c_node);
+  __pyx_t_3 = ((__pyx_v_c_node->parent != __pyx_v_self->_c_node) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":839
@@ -40591,7 +40789,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
  *             raise ValueError, u"Element is not a child of this node."
  *         c_old_next = c_old_node.next
  */
-  __pyx_t_3 = (__pyx_v_c_old_node->parent != __pyx_v_self->_c_node);
+  __pyx_t_3 = ((__pyx_v_c_old_node->parent != __pyx_v_self->_c_node) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":862
@@ -40734,7 +40932,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -40748,7 +40947,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
  *             _assertValidNode(self)
  */
   __pyx_t_1 = (__pyx_v_self->_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":880
  *         def __get__(self):
@@ -40772,7 +40972,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
  *             self._tag = _namespacedName(self._c_node)
  *             return self._tag
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":882
  *                 return self._tag
@@ -40781,13 +40981,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
  *             return self._tag
  * 
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_self->_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_GIVEREF(__pyx_t_3);
+  __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_self->_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_4);
   __Pyx_GOTREF(__pyx_v_self->_tag);
   __Pyx_DECREF(__pyx_v_self->_tag);
-  __pyx_v_self->_tag = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_v_self->_tag = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":883
  *             _assertValidNode(self)
@@ -40804,7 +41004,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._Element.tag.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -40942,10 +41142,10 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
  *             else:
  */
   __pyx_t_7 = (((PyObject *)__pyx_v_parser) != Py_None);
-  if (__pyx_t_7) {
-    __pyx_t_8 = __pyx_v_parser->_for_html;
+  if ((__pyx_t_7 != 0)) {
+    __pyx_t_8 = (__pyx_v_parser->_for_html != 0);
   } else {
-    __pyx_t_8 = __pyx_t_7;
+    __pyx_t_8 = (__pyx_t_7 != 0);
   }
   if (__pyx_t_8) {
 
@@ -41002,7 +41202,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
  *             else:
  */
   __pyx_t_8 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_8) {
+  __pyx_t_7 = (__pyx_t_8 != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":897
  *             tree.xmlNodeSetName(self._c_node, _xcstr(name))
@@ -41204,8 +41405,9 @@ static int __pyx_pf_4lxml_5etree_8_Element_4text_2__set__(struct LxmlElement *__
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -41229,7 +41431,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4text_2__set__(struct LxmlElement *__
  *             _setNodeText(self._c_node, value)
  */
   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":920
  *             _assertValidNode(self)
@@ -41238,18 +41441,18 @@ static int __pyx_pf_4lxml_5etree_8_Element_4text_2__set__(struct LxmlElement *__
  *             _setNodeText(self._c_node, value)
  * 
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_self, __pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    if (unlikely(__pyx_t_3 == Py_None)) {
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_self, __pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    if (unlikely(__pyx_t_4 == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(__pyx_t_3, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_5 = ((PyObject *)__Pyx_decode_bytes(__pyx_t_4, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = ((PyObject *)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __pyx_v_value = ((PyObject *)__pyx_t_5);
+    __pyx_t_5 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -41266,8 +41469,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4text_2__set__(struct LxmlElement *__
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.text.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -41432,7 +41635,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6prefix___get__(struct LxmlElem
  *                 if self._c_node.ns.prefix is not NULL:
  *                     return funicode(self._c_node.ns.prefix)
  */
-  __pyx_t_1 = (__pyx_v_self->_c_node->ns != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_c_node->ns != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":950
@@ -41442,7 +41645,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6prefix___get__(struct LxmlElem
  *                     return funicode(self._c_node.ns.prefix)
  *             return None
  */
-    __pyx_t_1 = (__pyx_v_self->_c_node->ns->prefix != NULL);
+    __pyx_t_1 = ((__pyx_v_self->_c_node->ns->prefix != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":951
@@ -41545,7 +41748,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10sourceline___get__(struct Lxm
  *                 return line
  *             else:
  */
-  __pyx_t_2 = (__pyx_v_line > 0);
+  __pyx_t_2 = ((__pyx_v_line > 0) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":963
@@ -41756,9 +41959,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
  *                 while c_ns is not NULL:
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_c_node != NULL);
+    __pyx_t_4 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_4) {
-      __pyx_t_5 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+      __pyx_t_5 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
       __pyx_t_6 = __pyx_t_5;
     } else {
       __pyx_t_6 = __pyx_t_4;
@@ -41783,7 +41986,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
  *                     if prefix not in nsmap:
  */
     while (1) {
-      __pyx_t_6 = (__pyx_v_c_ns != NULL);
+      __pyx_t_6 = ((__pyx_v_c_ns != NULL) != 0);
       if (!__pyx_t_6) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":991
@@ -41793,7 +41996,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
  *                     if prefix not in nsmap:
  *                         nsmap[prefix] = None if c_ns.href is NULL else funicode(c_ns.href)
  */
-      if ((__pyx_v_c_ns->prefix == NULL)) {
+      if (((__pyx_v_c_ns->prefix == NULL) != 0)) {
         __Pyx_INCREF(Py_None);
         __pyx_t_1 = Py_None;
       } else {
@@ -41814,7 +42017,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
  *                     c_ns = c_ns.next
  */
       __pyx_t_6 = (__Pyx_PyDict_Contains(__pyx_v_prefix, ((PyObject *)__pyx_v_nsmap), Py_NE)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      if (__pyx_t_6) {
+      __pyx_t_4 = (__pyx_t_6 != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":993
  *                     prefix = None if c_ns.prefix is NULL else funicode(c_ns.prefix)
@@ -41823,7 +42027,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
  *                     c_ns = c_ns.next
  *                 c_node = c_node.parent
  */
-        if ((__pyx_v_c_ns->href == NULL)) {
+        if (((__pyx_v_c_ns->href == NULL) != 0)) {
           __Pyx_INCREF(Py_None);
           __pyx_t_1 = Py_None;
         } else {
@@ -41944,7 +42148,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
  *                 if self._doc._c_doc.URL is NULL:
  *                     return None
  */
-  __pyx_t_2 = (__pyx_v_c_base == NULL);
+  __pyx_t_2 = ((__pyx_v_c_base == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1014
@@ -41954,7 +42158,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
  *                     return None
  *                 return _decodeFilename(self._doc._c_doc.URL)
  */
-    __pyx_t_2 = (__pyx_v_self->_doc->_c_doc->URL == NULL);
+    __pyx_t_2 = ((__pyx_v_self->_doc->_c_doc->URL == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1015
@@ -42060,7 +42264,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -42084,7 +42289,8 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
  *             else:
  */
   __pyx_t_2 = (__pyx_v_url == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1024
  *             _assertValidNode(self)
@@ -42105,11 +42311,11 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
  *                 c_base = _xcstr(url)
  *             tree.xmlNodeSetBase(self._c_node, c_base)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_url = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1027
  *             else:
@@ -42134,7 +42340,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._Element.base.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -42305,7 +42511,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *             # slicing
  *             if _isFullSlice(<slice>x):
  */
-  __pyx_t_2 = PySlice_Check(__pyx_v_x);
+  __pyx_t_2 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1047
@@ -42315,7 +42521,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *                 return _collectChildren(self)
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x));
+    __pyx_t_2 = (__pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x)) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1048
@@ -42351,7 +42557,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *                 return []
  *             if step > 0:
  */
-    __pyx_t_2 = (__pyx_v_c_node == NULL);
+    __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1051
@@ -42378,7 +42584,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *                 next_element = _nextElement
  *             else:
  */
-    __pyx_t_2 = (__pyx_v_step > 0);
+    __pyx_t_2 = ((__pyx_v_step > 0) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1053
@@ -42442,9 +42648,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *                 c = c + 1
  */
     while (1) {
-      __pyx_t_2 = (__pyx_v_c_node != NULL);
+      __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
       if (__pyx_t_2) {
-        __pyx_t_4 = (__pyx_v_c < __pyx_v_slicelength);
+        __pyx_t_4 = ((__pyx_v_c < __pyx_v_slicelength) != 0);
         __pyx_t_5 = __pyx_t_4;
       } else {
         __pyx_t_5 = __pyx_t_2;
@@ -42528,7 +42734,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *                 raise IndexError, u"list index out of range"
  *             return _elementFactory(self._doc, c_node)
  */
-    __pyx_t_5 = (__pyx_v_c_node == NULL);
+    __pyx_t_5 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1069
@@ -42800,7 +43006,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_38__contains__(struct LxmlElement *__
  *         c_node = (<_Element>element)._c_node
  */
   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  __pyx_t_3 = (!__pyx_t_2);
+  __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1097
@@ -43135,7 +43341,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *             raise ValueError, u"Element is not a child of this node."
  * 
  */
-  __pyx_t_3 = (__pyx_v_c_child->parent != __pyx_v_self->_c_node);
+  __pyx_t_3 = ((__pyx_v_c_child->parent != __pyx_v_self->_c_node) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1124
@@ -43202,7 +43408,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     k += 1
  */
     while (1) {
-      __pyx_t_4 = (__pyx_v_c_child != NULL);
+      __pyx_t_4 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_4) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1131
@@ -43212,7 +43418,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     k += 1
  *                 c_child = c_child.prev
  */
-      __pyx_t_4 = _isElement(__pyx_v_c_child);
+      __pyx_t_4 = (_isElement(__pyx_v_c_child) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1132
@@ -43263,7 +43469,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *         else:
  */
   __pyx_t_4 = (__pyx_v_start == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_3 = (__pyx_t_4 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1138
  *         # check indices
@@ -43296,7 +43503,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *             c_stop = 0
  *         else:
  */
-  __pyx_t_4 = (__pyx_v_stop == Py_None);
+  __pyx_t_3 = (__pyx_v_stop == Py_None);
+  __pyx_t_4 = (__pyx_t_3 != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1142
@@ -43328,7 +43536,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                    c_start >= c_stop and (c_stop > 0 or c_start < 0):
  *                 raise ValueError, u"list.index(x): x not in slice"
  */
-    __pyx_t_4 = (__pyx_v_c_stop == 0);
+    __pyx_t_4 = ((__pyx_v_c_stop == 0) != 0);
     if (!__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1146
@@ -43338,11 +43546,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                 raise ValueError, u"list.index(x): x not in slice"
  * 
  */
-      __pyx_t_3 = (__pyx_v_c_start >= __pyx_v_c_stop);
+      __pyx_t_3 = ((__pyx_v_c_start >= __pyx_v_c_stop) != 0);
       if (__pyx_t_3) {
-        __pyx_t_7 = (__pyx_v_c_stop > 0);
+        __pyx_t_7 = ((__pyx_v_c_stop > 0) != 0);
         if (!__pyx_t_7) {
-          __pyx_t_6 = (__pyx_v_c_start < 0);
+          __pyx_t_6 = ((__pyx_v_c_start < 0) != 0);
           __pyx_t_9 = __pyx_t_6;
         } else {
           __pyx_t_9 = __pyx_t_7;
@@ -43379,9 +43587,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *             # start from right, at most up to leftmost(c_start, c_stop)
  *             if c_start < c_stop:
  */
-  __pyx_t_3 = (__pyx_v_c_start < 0);
+  __pyx_t_3 = ((__pyx_v_c_start < 0) != 0);
   if (!__pyx_t_3) {
-    __pyx_t_4 = (__pyx_v_c_stop < 0);
+    __pyx_t_4 = ((__pyx_v_c_stop < 0) != 0);
     __pyx_t_7 = __pyx_t_4;
   } else {
     __pyx_t_7 = __pyx_t_3;
@@ -43395,7 +43603,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                 k = -c_start
  *             else:
  */
-    __pyx_t_7 = (__pyx_v_c_start < __pyx_v_c_stop);
+    __pyx_t_7 = ((__pyx_v_c_start < __pyx_v_c_stop) != 0);
     if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1153
@@ -43448,9 +43656,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     l += 1
  */
     while (1) {
-      __pyx_t_7 = (__pyx_v_c_start_node != __pyx_v_c_child);
+      __pyx_t_7 = ((__pyx_v_c_start_node != __pyx_v_c_child) != 0);
       if (__pyx_t_7) {
-        __pyx_t_3 = (__pyx_v_l < __pyx_v_k);
+        __pyx_t_3 = ((__pyx_v_l < __pyx_v_k) != 0);
         __pyx_t_4 = __pyx_t_3;
       } else {
         __pyx_t_4 = __pyx_t_7;
@@ -43464,7 +43672,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     l += 1
  *                 c_start_node = c_start_node.prev
  */
-      __pyx_t_4 = _isElement(__pyx_v_c_start_node);
+      __pyx_t_4 = (_isElement(__pyx_v_c_start_node) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1160
@@ -43497,7 +43705,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                 # found! before slice end?
  *                 if c_stop < 0 and l <= -c_stop:
  */
-    __pyx_t_4 = (__pyx_v_c_start_node == __pyx_v_c_child);
+    __pyx_t_4 = ((__pyx_v_c_start_node == __pyx_v_c_child) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1164
@@ -43507,9 +43715,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     raise ValueError, u"list.index(x): x not in slice"
  *             elif c_start < 0:
  */
-      __pyx_t_4 = (__pyx_v_c_stop < 0);
+      __pyx_t_4 = ((__pyx_v_c_stop < 0) != 0);
       if (__pyx_t_4) {
-        __pyx_t_7 = (__pyx_v_l <= (-__pyx_v_c_stop));
+        __pyx_t_7 = ((__pyx_v_l <= (-__pyx_v_c_stop)) != 0);
         __pyx_t_3 = __pyx_t_7;
       } else {
         __pyx_t_3 = __pyx_t_4;
@@ -43538,7 +43746,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                 raise ValueError, u"list.index(x): x not in slice"
  * 
  */
-    __pyx_t_3 = (__pyx_v_c_start < 0);
+    __pyx_t_3 = ((__pyx_v_c_start < 0) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1167
@@ -43583,7 +43791,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *             # we can optimize: stop after c_stop elements if not found
  *             while c_child != NULL and k < c_stop:
  */
-  __pyx_t_3 = (__pyx_v_c_stop > 0);
+  __pyx_t_3 = ((__pyx_v_c_stop > 0) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1174
@@ -43594,9 +43802,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     k += 1
  */
     while (1) {
-      __pyx_t_3 = (__pyx_v_c_child != NULL);
+      __pyx_t_3 = ((__pyx_v_c_child != NULL) != 0);
       if (__pyx_t_3) {
-        __pyx_t_4 = (__pyx_v_k < __pyx_v_c_stop);
+        __pyx_t_4 = ((__pyx_v_k < __pyx_v_c_stop) != 0);
         __pyx_t_7 = __pyx_t_4;
       } else {
         __pyx_t_7 = __pyx_t_3;
@@ -43610,7 +43818,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     k += 1
  *                 c_child = c_child.prev
  */
-      __pyx_t_7 = _isElement(__pyx_v_c_child);
+      __pyx_t_7 = (_isElement(__pyx_v_c_child) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1176
@@ -43643,7 +43851,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                 return k
  *         else:
  */
-    __pyx_t_7 = (__pyx_v_k < __pyx_v_c_stop);
+    __pyx_t_7 = ((__pyx_v_k < __pyx_v_c_stop) != 0);
     if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1179
@@ -43674,7 +43882,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     k = k + 1
  */
     while (1) {
-      __pyx_t_7 = (__pyx_v_c_child != NULL);
+      __pyx_t_7 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_7) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1183
@@ -43684,7 +43892,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     k = k + 1
  *                 c_child = c_child.prev
  */
-      __pyx_t_7 = _isElement(__pyx_v_c_child);
+      __pyx_t_7 = (_isElement(__pyx_v_c_child) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1184
@@ -43717,7 +43925,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                 if k >= c_start:
  *                     return k
  */
-    __pyx_t_7 = (__pyx_v_c_start > 0);
+    __pyx_t_7 = ((__pyx_v_c_start > 0) != 0);
     if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1187
@@ -43727,7 +43935,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                     return k
  *             else:
  */
-      __pyx_t_7 = (__pyx_v_k >= __pyx_v_c_start);
+      __pyx_t_7 = ((__pyx_v_k >= __pyx_v_c_start) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1188
@@ -43775,9 +43983,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *             raise ValueError, u"list.index(x): x not in slice"
  *         else:
  */
-  __pyx_t_7 = (__pyx_v_c_start != 0);
+  __pyx_t_7 = ((__pyx_v_c_start != 0) != 0);
   if (!__pyx_t_7) {
-    __pyx_t_3 = (__pyx_v_c_stop != 0);
+    __pyx_t_3 = ((__pyx_v_c_stop != 0) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_7;
@@ -44245,7 +44453,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_56getparent(struct LxmlElement
  *             return None
  *         return _elementFactory(self._doc, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1253
@@ -44341,7 +44549,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_58getnext(struct LxmlElement *_
  *             return None
  *         return _elementFactory(self._doc, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1265
@@ -44437,7 +44645,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_60getprevious(struct LxmlElemen
  *             return None
  *         return _elementFactory(self._doc, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1277
@@ -44573,9 +44781,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -44590,7 +44799,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
  *         return SiblingsIterator(self, tags, preceding=preceding)
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1295
  *         """
@@ -44599,17 +44809,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
  *         return SiblingsIterator(self, tags, preceding=preceding)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; __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 = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; __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_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; __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(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -44622,31 +44832,31 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
  *     def iterancestors(self, tag=None, *tags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __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[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
-  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tags));
+  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__preceding), __pyx_v_preceding) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_SiblingsIterator)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__preceding), __pyx_v_preceding) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_SiblingsIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.itersiblings", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -44736,8 +44946,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -44752,7 +44963,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
  *         return AncestorsIterator(self, tags)
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1307
  *         """
@@ -44761,17 +44973,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
  *         return AncestorsIterator(self, tags)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __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 = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __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_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __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(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -44784,26 +44996,26 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
  *     def iterdescendants(self, tag=None, *tags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __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[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
-  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tags));
+  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_AncestorsIterator)), ((PyObject *)__pyx_t_3), NULL); 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);
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_AncestorsIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._Element.iterancestors", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -44893,9 +45105,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -44910,7 +45123,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
  *         return ElementDepthFirstIterator(self, tags, inclusive=False)
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1320
  *         """
@@ -44919,17 +45133,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
  *         return ElementDepthFirstIterator(self, tags, inclusive=False)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __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 = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __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_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __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(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -44942,34 +45156,34 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
  *     def iterchildren(self, tag=None, *tags, reversed=False):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __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[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
-  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tags));
+  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__inclusive), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__inclusive), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.iterdescendants", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -45067,9 +45281,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -45084,7 +45299,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
  *         return ElementChildIterator(self, tags, reversed=reversed)
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1333
  *         """
@@ -45093,17 +45309,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
  *         return ElementChildIterator(self, tags, reversed=reversed)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __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 = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __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_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __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(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -45116,31 +45332,31 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
  *     def getroottree(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __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[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
-  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tags));
+  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__reversed), __pyx_v_reversed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__reversed), __pyx_v_reversed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.iterchildren", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -45303,8 +45519,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -45319,7 +45536,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
  *         return ElementDepthFirstIterator(self, tags)
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1367
  *         """
@@ -45328,17 +45546,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
  *         return ElementDepthFirstIterator(self, tags)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __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 = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __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_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __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(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -45351,26 +45569,26 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
  *     def iter(self, tag=None, *tags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __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[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
-  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tags));
+  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._Element.getiterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -45460,8 +45678,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -45476,7 +45695,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
  *         return ElementDepthFirstIterator(self, tags)
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1389
  *         """
@@ -45485,17 +45705,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
  *         return ElementDepthFirstIterator(self, tags)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __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 = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __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_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __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(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -45508,26 +45728,26 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
  *     def itertext(self, tag=None, *tags, with_tail=True):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __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[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
-  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tags));
+  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._Element.iter", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -45625,9 +45845,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -45642,7 +45863,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
  *         return ElementTextIterator(self, tags, with_tail=with_tail)
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1404
  *         """
@@ -45651,17 +45873,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
  *         return ElementTextIterator(self, tags, with_tail=with_tail)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __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 = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __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_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __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(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -45674,31 +45896,31 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
  *     def makeelement(self, _tag, attrib=None, nsmap=None, **_extra):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __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[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
-  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_tags));
+  PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__with_tail), __pyx_v_with_tail) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementTextIterator)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__with_tail), __pyx_v_with_tail) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementTextIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.itertext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -45930,9 +46152,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -45947,7 +46170,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
  *         return _elementpath.find(self, path, namespaces)
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_path, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1426
  *         """
@@ -45956,11 +46180,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
  *         return _elementpath.find(self, path, namespaces)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
+    __Pyx_INCREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_path = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -45973,33 +46197,33 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
  *     def findtext(self, path, default=None, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__find); 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);
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(__pyx_v_path);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_path);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_path);
   __Pyx_GIVEREF(__pyx_v_path);
   __Pyx_INCREF(__pyx_v_namespaces);
-  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_namespaces);
+  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.find", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -46094,9 +46318,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -46111,7 +46336,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
  *         return _elementpath.findtext(self, path, default, namespaces)
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_path, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1439
  *         """
@@ -46120,11 +46346,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
  *         return _elementpath.findtext(self, path, default, namespaces)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
+    __Pyx_INCREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_path = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -46137,36 +46363,36 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
  *     def findall(self, path, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findtext); 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);
+  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(__pyx_v_path);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_path);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_path);
   __Pyx_GIVEREF(__pyx_v_path);
   __Pyx_INCREF(__pyx_v_default);
-  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_default);
+  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_default);
   __Pyx_GIVEREF(__pyx_v_default);
   __Pyx_INCREF(__pyx_v_namespaces);
-  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_namespaces);
+  PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.findtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -46251,9 +46477,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -46268,7 +46495,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
  *         return _elementpath.findall(self, path, namespaces)
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_path, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1452
  *         """
@@ -46277,11 +46505,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
  *         return _elementpath.findall(self, path, namespaces)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
+    __Pyx_INCREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_path = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -46294,33 +46522,33 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
  *     def iterfind(self, path, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findall); 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);
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(__pyx_v_path);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_path);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_path);
   __Pyx_GIVEREF(__pyx_v_path);
   __Pyx_INCREF(__pyx_v_namespaces);
-  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_namespaces);
+  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.findall", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -46405,9 +46633,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -46422,7 +46651,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
  *         return _elementpath.iterfind(self, path, namespaces)
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_path, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1465
  *         """
@@ -46431,11 +46661,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
  *         return _elementpath.iterfind(self, path, namespaces)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text;
+    __Pyx_INCREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_path = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -46448,33 +46678,33 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
  *     def xpath(self, _path, *, namespaces=None, extensions=None,
  */
   __Pyx_XDECREF(__pyx_r);
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__iterfind); 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);
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __Pyx_INCREF(__pyx_v_path);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_path);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_path);
   __Pyx_GIVEREF(__pyx_v_path);
   __Pyx_INCREF(__pyx_v_namespaces);
-  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_v_namespaces);
+  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._Element.iterfind", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -46669,8 +46899,9 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -46696,7 +46927,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     if c_node is NULL:
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_result) != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1488
  *     result = getProxy(c_node)
@@ -46720,8 +46952,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *         return None
  * 
  */
-  __pyx_t_2 = (__pyx_v_c_node == NULL);
-  if (__pyx_t_2) {
+  __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1490
  *         return result
@@ -46747,11 +46979,11 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  */
   __pyx_t_1 = __pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE;
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_3 = __pyx_v_4lxml_5etree_LOOKUP_ELEMENT_CLASS(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = __pyx_v_4lxml_5etree_LOOKUP_ELEMENT_CLASS(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_v_element_class = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_v_element_class = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1494
  *     element_class = LOOKUP_ELEMENT_CLASS(
@@ -46760,8 +46992,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *         # prevent re-entry race condition - we just called into Python
  *         return getProxy(c_node)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1496
  *     if hasProxy(c_node):
@@ -46771,10 +47003,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     if hasProxy(c_node):
  */
     __Pyx_XDECREF(((PyObject *)__pyx_r));
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_r = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_r = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L5;
   }
@@ -46787,12 +47019,12 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     if hasProxy(c_node):
  *         # prevent re-entry race condition - we just called into Python
  */
-  __pyx_t_3 = PY_NEW(__pyx_v_element_class); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __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[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PY_NEW(__pyx_v_element_class); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __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[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_v_result));
-  __pyx_v_result = ((struct LxmlElement *)__pyx_t_3);
-  __pyx_t_3 = 0;
+  __pyx_v_result = ((struct LxmlElement *)__pyx_t_4);
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1498
  *         return getProxy(c_node)
@@ -46801,8 +47033,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *         # prevent re-entry race condition - we just called into Python
  *         result._c_node = NULL
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1500
  *     if hasProxy(c_node):
@@ -46821,10 +47053,10 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     _registerProxy(result, doc, c_node)
  */
     __Pyx_XDECREF(((PyObject *)__pyx_r));
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_r = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_r = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L6;
   }
@@ -46837,7 +47069,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     if element_class is not _Element:
  *         result._init()
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_result, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_result, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1504
  * 
@@ -46846,7 +47078,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *         result._init()
  *     return result
  */
-  __pyx_t_2 = (__pyx_v_element_class != ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Element)));
+  __pyx_t_3 = (__pyx_v_element_class != ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Element)));
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1505
@@ -46856,11 +47089,11 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     return result
  * 
  */
-    __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_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s___init); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((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);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     goto __pyx_L7;
   }
@@ -46882,7 +47115,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._elementFactory", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -47323,7 +47556,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text___get__(stru
  *                 return ''
  *             else:
  */
-  __pyx_t_2 = (__pyx_v_self->__pyx_base._c_node->content == NULL);
+  __pyx_t_2 = ((__pyx_v_self->__pyx_base._c_node->content == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1538
@@ -47394,7 +47627,8 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -47418,7 +47652,8 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
  *             else:
  */
   __pyx_t_2 = (__pyx_v_value == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1546
  *             _assertValidNode(self)
@@ -47439,11 +47674,11 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
  *                 c_text = _xcstr(value)
  *             tree.xmlNodeSetContent(self._c_node, c_text)
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_value = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1549
  *             else:
@@ -47468,7 +47703,7 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree.__ContentOnlyElement.text.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -47517,7 +47752,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_8__getitem__(CYTHO
  *             return []
  *         else:
  */
-  __pyx_t_1 = PySlice_Check(__pyx_v_x);
+  __pyx_t_1 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1556
@@ -48792,6 +49027,7 @@ static int __pyx_pf_4lxml_5etree_7_Entity_4name_2__set__(struct __pyx_obj_4lxml_
   int __pyx_t_3;
   int __pyx_t_4;
   int __pyx_t_5;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -48802,7 +49038,7 @@ static int __pyx_pf_4lxml_5etree_7_Entity_4name_2__set__(struct __pyx_obj_4lxml_
  *         def __set__(self, value):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             value_utf = _utf8(value)
- *             assert u'&' not in value and u';' not in value, \
+ *             if u'&' in value or u';' in value:
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
@@ -48810,8 +49046,8 @@ static int __pyx_pf_4lxml_5etree_7_Entity_4name_2__set__(struct __pyx_obj_4lxml_
  *         def __set__(self, value):
  *             _assertValidNode(self)
  *             value_utf = _utf8(value)             # <<<<<<<<<<<<<<
- *             assert u'&' not in value and u';' not in value, \
- *                 u"Invalid entity name '%s'" % value
+ *             if u'&' in value or u';' in value:
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)
  */
   __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
@@ -48821,38 +49057,46 @@ static int __pyx_pf_4lxml_5etree_7_Entity_4name_2__set__(struct __pyx_obj_4lxml_
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1652
  *             _assertValidNode(self)
  *             value_utf = _utf8(value)
- *             assert u'&' not in value and u';' not in value, \             # <<<<<<<<<<<<<<
- *                 u"Invalid entity name '%s'" % value
+ *             if u'&' in value or u';' in value:             # <<<<<<<<<<<<<<
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  */
-  #ifndef CYTHON_WITHOUT_ASSERTIONS
-  __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_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;
+  __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_EQ)); 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 != 0)) {
+    __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_86), __pyx_v_value, Py_EQ)); 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 != 0);
   } else {
-    __pyx_t_5 = __pyx_t_3;
+    __pyx_t_5 = (__pyx_t_3 != 0);
   }
-  if (unlikely(!__pyx_t_5)) {
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1653
  *             value_utf = _utf8(value)
- *             assert u'&' not in value and u';' not in value, \
- *                 u"Invalid entity name '%s'" % value             # <<<<<<<<<<<<<<
+ *             if u'&' in value or u';' in value:
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)             # <<<<<<<<<<<<<<
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  * 
  */
     __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_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_2));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+    __pyx_t_2 = 0;
+    __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+    __Pyx_Raise(__pyx_t_2, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L3;
   }
-  #endif
+  __pyx_L3:;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1654
- *             assert u'&' not in value and u';' not in value, \
- *                 u"Invalid entity name '%s'" % value
+ *             if u'&' in value or u';' in value:
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))             # <<<<<<<<<<<<<<
  * 
  *     property text:
@@ -48863,6 +49107,7 @@ static int __pyx_pf_4lxml_5etree_7_Entity_4name_2__set__(struct __pyx_obj_4lxml_
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._Entity.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -49075,12 +49320,13 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  PyObject *(*__pyx_t_6)(PyObject *);
-  int __pyx_t_7;
+  PyObject *__pyx_t_6 = NULL;
+  PyObject *(*__pyx_t_7)(PyObject *);
+  int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -49094,7 +49340,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *             if isinstance(text_or_uri_or_element, _Element):
  *                 text_or_uri_or_element = (<_Element>text_or_uri_or_element).tag
  */
-  __pyx_t_1 = (!_isString(__pyx_v_text_or_uri_or_element));
+  __pyx_t_1 = ((!(_isString(__pyx_v_text_or_uri_or_element) != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1692
@@ -49105,7 +49351,8 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *                 if not _isString(text_or_uri_or_element):
  */
     __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_text_or_uri_or_element, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1693
  *         if not _isString(text_or_uri_or_element):
@@ -49114,11 +49361,11 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *                 if not _isString(text_or_uri_or_element):
  *                     raise ValueError, (u"Invalid input tag of type %r" %
  */
-      __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_text_or_uri_or_element, __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_v_text_or_uri_or_element);
-      __pyx_v_text_or_uri_or_element = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_text_or_uri_or_element = __pyx_t_3;
+      __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1694
  *             if isinstance(text_or_uri_or_element, _Element):
@@ -49127,8 +49374,8 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *                     raise ValueError, (u"Invalid input tag of type %r" %
  *                                        type(text_or_uri_or_element))
  */
-      __pyx_t_1 = (!_isString(__pyx_v_text_or_uri_or_element));
-      if (__pyx_t_1) {
+      __pyx_t_2 = ((!(_isString(__pyx_v_text_or_uri_or_element) != 0)) != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1696
  *                 if not _isString(text_or_uri_or_element):
@@ -49137,10 +49384,10 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *             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_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_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_90), ((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+        __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0);
+        __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
         {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
       }
@@ -49155,7 +49402,8 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *                 text_or_uri_or_element = (<QName>text_or_uri_or_element).text
  *             else:
  */
-    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_text_or_uri_or_element, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
+    __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_text_or_uri_or_element, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1698
@@ -49165,11 +49413,11 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *             else:
  *                 text_or_uri_or_element = unicode(text_or_uri_or_element)
  */
-      __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_text_or_uri_or_element)->text;
-      __Pyx_INCREF(__pyx_t_2);
+      __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_text_or_uri_or_element)->text;
+      __Pyx_INCREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_v_text_or_uri_or_element);
-      __pyx_v_text_or_uri_or_element = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_text_or_uri_or_element = __pyx_t_3;
+      __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     /*else*/ {
@@ -49181,17 +49429,17 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  * 
  *         ns_utf, tag_utf = _getNsTag(text_or_uri_or_element)
  */
-      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __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 = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_v_text_or_uri_or_element);
-      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_text_or_uri_or_element);
+      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_text_or_uri_or_element);
       __Pyx_GIVEREF(__pyx_v_text_or_uri_or_element);
-      __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_v_text_or_uri_or_element);
-      __pyx_v_text_or_uri_or_element = __pyx_t_3;
-      __pyx_t_3 = 0;
+      __pyx_v_text_or_uri_or_element = __pyx_t_4;
+      __pyx_t_4 = 0;
     }
     __pyx_L4:;
     goto __pyx_L3;
@@ -49205,10 +49453,10 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *         if tag is not None:
  *             # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_text_or_uri_or_element)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  if (likely(PyTuple_CheckExact(__pyx_t_3))) {
-    PyObject* sequence = __pyx_t_3;
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_text_or_uri_or_element)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  if (likely(PyTuple_CheckExact(__pyx_t_4))) {
+    PyObject* sequence = __pyx_t_4;
     #if CYTHON_COMPILING_IN_CPYTHON
     Py_ssize_t size = Py_SIZE(sequence);
     #else
@@ -49220,45 +49468,45 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
-    __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
-    __Pyx_INCREF(__pyx_t_2);
-    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
+    __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
+    __Pyx_INCREF(__pyx_t_3);
+    __Pyx_INCREF(__pyx_t_5);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     #endif
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   } else if (1) {
     __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
+    index = 0; __pyx_t_3 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
+    __Pyx_GOTREF(__pyx_t_3);
+    index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
-    index = 0; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
-    __Pyx_GOTREF(__pyx_t_2);
-    index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
-    __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_6 = NULL;
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = NULL;
+    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L7_unpacking_done;
     __pyx_L6_unpacking_failed:;
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_6 = NULL;
+    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __pyx_t_7 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L7_unpacking_done:;
   }
-  __pyx_v_ns_utf = __pyx_t_2;
-  __pyx_t_2 = 0;
-  __pyx_v_tag_utf = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_v_ns_utf = __pyx_t_3;
+  __pyx_t_3 = 0;
+  __pyx_v_tag_utf = __pyx_t_5;
+  __pyx_t_5 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1703
  * 
@@ -49268,7 +49516,8 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *             if ns_utf is None:
  */
   __pyx_t_1 = (__pyx_v_tag != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1705
  *         if tag is not None:
@@ -49277,7 +49526,8 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *                 ns_utf = tag_utf # case 1: namespace ended up as tag name
  *             tag_utf = _utf8(tag)
  */
-    __pyx_t_1 = (__pyx_v_ns_utf == Py_None);
+    __pyx_t_2 = (__pyx_v_ns_utf == Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1706
@@ -49301,11 +49551,11 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *         _tagValidOrRaise(tag_utf)
  *         self.localname = (<bytes>tag_utf).decode('utf8')
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_v_tag_utf);
-    __pyx_v_tag_utf = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_tag_utf = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L8;
   }
   __pyx_L8:;
@@ -49317,7 +49567,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *         self.localname = (<bytes>tag_utf).decode('utf8')
  *         if ns_utf is None:
  */
-  __pyx_t_7 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_tag_utf); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_tag_utf); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1709
  *             tag_utf = _utf8(tag)
@@ -49330,13 +49580,13 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+  __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
   __Pyx_GOTREF(__pyx_v_self->localname);
   __Pyx_DECREF(__pyx_v_self->localname);
-  __pyx_v_self->localname = ((PyObject *)__pyx_t_3);
-  __pyx_t_3 = 0;
+  __pyx_v_self->localname = ((PyObject *)__pyx_t_4);
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1710
  *         _tagValidOrRaise(tag_utf)
@@ -49346,7 +49596,8 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *             self.text = self.localname
  */
   __pyx_t_1 = (__pyx_v_ns_utf == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1711
  *         self.localname = (<bytes>tag_utf).decode('utf8')
@@ -49368,13 +49619,13 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *         else:
  *             self.namespace = (<bytes>ns_utf).decode('utf8')
  */
-    __pyx_t_3 = __pyx_v_self->localname;
-    __Pyx_INCREF(__pyx_t_3);
-    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_t_4 = __pyx_v_self->localname;
+    __Pyx_INCREF(__pyx_t_4);
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_self->text);
     __Pyx_DECREF(__pyx_v_self->text);
-    __pyx_v_self->text = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_self->text = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L10;
   }
   /*else*/ {
@@ -49390,13 +49641,13 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_ns_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+    __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_ns_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
     __Pyx_GOTREF(__pyx_v_self->namespace);
     __Pyx_DECREF(__pyx_v_self->namespace);
-    __pyx_v_self->namespace = ((PyObject *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_self->namespace = ((PyObject *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1715
  *         else:
@@ -49405,32 +49656,32 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *     def __str__(self):
  *         return self.text
  */
-    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __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[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_self->namespace);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->namespace);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->namespace);
     __Pyx_GIVEREF(__pyx_v_self->namespace);
     __Pyx_INCREF(__pyx_v_self->localname);
-    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->localname);
+    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_self->localname);
     __Pyx_GIVEREF(__pyx_v_self->localname);
-    __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));
+    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_42), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
     __Pyx_GOTREF(__pyx_v_self->text);
     __Pyx_DECREF(__pyx_v_self->text);
-    __pyx_v_self->text = ((PyObject *)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __pyx_v_self->text = ((PyObject *)__pyx_t_5);
+    __pyx_t_5 = 0;
   }
   __pyx_L10:;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree.QName.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -49602,7 +49853,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
  *                 one = unicode(one)
  *             if not _isString(other):
  */
-      __pyx_t_4 = (!_isString(__pyx_v_one));
+      __pyx_t_4 = ((!(_isString(__pyx_v_one) != 0)) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1723
@@ -49634,7 +49885,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
  *                 other = unicode(other)
  *         except ValueError:
  */
-      __pyx_t_4 = (!_isString(__pyx_v_other));
+      __pyx_t_4 = ((!(_isString(__pyx_v_other) != 0)) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1725
@@ -49882,7 +50133,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(struct LxmlE
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
-  if (unlikely(!__pyx_t_1)) {
+  if (unlikely(!(__pyx_t_1 != 0))) {
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_91));
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -49994,9 +50245,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
   PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
   int __pyx_t_6;
-  PyObject *__pyx_t_7 = NULL;
+  int __pyx_t_7;
   PyObject *__pyx_t_8 = NULL;
   PyObject *__pyx_t_9 = NULL;
+  PyObject *__pyx_t_10 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -50063,7 +50315,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
  *         except _TargetParserResult, result_container:
  */
       __pyx_t_5 = (((PyObject *)__pyx_v_self->_context_node) == Py_None);
-      if (__pyx_t_5) {
+      __pyx_t_6 = (__pyx_t_5 != 0);
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1759
  *             self._context_node = doc.getroot()
@@ -50097,16 +50350,16 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
  */
     __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_t_7 = PyErr_ExceptionMatches(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    if (__pyx_t_6) {
+    if (__pyx_t_7) {
       __Pyx_AddTraceback("lxml.etree._ElementTree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_8);
-      __Pyx_INCREF(__pyx_t_7);
-      __pyx_v_result_container = __pyx_t_7;
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_INCREF(__pyx_t_8);
+      __pyx_v_result_container = __pyx_t_8;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1762
  *         except _TargetParserResult, result_container:
@@ -50115,17 +50368,17 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
  *         return self._context_node
  * 
  */
-      __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);
+      __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 = 1762; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      __Pyx_GOTREF(__pyx_t_10);
+      if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __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_10);
       __Pyx_GOTREF(__pyx_v_self->_context_node);
       __Pyx_DECREF(((PyObject *)__pyx_v_self->_context_node));
-      __pyx_v_self->_context_node = ((struct LxmlElement *)__pyx_t_9);
-      __pyx_t_9 = 0;
+      __pyx_v_self->_context_node = ((struct LxmlElement *)__pyx_t_10);
+      __pyx_t_10 = 0;
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L4_exception_handled;
     }
     __pyx_L5_except_error:;
@@ -50158,9 +50411,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_8);
   __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_10);
   __Pyx_AddTraceback("lxml.etree._ElementTree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -50175,9 +50428,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_setroot (wrapper)", 0);
@@ -50225,7 +50478,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_2_setroot(struct LxmlEleme
  *             raise TypeError, u"Only elements can be the root of an ElementTree"
  *         self._context_node = root
  */
-  __pyx_t_2 = (__pyx_v_root->_c_node->type != XML_ELEMENT_NODE);
+  __pyx_t_2 = ((__pyx_v_root->_c_node->type != XML_ELEMENT_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1772
@@ -50412,11 +50665,11 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
-  xmlDoc *__pyx_t_5;
-  int __pyx_t_6;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
+  xmlDoc *__pyx_t_6;
   int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -50431,7 +50684,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             _copyNonElementSiblings(self._context_node._c_node, root._c_node)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1791
  *         cdef xmlDoc* c_doc
@@ -50440,14 +50694,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             _copyNonElementSiblings(self._context_node._c_node, root._c_node)
  *             doc = root._doc
  */
-    __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_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context_node), __pyx_n_s____copy__); 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);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_root = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __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 = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1792
  *         if self._context_node is not None:
@@ -50456,7 +50710,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             doc = root._doc
  *             c_doc = self._context_node._doc._c_doc
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__copyNonElementSiblings(__pyx_v_self->_context_node->_c_node, __pyx_v_root->_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__copyNonElementSiblings(__pyx_v_self->_context_node->_c_node, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1793
  *             root = self._context_node.__copy__()
@@ -50465,10 +50719,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             c_doc = self._context_node._doc._c_doc
  *             if c_doc.intSubset is not NULL and doc._c_doc.intSubset is NULL:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_root->_doc);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_root->_doc);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1794
  *             _copyNonElementSiblings(self._context_node._c_node, root._c_node)
@@ -50477,8 +50731,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             if c_doc.intSubset is not NULL and doc._c_doc.intSubset is NULL:
  *                 doc._c_doc.intSubset = tree.xmlCopyDtd(c_doc.intSubset)
  */
-    __pyx_t_5 = __pyx_v_self->_context_node->_doc->_c_doc;
-    __pyx_v_c_doc = __pyx_t_5;
+    __pyx_t_6 = __pyx_v_self->_context_node->_doc->_c_doc;
+    __pyx_v_c_doc = __pyx_t_6;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1795
  *             doc = root._doc
@@ -50487,12 +50741,12 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *                 doc._c_doc.intSubset = tree.xmlCopyDtd(c_doc.intSubset)
  *                 if doc._c_doc.intSubset is NULL:
  */
-    __pyx_t_1 = (__pyx_v_c_doc->intSubset != NULL);
-    if (__pyx_t_1) {
-      __pyx_t_6 = (__pyx_v_doc->_c_doc->intSubset == NULL);
-      __pyx_t_7 = __pyx_t_6;
-    } else {
+    __pyx_t_2 = ((__pyx_v_c_doc->intSubset != NULL) != 0);
+    if (__pyx_t_2) {
+      __pyx_t_1 = ((__pyx_v_doc->_c_doc->intSubset == NULL) != 0);
       __pyx_t_7 = __pyx_t_1;
+    } else {
+      __pyx_t_7 = __pyx_t_2;
     }
     if (__pyx_t_7) {
 
@@ -50512,7 +50766,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *                     raise MemoryError()
  *             if c_doc.extSubset is not NULL and not doc._c_doc.extSubset is NULL:
  */
-      __pyx_t_7 = (__pyx_v_doc->_c_doc->intSubset == NULL);
+      __pyx_t_7 = ((__pyx_v_doc->_c_doc->intSubset == NULL) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1798
@@ -50537,14 +50791,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *                 doc._c_doc.extSubset = tree.xmlCopyDtd(c_doc.extSubset)
  *                 if doc._c_doc.extSubset is NULL:
  */
-    __pyx_t_7 = (__pyx_v_c_doc->extSubset != NULL);
+    __pyx_t_7 = ((__pyx_v_c_doc->extSubset != NULL) != 0);
     if (__pyx_t_7) {
-      __pyx_t_1 = (!(__pyx_v_doc->_c_doc->extSubset == NULL));
-      __pyx_t_6 = __pyx_t_1;
+      __pyx_t_2 = ((!((__pyx_v_doc->_c_doc->extSubset == NULL) != 0)) != 0);
+      __pyx_t_1 = __pyx_t_2;
     } else {
-      __pyx_t_6 = __pyx_t_7;
+      __pyx_t_1 = __pyx_t_7;
     }
-    if (__pyx_t_6) {
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1800
  *                     raise MemoryError()
@@ -50562,8 +50816,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *                     raise MemoryError()
  *             return _elementTreeFactory(None, root)
  */
-      __pyx_t_6 = (__pyx_v_doc->_c_doc->extSubset == NULL);
-      if (__pyx_t_6) {
+      __pyx_t_1 = ((__pyx_v_doc->_c_doc->extSubset == NULL) != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1802
  *                 doc._c_doc.extSubset = tree.xmlCopyDtd(c_doc.extSubset)
@@ -50588,10 +50842,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             _assertValidDoc(self._doc)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)Py_None), __pyx_v_root)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)Py_None), __pyx_v_root)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_r = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -50603,8 +50857,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             _assertValidDoc(self._doc)
  *             c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
  */
-  __pyx_t_6 = (((PyObject *)__pyx_v_self->_doc) != Py_None);
-  if (__pyx_t_6) {
+  __pyx_t_1 = (((PyObject *)__pyx_v_self->_doc) != Py_None);
+  __pyx_t_7 = (__pyx_t_1 != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1805
  *             return _elementTreeFactory(None, root)
@@ -50613,10 +50868,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
  *             if c_doc is NULL:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_doc);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_4 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_3)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1805; __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/lxml.etree.pyx":1806
  *         elif self._doc is not None:
@@ -50634,8 +50889,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *                 raise MemoryError()
  *             doc = _documentFactory(c_doc, self._doc._parser)
  */
-    __pyx_t_6 = (__pyx_v_c_doc == NULL);
-    if (__pyx_t_6) {
+    __pyx_t_7 = ((__pyx_v_c_doc == NULL) != 0);
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1808
  *             c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
@@ -50656,13 +50911,13 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             return _elementTreeFactory(doc, None)
  *         else:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_doc->_parser);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc->_parser);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_4))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1810
  *                 raise MemoryError()
@@ -50672,10 +50927,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             # so what ...
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -50698,8 +50953,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._ElementTree.__deepcopy__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -50818,7 +51073,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
  *                 return self._context_node._doc._parser
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
-  if (__pyx_t_1) {
+  if ((__pyx_t_1 != 0)) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1832
  *         def __get__(self):
@@ -50828,9 +51083,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
  *             if self._doc is not None:
  */
     __pyx_t_2 = (((PyObject *)__pyx_v_self->_context_node->_doc) != Py_None);
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -50857,7 +51112,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
  *             return None
  */
   __pyx_t_3 = (((PyObject *)__pyx_v_self->_doc) != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1835
  *                 return self._context_node._doc._parser
@@ -51117,7 +51373,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *             if xml_declaration:
  */
     __pyx_t_5 = (__pyx_v_encoding != Py_None);
-    if (__pyx_t_5) {
+    __pyx_t_3 = (__pyx_t_5 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1885
  *         if method == 'c14n':
@@ -51142,8 +51399,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *                 raise ValueError("Cannot enable XML declaration in C14N")
  * 
  */
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_5) {
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1887
  *                 raise ValueError("Cannot specify encoding with C14N")
@@ -51170,8 +51427,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  */
     __pyx_t_1 = ((PyObject *)__pyx_v_self->_context_node);
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1890
  * 
@@ -51181,7 +51438,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *         if not with_comments:
  */
     __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_1), __pyx_t_5, __pyx_t_3, __pyx_t_2, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_1), __pyx_t_3, __pyx_t_5, __pyx_t_2, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -51207,9 +51464,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *             raise ValueError("Can only discard comments in C14N serialisation")
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = (!__pyx_t_3);
-  if (__pyx_t_5) {
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((!__pyx_t_5) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1893
  *             return
@@ -51234,7 +51491,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *             write_declaration = xml_declaration
  *             if encoding is None:
  */
-  __pyx_t_5 = (__pyx_v_xml_declaration != Py_None);
+  __pyx_t_3 = (__pyx_v_xml_declaration != Py_None);
+  __pyx_t_5 = (__pyx_t_3 != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1896
@@ -51255,7 +51513,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *             else:
  */
     __pyx_t_5 = (__pyx_v_encoding == Py_None);
-    if (__pyx_t_5) {
+    __pyx_t_3 = (__pyx_t_5 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1898
  *             write_declaration = xml_declaration
@@ -51298,7 +51557,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *             encoding = u'ASCII'
  *             write_declaration = 0
  */
-  __pyx_t_5 = (__pyx_v_encoding == Py_None);
+  __pyx_t_3 = (__pyx_v_encoding == Py_None);
+  __pyx_t_5 = (__pyx_t_3 != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1902
@@ -51389,7 +51649,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *         elif standalone:
  */
   __pyx_t_5 = (__pyx_v_standalone == Py_None);
-  if (__pyx_t_5) {
+  __pyx_t_3 = (__pyx_t_5 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1909
  *                                   (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
@@ -51409,8 +51670,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *             write_declaration = 1
  *             is_standalone = 1
  */
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_5) {
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1911
  *             is_standalone = -1
@@ -51470,8 +51731,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *                     is_standalone, compression)
  * 
  */
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_pretty_print); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_pretty_print); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1918
  *         _tofilelike(file, self._context_node, encoding, docstring, method,
@@ -51481,7 +51742,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *     def getpath(self, _Element element not None):
  */
   __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __pyx_f_4lxml_5etree__tofilelike(__pyx_v_file, ((struct LxmlElement *)__pyx_t_6), __pyx_v_encoding, __pyx_v_docstring, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_t_5, __pyx_t_3, __pyx_v_is_standalone, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__tofilelike(__pyx_v_file, ((struct LxmlElement *)__pyx_t_6), __pyx_v_encoding, __pyx_v_docstring, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_t_3, __pyx_t_5, __pyx_v_is_standalone, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -51505,9 +51766,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("getpath (wrapper)", 0);
@@ -51539,8 +51800,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  xmlDoc *__pyx_t_4;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  xmlDoc *__pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -51563,7 +51825,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *             doc = root._doc
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1930
  *         _assertValidNode(element)
@@ -51572,10 +51835,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *             doc = root._doc
  *         elif self._doc is not None:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_context_node);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_root = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_self->_context_node);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1931
  *         if self._context_node is not None:
@@ -51584,10 +51847,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *         elif self._doc is not None:
  *             doc = self._doc
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_root->_doc);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_root->_doc);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
 
@@ -51598,7 +51861,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *             doc = self._doc
  *             root = doc.getroot()
  */
-  __pyx_t_2 = (((PyObject *)__pyx_v_self->_doc) != Py_None);
+  __pyx_t_3 = (((PyObject *)__pyx_v_self->_doc) != Py_None);
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1933
@@ -51608,10 +51872,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *             root = doc.getroot()
  *         else:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_doc);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1934
  *         elif self._doc is not None:
@@ -51620,11 +51884,11 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *         else:
  *             raise ValueError, u"Element is not in this tree."
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1934; __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[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_root = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); 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);
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -51667,7 +51931,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  * 
  */
   __pyx_t_2 = (__pyx_v_element->_doc != __pyx_v_doc);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1940
  *         _assertValidNode(root)
@@ -51689,8 +51954,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *         c_path = tree.xmlGetNodePath(element._c_node)
  *         _destroyFakeDoc(doc._c_doc, c_doc)
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_root->_c_node); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_doc = __pyx_t_4;
+  __pyx_t_5 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_doc = __pyx_t_5;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1943
  * 
@@ -51717,8 +51982,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *             raise MemoryError()
  *         path = funicode(c_path)
  */
-  __pyx_t_2 = (__pyx_v_c_path == NULL);
-  if (__pyx_t_2) {
+  __pyx_t_3 = ((__pyx_v_c_path == NULL) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1946
  *         _destroyFakeDoc(doc._c_doc, c_doc)
@@ -51739,10 +52004,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  *         tree.xmlFree(c_path)
  *         return path
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_path); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __pyx_v_path = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_path); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_v_path = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1948
  *             raise MemoryError()
@@ -51768,7 +52033,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._ElementTree.getpath", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -51863,7 +52128,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
   PyObject *__pyx_t_1 = NULL;
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -51893,7 +52159,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
  *         if tag is not None:
  */
   __pyx_t_3 = (__pyx_v_root == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1970
  *         root = self.getroot()
@@ -51917,7 +52184,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
  *             tags += (tag,)
  *         return root.getiterator(*tags)
  */
-  __pyx_t_3 = (__pyx_v_tag != Py_None);
+  __pyx_t_4 = (__pyx_v_tag != Py_None);
+  __pyx_t_3 = (__pyx_t_4 != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1972
@@ -51954,12 +52222,12 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
   __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));
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -51967,7 +52235,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._ElementTree.getiterator", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -52061,7 +52329,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
   PyObject *__pyx_t_1 = NULL;
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -52091,7 +52360,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
  *         if tag is not None:
  */
   __pyx_t_3 = (__pyx_v_root == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1986
  *         root = self.getroot()
@@ -52115,7 +52385,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
  *             tags += (tag,)
  *         return root.iter(*tags)
  */
-  __pyx_t_3 = (__pyx_v_tag != Py_None);
+  __pyx_t_4 = (__pyx_v_tag != Py_None);
+  __pyx_t_3 = (__pyx_t_4 != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1988
@@ -52152,12 +52423,12 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
   __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));
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -52165,7 +52436,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._ElementTree.iter", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -52295,7 +52566,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_18find(struct LxmlElementT
  *             start = path[:1]
  *             if start == u"/":
  */
-  __pyx_t_3 = _isString(__pyx_v_path);
+  __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2004
@@ -52540,7 +52811,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_20findtext(struct LxmlElem
  *             start = path[:1]
  *             if start == u"/":
  */
-  __pyx_t_3 = _isString(__pyx_v_path);
+  __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2024
@@ -52778,7 +53049,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_22findall(struct LxmlEleme
  *             start = path[:1]
  *             if start == u"/":
  */
-  __pyx_t_3 = _isString(__pyx_v_path);
+  __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2044
@@ -53013,7 +53284,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_24iterfind(struct LxmlElem
  *             start = path[:1]
  *             if start == u"/":
  */
-  __pyx_t_3 = _isString(__pyx_v_path);
+  __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2064
@@ -54044,11 +54315,11 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__newElementTree(struct LxmlD
  *     if context_node is None:
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_context_node) == Py_None);
-  if (__pyx_t_2) {
+  if ((__pyx_t_2 != 0)) {
     __pyx_t_3 = (((PyObject *)__pyx_v_doc) != Py_None);
-    __pyx_t_4 = __pyx_t_3;
+    __pyx_t_4 = (__pyx_t_3 != 0);
   } else {
-    __pyx_t_4 = __pyx_t_2;
+    __pyx_t_4 = (__pyx_t_2 != 0);
   }
   if (__pyx_t_4) {
 
@@ -54077,7 +54348,8 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__newElementTree(struct LxmlD
  *         result._doc = doc
  */
   __pyx_t_4 = (((PyObject *)__pyx_v_context_node) == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_2 = (__pyx_t_4 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2203
  *         context_node = doc.getroot()
@@ -54457,7 +54729,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
     __pyx_t_5 = __pyx_t_3;
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (__pyx_t_5) {
+  __pyx_t_3 = (__pyx_t_5 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2231
  *         _assertValidNode(self._element)
@@ -54705,7 +54978,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
  *                 len(default)+1)
  */
   __pyx_t_1 = PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (__pyx_t_1 > 1);
+  __pyx_t_2 = ((__pyx_t_1 > 1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2238
@@ -54763,7 +55036,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
  *                 raise KeyError, key
  */
   __pyx_t_2 = (__pyx_v_result == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_6 = (__pyx_t_2 != 0);
+  if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2242
  *         result = _getAttributeValue(self._element, key, None)
@@ -54772,9 +55046,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
  *                 raise KeyError, key
  *             result = default[0]
  */
-    __pyx_t_2 = (((PyObject *)__pyx_v_default) != Py_None) && (PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)) != 0);
-    __pyx_t_6 = (!__pyx_t_2);
-    if (__pyx_t_6) {
+    __pyx_t_6 = (((PyObject *)__pyx_v_default) != Py_None) && (PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)) != 0);
+    __pyx_t_2 = ((!__pyx_t_6) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2243
  *         if result is None:
@@ -54907,7 +55181,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_10clear(struct __pyx_obj_4lxml_5
  * 
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_c_node->properties != NULL);
+    __pyx_t_4 = ((__pyx_v_c_node->properties != NULL) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2253
@@ -55193,6 +55467,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_18__getitem__(struct __pyx_obj_4
   int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -55233,7 +55508,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_18__getitem__(struct __pyx_obj_4
  *         return result
  */
   __pyx_t_4 = (__pyx_v_result == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2272
  *         result = _getAttributeValue(self._element, key, None)
@@ -55336,7 +55612,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
  *                 return 1
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_c_attr != NULL);
+    __pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2279
@@ -55346,7 +55622,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
  *                 return 1
  *             c_attr = c_attr.next
  */
-    __pyx_t_4 = (__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE);
+    __pyx_t_4 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2280
@@ -55466,7 +55742,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
  *                 c += 1
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_c_attr != NULL);
+    __pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2289
@@ -55476,7 +55752,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
  *                 c += 1
  *             c_attr = c_attr.next
  */
-    __pyx_t_4 = (__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE);
+    __pyx_t_4 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2290
@@ -56337,7 +56613,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
  * 
  */
   __pyx_t_9 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_9) {
+  if ((__pyx_t_9 != 0)) {
     __pyx_t_8 = ((const xmlChar *)NULL);
   } else {
     __pyx_t_8 = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns);
@@ -56435,7 +56711,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
  *             if not isinstance(other, dict):
  */
       __pyx_t_4 = PyDict_Check(__pyx_v_one); 
-      __pyx_t_5 = (!__pyx_t_4);
+      __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
       if (__pyx_t_5) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2341
@@ -56468,7 +56744,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
  *         except (TypeError, ValueError):
  */
       __pyx_t_5 = PyDict_Check(__pyx_v_other); 
-      __pyx_t_4 = (!__pyx_t_5);
+      __pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2343
@@ -56652,8 +56928,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  xmlAttr *__pyx_t_2;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  xmlAttr *__pyx_t_3;
   int __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
@@ -56671,7 +56947,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *         c_attr = self._c_attr
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_node) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2364
  *         cdef xmlAttr* c_attr
@@ -56693,8 +56970,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *         while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
  *             c_attr = c_attr.next
  */
-  __pyx_t_2 = __pyx_v_self->_c_attr;
-  __pyx_v_c_attr = __pyx_t_2;
+  __pyx_t_3 = __pyx_v_self->_c_attr;
+  __pyx_v_c_attr = __pyx_t_3;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2366
  *             raise StopIteration
@@ -56704,12 +56981,12 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *         if c_attr is NULL:
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_attr != NULL);
-    if (__pyx_t_1) {
-      __pyx_t_3 = (__pyx_v_c_attr->type != XML_ATTRIBUTE_NODE);
-      __pyx_t_4 = __pyx_t_3;
-    } else {
+    __pyx_t_2 = ((__pyx_v_c_attr != NULL) != 0);
+    if (__pyx_t_2) {
+      __pyx_t_1 = ((__pyx_v_c_attr->type != XML_ATTRIBUTE_NODE) != 0);
       __pyx_t_4 = __pyx_t_1;
+    } else {
+      __pyx_t_4 = __pyx_t_2;
     }
     if (!__pyx_t_4) break;
 
@@ -56720,8 +56997,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *         if c_attr is NULL:
  *             self._node = None
  */
-    __pyx_t_2 = __pyx_v_c_attr->next;
-    __pyx_v_c_attr = __pyx_t_2;
+    __pyx_t_3 = __pyx_v_c_attr->next;
+    __pyx_v_c_attr = __pyx_t_3;
   }
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2368
@@ -56731,7 +57008,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *             self._node = None
  *             raise StopIteration
  */
-  __pyx_t_4 = (__pyx_v_c_attr == NULL);
+  __pyx_t_4 = ((__pyx_v_c_attr == NULL) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2369
@@ -56767,8 +57044,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *         if self._keysvalues == 1:
  *             return _namespacedName(<xmlNode*>c_attr)
  */
-  __pyx_t_2 = __pyx_v_c_attr->next;
-  __pyx_v_self->_c_attr = __pyx_t_2;
+  __pyx_t_3 = __pyx_v_c_attr->next;
+  __pyx_v_self->_c_attr = __pyx_t_3;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2375
  *         if self._keysvalues == 1:
@@ -56903,7 +57180,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
  *         return ITER_EMPTY
  *     attribs = _AttribIterator()
  */
-  __pyx_t_1 = (__pyx_v_element->_c_node->properties == NULL);
+  __pyx_t_1 = ((__pyx_v_element->_c_node->properties == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2384
@@ -57002,8 +57279,8 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -57036,7 +57313,8 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *         elif tag is Comment:
  */
   __pyx_t_1 = (__pyx_v_tag == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2405
  *         self._name = NULL
@@ -57056,10 +57334,11 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *             self._node_type = tree.XML_COMMENT_NODE
  *         elif tag is ProcessingInstruction:
  */
-  __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;
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = (__pyx_v_tag == __pyx_t_3);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2407
@@ -57080,11 +57359,12 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *             self._node_type = tree.XML_PI_NODE
  *         elif tag is Entity:
  */
-  __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;
-  if (__pyx_t_1) {
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_82); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_1 = (__pyx_v_tag == __pyx_t_3);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2409
  *             self._node_type = tree.XML_COMMENT_NODE
@@ -57104,10 +57384,11 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *             self._node_type = tree.XML_ENTITY_REF_NODE
  *         elif tag is Element:
  */
-  __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;
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = (__pyx_v_tag == __pyx_t_3);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2411
@@ -57128,11 +57409,12 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *             self._node_type = tree.XML_ELEMENT_NODE
  *         else:
  */
-  __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;
-  if (__pyx_t_1) {
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_1 = (__pyx_v_tag == __pyx_t_3);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2413
  *             self._node_type = tree.XML_ENTITY_REF_NODE
@@ -57162,13 +57444,13 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *             if self._pystrings[0] is not None:
  *                 self._href = _cstr(self._pystrings[0])
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_pystrings);
     __Pyx_DECREF(__pyx_v_self->_pystrings);
-    __pyx_v_self->_pystrings = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_self->_pystrings = __pyx_t_3;
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2417
  *             self._node_type = tree.XML_ELEMENT_NODE
@@ -57177,10 +57459,11 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *                 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, 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;
+    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __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;
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2418
@@ -57190,10 +57473,10 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *             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, 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;
+      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_v_self->_href = PyBytes_AS_STRING(__pyx_t_3);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -57205,10 +57488,10 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *             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, 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;
+    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_v_self->_name = PyBytes_AS_STRING(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2420
  *                 self._href = _cstr(self._pystrings[0])
@@ -57217,10 +57500,10 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  *                 self._name = NULL
  * 
  */
-    __pyx_t_1 = ((__pyx_v_self->_name[0]) == '*');
+    __pyx_t_1 = (((__pyx_v_self->_name[0]) == '*') != 0);
     if (__pyx_t_1) {
-      __pyx_t_3 = ((__pyx_v_self->_name[1]) == '\x00');
-      __pyx_t_4 = __pyx_t_3;
+      __pyx_t_2 = (((__pyx_v_self->_name[1]) == '\x00') != 0);
+      __pyx_t_4 = __pyx_t_2;
     } else {
       __pyx_t_4 = __pyx_t_1;
     }
@@ -57243,7 +57526,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._ElementTagMatcher._initTagMatch", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -57335,7 +57618,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
  *                   (<tree.xmlElementType>self._node_type != c_node.type or
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2438
@@ -57345,7 +57628,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
  *                   (<tree.xmlElementType>self._node_type != c_node.type or
  *                    not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):
  */
-      __pyx_t_2 = (__pyx_v_self->__pyx_base._node_type != 0);
+      __pyx_t_2 = ((__pyx_v_self->__pyx_base._node_type != 0) != 0);
       if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2439
@@ -57355,7 +57638,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
  *                    not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):
  *             c_node = self._next_element(c_node)
  */
-        __pyx_t_3 = (((xmlElementType)__pyx_v_self->__pyx_base._node_type) != __pyx_v_c_node->type);
+        __pyx_t_3 = ((((xmlElementType)__pyx_v_self->__pyx_base._node_type) != __pyx_v_c_node->type) != 0);
         if (!__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2440
@@ -57365,7 +57648,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
  *             c_node = self._next_element(c_node)
  *         if c_node is NULL:
  */
-          __pyx_t_4 = (!__pyx_f_4lxml_5etree__tagMatches(__pyx_v_c_node, ((const xmlChar *)__pyx_v_self->__pyx_base._href), ((const xmlChar *)__pyx_v_self->__pyx_base._name)));
+          __pyx_t_4 = ((!(__pyx_f_4lxml_5etree__tagMatches(__pyx_v_c_node, ((const xmlChar *)__pyx_v_self->__pyx_base._href), ((const xmlChar *)__pyx_v_self->__pyx_base._name)) != 0)) != 0);
           __pyx_t_5 = __pyx_t_4;
         } else {
           __pyx_t_5 = __pyx_t_3;
@@ -57397,7 +57680,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
  *             self._node = None
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_c_node == NULL);
+  __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2443
@@ -57469,7 +57752,8 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -57483,7 +57767,8 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
  *         # Python ref:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_node) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2452
  *         cdef _Element current_node
@@ -57505,10 +57790,10 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
  *         self._storeNext(current_node)
  *         return current_node
  */
-  __pyx_t_2 = ((PyObject *)__pyx_v_self->_node);
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_v_current_node = ((struct LxmlElement *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_v_self->_node);
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_v_current_node = ((struct LxmlElement *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2455
  *         # Python ref:
@@ -57534,7 +57819,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._ElementIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -57740,9 +58025,9 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll(struct __pyx_obj_4
  * 
  *     cdef bint rejectsAllAttributes(self):
  */
-  __pyx_t_1 = (!__pyx_v_self->_tag_count);
+  __pyx_t_1 = (!(__pyx_v_self->_tag_count != 0));
   if (__pyx_t_1) {
-    __pyx_t_2 = (!__pyx_v_self->_node_types);
+    __pyx_t_2 = (!(__pyx_v_self->_node_types != 0));
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -57776,7 +58061,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAllAttributes(struct _
  * 
  *     cdef bint matchesType(self, int node_type):
  */
-  __pyx_r = (!__pyx_v_self->_tag_count);
+  __pyx_r = (!(__pyx_v_self->_tag_count != 0));
   goto __pyx_L0;
 
   __pyx_r = 0;
@@ -57809,7 +58094,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(struct __pyx_obj_
  */
   __pyx_t_1 = (__pyx_v_node_type == XML_ELEMENT_NODE);
   if (__pyx_t_1) {
-    __pyx_t_2 = __pyx_v_self->_tag_count;
+    __pyx_t_2 = (__pyx_v_self->_tag_count != 0);
   } else {
     __pyx_t_2 = __pyx_t_1;
   }
@@ -58076,8 +58361,8 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
   int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
-  int __pyx_t_5;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_t_6;
   PyObject *__pyx_t_7 = NULL;
   PyObject *__pyx_t_8 = NULL;
@@ -58100,7 +58385,8 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2520
  *     cdef _storeTags(self, tag, set seen):
@@ -58122,8 +58408,9 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  */
   __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_t_3 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2522
@@ -58148,7 +58435,8 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2524
  *             self._node_types |= 1 << tree.XML_PI_NODE
@@ -58170,8 +58458,9 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  */
   __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_t_3 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2526
@@ -58192,7 +58481,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *             if tag in seen:
  *                 return
  */
-  __pyx_t_2 = _isString(__pyx_v_tag);
+  __pyx_t_2 = (_isString(__pyx_v_tag) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2528
@@ -58203,7 +58492,8 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *             seen.add(tag)
  */
     __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_tag, ((PyObject *)__pyx_v_seen), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_t_2 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2529
  *         elif python._isString(tag):
@@ -58230,7 +58520,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add");
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = PySet_Add(__pyx_v_seen, __pyx_v_tag); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySet_Add(__pyx_v_seen, __pyx_v_tag); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2531
  *                 return
@@ -58241,20 +58531,20 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  */
     __Pyx_INCREF(__pyx_v_tag);
     __pyx_t_1 = __pyx_v_tag;
-    __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_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);
-    } else {
+    __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_116), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    if (!((int)__pyx_t_3)) {
+      __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_117), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); 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_5); __pyx_t_5 = 0;
       __pyx_t_6 = ((int)__pyx_t_2);
+    } else {
+      __pyx_t_6 = ((int)__pyx_t_3);
     }
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_2 = __pyx_t_6;
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_t_6 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2532
  *             seen.add(tag)
@@ -58290,13 +58580,13 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
           {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
         __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
-        __Pyx_INCREF(__pyx_t_4);
+        __Pyx_INCREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_t_7);
         #else
-        __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
         __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
         #endif
@@ -58310,8 +58600,8 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
-        index = 0; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
-        __Pyx_GOTREF(__pyx_t_4);
+        index = 0; __pyx_t_5 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
+        __Pyx_GOTREF(__pyx_t_5);
         index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_7);
         if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -58325,8 +58615,8 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
         {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L7_unpacking_done:;
       }
-      __pyx_v_href = __pyx_t_4;
-      __pyx_t_4 = 0;
+      __pyx_v_href = __pyx_t_5;
+      __pyx_t_5 = 0;
       __pyx_v_name = __pyx_t_7;
       __pyx_t_7 = 0;
 
@@ -58338,9 +58628,9 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *                 if href is None:
  */
       __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_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 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) {
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2536
  *                 href, name = _getNsTag(tag)
@@ -58363,8 +58653,9 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *                     href = b''  # no namespace
  *                 elif href == b'*':
  */
-      __pyx_t_2 = (__pyx_v_href == Py_None);
-      if (__pyx_t_2) {
+      __pyx_t_3 = (__pyx_v_href == Py_None);
+      __pyx_t_6 = (__pyx_t_3 != 0);
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2538
  *                     name = None
@@ -58387,9 +58678,9 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *                 self._py_tags.append((href, name))
  */
       __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_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 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) {
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2540
  *                     href = b''  # no namespace
@@ -58424,7 +58715,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
       __Pyx_INCREF(__pyx_v_name);
       PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name);
       __Pyx_GIVEREF(__pyx_v_name);
-      __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_t_4 = __Pyx_PyList_Append(__pyx_v_self->_py_tags, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_4 == -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:;
@@ -58496,7 +58787,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.etree._MultiTagMatcher._storeTags", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -58555,11 +58846,11 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  *             return 0
  */
   __pyx_t_1 = (__pyx_v_doc == __pyx_v_self->_cached_doc);
-  if (__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_dict_size == __pyx_v_self->_cached_size);
+  if ((__pyx_t_1 != 0)) {
+    __pyx_t_2 = ((__pyx_v_dict_size == __pyx_v_self->_cached_size) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -58593,7 +58884,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  *             self._cached_size = dict_size
  */
   __pyx_t_3 = (((PyObject *)__pyx_v_self->_py_tags) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_py_tags)) != 0);
-  __pyx_t_1 = (!__pyx_t_3);
+  __pyx_t_1 = ((!__pyx_t_3) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2557
@@ -58638,7 +58929,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  *             self._cached_tags = <qname*>cpython.mem.PyMem_Malloc(len(self._py_tags) * sizeof(qname))
  *             if not self._cached_tags:
  */
-  __pyx_t_1 = (!(__pyx_v_self->_cached_tags != 0));
+  __pyx_t_1 = ((!(__pyx_v_self->_cached_tags != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2561
@@ -58665,7 +58956,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  *                 self._cached_doc = None
  *                 raise MemoryError()
  */
-    __pyx_t_1 = (!(__pyx_v_self->_cached_tags != 0));
+    __pyx_t_1 = ((!(__pyx_v_self->_cached_tags != 0)) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2563
@@ -58772,11 +59063,10 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
   struct __pyx_t_4lxml_5etree_qname *__pyx_v_c_qname;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
-  long __pyx_t_1;
-  int __pyx_t_2;
+  int __pyx_t_1;
+  struct __pyx_t_4lxml_5etree_qname *__pyx_t_2;
   struct __pyx_t_4lxml_5etree_qname *__pyx_t_3;
   struct __pyx_t_4lxml_5etree_qname *__pyx_t_4;
-  struct __pyx_t_4lxml_5etree_qname *__pyx_t_5;
   __Pyx_RefNannySetupContext("matches", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2573
@@ -58786,7 +59076,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
  *             return True
  *         elif c_node.type == tree.XML_ELEMENT_NODE:
  */
-  __pyx_t_1 = (__pyx_v_self->_node_types & (1 << __pyx_v_c_node->type));
+  __pyx_t_1 = ((__pyx_v_self->_node_types & (1 << __pyx_v_c_node->type)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2574
@@ -58808,8 +59098,8 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
  *             for c_qname in self._cached_tags[:self._tag_count]:
  *                 if _tagMatchesExactly(c_node, c_qname):
  */
-  __pyx_t_2 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
-  if (__pyx_t_2) {
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2576
  *             return True
@@ -58818,10 +59108,10 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
  *                 if _tagMatchesExactly(c_node, c_qname):
  *                     return True
  */
-    __pyx_t_4 = (__pyx_v_self->_cached_tags + __pyx_v_self->_tag_count);
-    for (__pyx_t_5 = __pyx_v_self->_cached_tags; __pyx_t_5 < __pyx_t_4; __pyx_t_5++) {
-      __pyx_t_3 = __pyx_t_5;
-      __pyx_v_c_qname = __pyx_t_3;
+    __pyx_t_3 = (__pyx_v_self->_cached_tags + __pyx_v_self->_tag_count);
+    for (__pyx_t_4 = __pyx_v_self->_cached_tags; __pyx_t_4 < __pyx_t_3; __pyx_t_4++) {
+      __pyx_t_2 = __pyx_t_4;
+      __pyx_v_c_qname = __pyx_t_2;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2577
  *         elif c_node.type == tree.XML_ELEMENT_NODE:
@@ -58830,8 +59120,8 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
  *                     return True
  *         return False
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree__tagMatchesExactly(__pyx_v_c_node, __pyx_v_c_qname);
-      if (__pyx_t_2) {
+      __pyx_t_1 = (__pyx_f_4lxml_5etree__tagMatchesExactly(__pyx_v_c_node, __pyx_v_c_qname) != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2578
  *             for c_qname in self._cached_tags[:self._tag_count]:
@@ -58903,7 +59193,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribut
  *                 return True
  *         return False
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__tagMatchesExactly(((xmlNode *)__pyx_v_c_attr), __pyx_v_c_qname);
+    __pyx_t_4 = (__pyx_f_4lxml_5etree__tagMatchesExactly(((xmlNode *)__pyx_v_c_attr), __pyx_v_c_qname) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2588
@@ -59084,9 +59374,9 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
  *         # store Python ref to next node to make sure it's kept alive
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_3) {
-      __pyx_t_4 = (!__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node));
+      __pyx_t_4 = ((!(__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node) != 0)) != 0);
       __pyx_t_5 = __pyx_t_4;
     } else {
       __pyx_t_5 = __pyx_t_3;
@@ -59110,7 +59400,7 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
  *         return 0
  * 
  */
-  if ((__pyx_v_c_node != NULL)) {
+  if (((__pyx_v_c_node != NULL) != 0)) {
     __pyx_t_6 = ((PyObject *)__pyx_v_node->_doc);
     __Pyx_INCREF(__pyx_t_6);
     __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -59178,6 +59468,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator_2__next__(struct
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
   int __pyx_t_3;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -59203,7 +59494,8 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator_2__next__(struct
  *         self._storeNext(current_node)
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_current_node) == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2616
  *         cdef _Element current_node = self._node
@@ -59225,7 +59517,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator_2__next__(struct
  *         return current_node
  * 
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(__pyx_v_self, __pyx_v_current_node); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(__pyx_v_self, __pyx_v_current_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2618
  *             raise StopIteration
@@ -59442,9 +59734,9 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
  *         # store Python ref to next node to make sure it's kept alive
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_3) {
-      __pyx_t_4 = (!__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->__pyx_base._matcher, __pyx_v_c_node));
+      __pyx_t_4 = ((!(__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->__pyx_base._matcher, __pyx_v_c_node) != 0)) != 0);
       __pyx_t_5 = __pyx_t_4;
     } else {
       __pyx_t_5 = __pyx_t_3;
@@ -59468,7 +59760,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
  * 
  * cdef class SiblingsIterator(_ElementMatchIterator):
  */
-  if ((__pyx_v_c_node != NULL)) {
+  if (((__pyx_v_c_node != NULL) != 0)) {
     __pyx_t_6 = ((PyObject *)__pyx_v_node->_doc);
     __Pyx_INCREF(__pyx_t_6);
     __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -59974,9 +60266,9 @@ static int __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(struct __
  *             next(self)
  */
   __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = (!__pyx_t_4);
+  __pyx_t_5 = ((!__pyx_t_4) != 0);
   if (!__pyx_t_5) {
-    __pyx_t_4 = (!__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_node->_c_node));
+    __pyx_t_4 = ((!(__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_node->_c_node) != 0)) != 0);
     __pyx_t_6 = __pyx_t_4;
   } else {
     __pyx_t_6 = __pyx_t_5;
@@ -60078,9 +60370,10 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  xmlNode *__pyx_t_3;
-  int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_3;
+  xmlNode *__pyx_t_4;
+  int __pyx_t_5;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -60106,7 +60399,8 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  *         c_node = current_node._c_node
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_current_node) == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2707
  *         cdef _Element current_node = self._next_node
@@ -60128,8 +60422,8 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  *         self._matcher.cacheTags(current_node._doc)
  *         if not self._matcher._tag_count:
  */
-  __pyx_t_3 = __pyx_v_current_node->_c_node;
-  __pyx_v_c_node = __pyx_t_3;
+  __pyx_t_4 = __pyx_v_current_node->_c_node;
+  __pyx_v_c_node = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2709
  *             raise StopIteration
@@ -60140,7 +60434,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_current_node->_doc);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_4 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2709; __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":2710
@@ -60150,8 +60444,8 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  *             # no tag name was found in the dict => not in document either
  *             # try to match by node type
  */
-  __pyx_t_2 = (!__pyx_v_self->_matcher->_tag_count);
-  if (__pyx_t_2) {
+  __pyx_t_3 = ((!(__pyx_v_self->_matcher->_tag_count != 0)) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2713
  *             # no tag name was found in the dict => not in document either
@@ -60183,8 +60477,8 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  *             self._next_node = None
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_c_node == NULL);
-  if (__pyx_t_2) {
+  __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2717
  *             c_node = self._nextNodeMatchTag(c_node)
@@ -60211,14 +60505,14 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  */
     __pyx_t_1 = ((PyObject *)__pyx_v_current_node->_doc);
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __Pyx_GIVEREF(__pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_6);
     __Pyx_GOTREF(__pyx_v_self->_next_node);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_next_node));
-    __pyx_v_self->_next_node = ((struct LxmlElement *)__pyx_t_5);
-    __pyx_t_5 = 0;
+    __pyx_v_self->_next_node = ((struct LxmlElement *)__pyx_t_6);
+    __pyx_t_6 = 0;
   }
   __pyx_L5:;
 
@@ -60238,7 +60532,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree.ElementDepthFirstIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -60262,7 +60556,6 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  long __pyx_t_3;
   __Pyx_RefNannySetupContext("_nextNodeAnyTag", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2724
@@ -60282,7 +60575,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
  *             return NULL
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
  */
-  __pyx_t_2 = (!__pyx_v_node_types);
+  __pyx_t_2 = ((!(__pyx_v_node_types != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2726
@@ -60314,8 +60607,8 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
  *             return c_node
  *         tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  */
-  __pyx_t_3 = (__pyx_v_node_types & (1 << __pyx_v_c_node->type));
-  if (__pyx_t_3) {
+  __pyx_t_2 = ((__pyx_v_node_types & (1 << __pyx_v_c_node->type)) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2729
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
@@ -60385,7 +60678,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchT
  *             return c_node
  *         tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node);
+  __pyx_t_1 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2737
@@ -60692,11 +60985,12 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  PyObject *(*__pyx_t_6)(PyObject *);
+  PyObject *__pyx_t_6 = NULL;
+  PyObject *(*__pyx_t_7)(PyObject *);
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -60721,7 +61015,8 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
  */
   while (1) {
     __pyx_t_1 = (__pyx_v_result == Py_None);
-    if (!__pyx_t_1) break;
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2769
  *         result = None
@@ -60730,10 +61025,10 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
  *             if event == u"start":
  *                 result = element.text
  */
-    __pyx_t_2 = PyObject_Call(__pyx_v_self->_nextEvent, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
-      PyObject* sequence = __pyx_t_2;
+    __pyx_t_3 = PyObject_Call(__pyx_v_self->_nextEvent, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
+      PyObject* sequence = __pyx_t_3;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -60746,50 +61041,50 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
-        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
       } else {
-        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
+        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
       }
-      __Pyx_INCREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_t_4);
+      __Pyx_INCREF(__pyx_t_5);
       #else
-      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       #endif
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
-      index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L5_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_3);
-      index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
+      index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_4);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_6 = NULL;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_5);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L6_unpacking_done;
       __pyx_L5_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_7 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XDECREF(__pyx_v_event);
-    __pyx_v_event = __pyx_t_3;
-    __pyx_t_3 = 0;
-    __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-    __pyx_v_element = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_v_event = __pyx_t_4;
     __pyx_t_4 = 0;
+    __Pyx_XDECREF(((PyObject *)__pyx_v_element));
+    __pyx_v_element = ((struct LxmlElement *)__pyx_t_5);
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2770
  *         while result is None:
@@ -60798,10 +61093,10 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
  *                 result = element.text
  *             elif element is not self._start_element:
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_n_u__start), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    if (__pyx_t_1) {
+    __pyx_t_3 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_n_u__start), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2771
  *             event, element = self._nextEvent() # raises StopIteration
@@ -60810,11 +61105,11 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
  *             elif element is not self._start_element:
  *                 result = element.tail
  */
-      __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_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_v_result);
-      __pyx_v_result = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_result = __pyx_t_3;
+      __pyx_t_3 = 0;
       goto __pyx_L7;
     }
 
@@ -60825,7 +61120,8 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
  *                 result = element.tail
  *         return result
  */
-    __pyx_t_1 = (__pyx_v_element != __pyx_v_self->_start_element);
+    __pyx_t_2 = (__pyx_v_element != __pyx_v_self->_start_element);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2773
@@ -60835,11 +61131,11 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
  *         return result
  * 
  */
-      __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_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_v_result);
-      __pyx_v_result = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_result = __pyx_t_3;
+      __pyx_t_3 = 0;
       goto __pyx_L7;
     }
     __pyx_L7:;
@@ -60860,10 +61156,10 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree.ElementTextIterator.__next__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -61233,8 +61529,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  xmlDoc *__pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  xmlDoc *__pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -61249,7 +61546,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  *     else:
  */
   __pyx_t_1 = (__pyx_v_text == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2821
  *     cdef xmlDoc*   c_doc
@@ -61272,11 +61570,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_text = __pyx_t_3;
+    __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
@@ -61287,8 +61585,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createComment(c_doc, _xcstr(text))
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_doc = __pyx_t_3;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_doc = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2825
  *         text = _utf8(text)
@@ -61297,10 +61595,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  *     c_node = _createComment(c_doc, _xcstr(text))
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)
  */
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2826
  *     c_doc = _newXMLDoc()
@@ -61328,16 +61626,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  * def ProcessingInstruction(target, text=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree.Comment", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -61428,7 +61726,8 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  xmlDoc *__pyx_t_3;
+  int __pyx_t_3;
+  xmlDoc *__pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -61457,7 +61756,8 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
  *     else:
  */
   __pyx_t_2 = (__pyx_v_text == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2841
  *     target = _utf8(target)
@@ -61495,8 +61795,8 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_doc = __pyx_t_3;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_doc = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2845
  *         text = _utf8(text)
@@ -61715,7 +62015,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
  *         if not _characterReferenceIsValid(c_name + 1):
  *             raise ValueError, u"Invalid character reference: '%s'" % name
  */
-  __pyx_t_2 = ((__pyx_v_c_name[0]) == '#');
+  __pyx_t_2 = (((__pyx_v_c_name[0]) == '#') != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2881
@@ -61725,7 +62025,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
  *             raise ValueError, u"Invalid character reference: '%s'" % name
  *     elif not _xmlNameIsValid(c_name):
  */
-    __pyx_t_2 = (!__pyx_f_4lxml_5etree__characterReferenceIsValid((__pyx_v_c_name + 1)));
+    __pyx_t_2 = ((!(__pyx_f_4lxml_5etree__characterReferenceIsValid((__pyx_v_c_name + 1)) != 0)) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2882
@@ -61753,7 +62053,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
  *         raise ValueError, u"Invalid entity reference: '%s'" % name
  *     c_doc = _newXMLDoc()
  */
-  __pyx_t_2 = (!__pyx_f_4lxml_5etree__xmlNameIsValid(__pyx_v_c_name));
+  __pyx_t_2 = ((!(__pyx_f_4lxml_5etree__xmlNameIsValid(__pyx_v_c_name) != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2884
@@ -62075,15 +62375,16 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
-  PyObject *__pyx_t_7 = NULL;
+  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_7;
   PyObject *__pyx_t_8 = NULL;
   PyObject *__pyx_t_9 = NULL;
-  xmlDoc *__pyx_t_10;
+  PyObject *__pyx_t_10 = NULL;
+  xmlDoc *__pyx_t_11;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -62097,7 +62398,8 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *     elif file is not None:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_element) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2913
  * 
@@ -62106,10 +62408,10 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *     elif file is not None:
  *         try:
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_element->_doc);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_element->_doc);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
 
@@ -62120,7 +62422,8 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *         try:
  *             doc = _parseDocument(file, parser, None)
  */
-  __pyx_t_1 = (__pyx_v_file != Py_None);
+  __pyx_t_2 = (__pyx_v_file != Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2915
@@ -62131,10 +62434,10 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *         except _TargetParserResult, result_container:
  */
     {
-      __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
-      __Pyx_XGOTREF(__pyx_t_3);
+      __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
       __Pyx_XGOTREF(__pyx_t_4);
       __Pyx_XGOTREF(__pyx_t_5);
+      __Pyx_XGOTREF(__pyx_t_6);
       /*try:*/ {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2916
@@ -62144,17 +62447,17 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *         except _TargetParserResult, result_container:
  *             return result_container.result
  */
-        __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_file, __pyx_v_parser, Py_None)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2916; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-        __pyx_t_2 = 0;
+        __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_file, __pyx_v_parser, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2916; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+        __pyx_t_3 = 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;
+      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L11_try_end;
       __pyx_L4_error:;
-      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2917
  *         try:
@@ -62163,18 +62466,18 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *             return result_container.result
  *     else:
  */
-      __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;
-      if (__pyx_t_6) {
+      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_3);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      if (__pyx_t_7) {
         __Pyx_AddTraceback("lxml.etree.ElementTree", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_GOTREF(__pyx_t_7);
+        if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+        __Pyx_GOTREF(__pyx_t_3);
         __Pyx_GOTREF(__pyx_t_8);
-        __Pyx_INCREF(__pyx_t_7);
-        __pyx_v_result_container = __pyx_t_7;
+        __Pyx_GOTREF(__pyx_t_9);
+        __Pyx_INCREF(__pyx_t_8);
+        __pyx_v_result_container = __pyx_t_8;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2918
  *             doc = _parseDocument(file, parser, None)
@@ -62184,36 +62487,36 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *         c_doc = _newXMLDoc()
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_9)) {__pyx_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;
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+        __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 = 2918; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+        __Pyx_GOTREF(__pyx_t_10);
+        __pyx_r = __pyx_t_10;
+        __pyx_t_10 = 0;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         goto __pyx_L7_except_return;
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         goto __pyx_L5_exception_handled;
       }
       __pyx_L6_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);
+      __Pyx_XGIVEREF(__pyx_t_6);
+      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
       goto __pyx_L1_error;
       __pyx_L7_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);
+      __Pyx_XGIVEREF(__pyx_t_6);
+      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
       goto __pyx_L0;
       __pyx_L5_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_XGIVEREF(__pyx_t_6);
+      __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
       __pyx_L11_try_end:;
     }
     goto __pyx_L3;
@@ -62227,8 +62530,8 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *         doc = _documentFactory(c_doc, parser)
  * 
  */
-    __pyx_t_10 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_10 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_doc = __pyx_t_10;
+    __pyx_t_11 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_doc = __pyx_t_11;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2921
  *     else:
@@ -62237,10 +62540,10 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  * 
  *     return _elementTreeFactory(doc, element)
  */
-    __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_8);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_8);
-    __pyx_t_8 = 0;
+    __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_9);
+    __pyx_t_9 = 0;
   }
   __pyx_L3:;
 
@@ -62252,19 +62555,19 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  * def HTML(text, _BaseParser parser=None, *, base_url=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, __pyx_v_element)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_8);
-  __pyx_r = __pyx_t_8;
-  __pyx_t_8 = 0;
+  __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, __pyx_v_element)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_r = __pyx_t_9;
+  __pyx_t_9 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_8);
   __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_10);
   __Pyx_AddTraceback("lxml.etree.ElementTree", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -62366,8 +62669,8 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
@@ -62389,7 +62692,8 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *         if not isinstance(parser, HTMLParser):
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2941
  *     cdef _Document doc
@@ -62398,11 +62702,11 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *         if not isinstance(parser, HTMLParser):
  *             parser = __DEFAULT_HTML_PARSER
  */
-    __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[0]; __pyx_lineno = 2941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2942
  *     if parser is None:
@@ -62411,9 +62715,9 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *             parser = __DEFAULT_HTML_PARSER
  *     try:
  */
-    __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_parser), ((PyObject*)__pyx_ptype_4lxml_5etree_HTMLParser)); 
-    __pyx_t_3 = (!__pyx_t_1);
-    if (__pyx_t_3) {
+    __pyx_t_2 = __Pyx_TypeCheck(((PyObject *)__pyx_v_parser), ((PyObject*)__pyx_ptype_4lxml_5etree_HTMLParser)); 
+    __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2943
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
@@ -62453,10 +62757,10 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  */
-      __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2945; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-      __pyx_t_2 = 0;
+      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2945; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+      __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2946
  *     try:
@@ -62466,10 +62770,10 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *         return result_container.result
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_2 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_r = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_r = __pyx_t_3;
+      __pyx_t_3 = 0;
       goto __pyx_L9_try_return;
     }
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -62483,7 +62787,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
     __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     goto __pyx_L0;
     __pyx_L5_error:;
-    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2947
  *         doc = _parseMemoryDocument(text, base_url, parser)
@@ -62492,14 +62796,14 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *         return result_container.result
  * 
  */
-    __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;
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_7) {
       __Pyx_AddTraceback("lxml.etree.HTML", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
-      __Pyx_GOTREF(__pyx_t_2);
+      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_8);
@@ -62517,11 +62821,11 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
       __Pyx_GOTREF(__pyx_t_10);
       __pyx_r = __pyx_t_10;
       __pyx_t_10 = 0;
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L8_except_return;
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L6_exception_handled;
@@ -62549,7 +62853,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_8);
   __Pyx_XDECREF(__pyx_t_9);
   __Pyx_XDECREF(__pyx_t_10);
@@ -62655,8 +62959,8 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
@@ -62678,7 +62982,8 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *         if not isinstance(parser, XMLParser):
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2969
  *     cdef _Document doc
@@ -62687,11 +62992,11 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *         if not isinstance(parser, XMLParser):
  *             parser = __DEFAULT_XML_PARSER
  */
-    __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[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2970
  *     if parser is None:
@@ -62700,9 +63005,9 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *             parser = __DEFAULT_XML_PARSER
  *     try:
  */
-    __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_parser), ((PyObject*)__pyx_ptype_4lxml_5etree_XMLParser)); 
-    __pyx_t_3 = (!__pyx_t_1);
-    if (__pyx_t_3) {
+    __pyx_t_2 = __Pyx_TypeCheck(((PyObject *)__pyx_v_parser), ((PyObject*)__pyx_ptype_4lxml_5etree_XMLParser)); 
+    __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2971
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
@@ -62742,10 +63047,10 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  */
-      __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2973; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-      __pyx_t_2 = 0;
+      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2973; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+      __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2974
  *     try:
@@ -62755,10 +63060,10 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *         return result_container.result
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_2 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2974; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_r = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2974; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_r = __pyx_t_3;
+      __pyx_t_3 = 0;
       goto __pyx_L9_try_return;
     }
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -62772,7 +63077,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
     __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     goto __pyx_L0;
     __pyx_L5_error:;
-    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2975
  *         doc = _parseMemoryDocument(text, base_url, parser)
@@ -62781,14 +63086,14 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *         return result_container.result
  * 
  */
-    __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;
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2975; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_7) {
       __Pyx_AddTraceback("lxml.etree.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2975; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
-      __Pyx_GOTREF(__pyx_t_2);
+      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2975; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_8);
@@ -62806,11 +63111,11 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
       __Pyx_GOTREF(__pyx_t_10);
       __pyx_r = __pyx_t_10;
       __pyx_t_10 = 0;
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L8_except_return;
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L6_exception_handled;
@@ -62838,7 +63143,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_8);
   __Pyx_XDECREF(__pyx_t_9);
   __Pyx_XDECREF(__pyx_t_10);
@@ -63170,11 +63475,12 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  Py_ssize_t __pyx_t_3;
-  PyObject *(*__pyx_t_4)(PyObject *);
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  Py_ssize_t __pyx_t_4;
+  PyObject *(*__pyx_t_5)(PyObject *);
   PyObject *__pyx_t_6 = NULL;
+  PyObject *__pyx_t_7 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -63189,7 +63495,8 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  *     feed = parser.feed
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3009
  *     cdef _Document doc
@@ -63198,11 +63505,11 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  *     feed = parser.feed
  *     for data in strings:
  */
-    __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[0]; __pyx_lineno = 3009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -63214,10 +63521,10 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  *     for data in strings:
  *         feed(data)
  */
-  __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;
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__feed); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_feed = __pyx_t_3;
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3011
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
@@ -63227,42 +63534,42 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  *     return parser.close()
  */
   if (PyList_CheckExact(__pyx_v_strings) || PyTuple_CheckExact(__pyx_v_strings)) {
-    __pyx_t_2 = __pyx_v_strings; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
-    __pyx_t_4 = NULL;
+    __pyx_t_3 = __pyx_v_strings; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
+    __pyx_t_5 = NULL;
   } else {
-    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
+    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;
   }
   for (;;) {
-    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_2)) {
-      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
+    if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {
+      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_2)) {
-      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
+    } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {
+      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_5 = __pyx_t_4(__pyx_t_2);
-      if (unlikely(!__pyx_t_5)) {
+      __pyx_t_6 = __pyx_t_5(__pyx_t_3);
+      if (unlikely(!__pyx_t_6)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
           else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
-      __Pyx_GOTREF(__pyx_t_5);
+      __Pyx_GOTREF(__pyx_t_6);
     }
     __Pyx_XDECREF(__pyx_v_data);
-    __pyx_v_data = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_v_data = __pyx_t_6;
+    __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3012
  *     feed = parser.feed
@@ -63271,17 +63578,17 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  *     return parser.close()
  * 
  */
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __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[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
     __Pyx_INCREF(__pyx_v_data);
-    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_data);
+    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
     __Pyx_GIVEREF(__pyx_v_data);
-    __pyx_t_6 = PyObject_Call(__pyx_v_feed, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __pyx_t_7 = PyObject_Call(__pyx_v_feed, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
+    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   }
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3013
  *     for data in strings:
@@ -63291,21 +63598,21 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  * def iselement(element):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_6;
-  __pyx_t_6 = 0;
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_r = __pyx_t_7;
+  __pyx_t_7 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.etree.fromstringlist", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -63507,7 +63814,7 @@ static PyObject *__pyx_pf_4lxml_5etree_28dump(CYTHON_UNUSED PyObject *__pyx_self
  *     if not pretty_print:
  *         xml += '\n'
  */
-  if (IS_PYTHON3) {
+  if ((IS_PYTHON3 != 0)) {
     __Pyx_INCREF(((PyObject *)__pyx_n_u__unicode));
     __pyx_t_4 = ((PyObject *)__pyx_n_u__unicode);
   } else {
@@ -63531,7 +63838,7 @@ static PyObject *__pyx_pf_4lxml_5etree_28dump(CYTHON_UNUSED PyObject *__pyx_self
  *         xml += '\n'
  *     sys.stdout.write(xml)
  */
-  __pyx_t_5 = (!__pyx_v_pretty_print);
+  __pyx_t_5 = ((!(__pyx_v_pretty_print != 0)) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3031
@@ -63783,7 +64090,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         if xml_declaration:
  */
     __pyx_t_2 = (__pyx_v_encoding != Py_None);
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_t_2 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3085
  *     if method == 'c14n':
@@ -63808,8 +64116,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *             raise ValueError("Cannot enable XML declaration in C14N")
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_2) {
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3087
  *             raise ValueError("Cannot specify encoding with C14N")
@@ -63851,8 +64159,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         raise ValueError("Can only discard comments in C14N serialisation")
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
  */
-  __pyx_t_2 = (!__pyx_v_with_comments);
-  if (__pyx_t_2) {
+  __pyx_t_3 = ((!(__pyx_v_with_comments != 0)) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3090
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
@@ -63877,10 +64185,10 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         if xml_declaration:
  *             raise ValueError, \
  */
-  __pyx_t_2 = (__pyx_v_encoding == __pyx_v_4lxml_5etree__unicode);
-  if (!__pyx_t_2) {
-    __pyx_t_3 = (__pyx_v_encoding != Py_None);
-    if (__pyx_t_3) {
+  __pyx_t_3 = (__pyx_v_encoding == __pyx_v_4lxml_5etree__unicode);
+  if (!__pyx_t_3) {
+    __pyx_t_2 = (__pyx_v_encoding != Py_None);
+    if (__pyx_t_2) {
       __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;}
@@ -63892,13 +64200,13 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_6 = __pyx_t_5;
     } else {
-      __pyx_t_6 = __pyx_t_3;
+      __pyx_t_6 = __pyx_t_2;
     }
-    __pyx_t_3 = __pyx_t_6;
+    __pyx_t_2 = __pyx_t_6;
   } else {
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_2 = __pyx_t_3;
   }
-  if (__pyx_t_3) {
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3092
  *         raise ValueError("Can only discard comments in C14N serialisation")
@@ -63907,8 +64215,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *             raise ValueError, \
  *                 u"Serialisation to unicode must not request an XML declaration"
  */
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_3) {
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3093
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
@@ -63952,7 +64260,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         # by default, write an XML declaration only for non-standard encodings
  *         write_declaration = encoding is not None and encoding.upper() not in \
  */
-  __pyx_t_3 = (__pyx_v_xml_declaration == Py_None);
+  __pyx_t_2 = (__pyx_v_xml_declaration == Py_None);
+  __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3099
@@ -64027,7 +64336,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *     if standalone is None:
  */
   __pyx_t_2 = (__pyx_v_encoding == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3104
  *         write_declaration = xml_declaration
@@ -64050,7 +64360,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         is_standalone = -1
  *     elif standalone:
  */
-  __pyx_t_2 = (__pyx_v_standalone == Py_None);
+  __pyx_t_3 = (__pyx_v_standalone == Py_None);
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3106
@@ -64123,7 +64434,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *                          write_declaration, 0, pretty_print, with_tail,
  */
   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_element_or_tree, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3115
  * 
@@ -64156,7 +64468,8 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  *                          encoding, doctype, method, write_declaration, 1,
  */
-  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_element_or_tree, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
+  __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_element_or_tree, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3119
@@ -64476,9 +64789,10 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -64492,7 +64806,8 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  *                           0, 0, pretty_print, with_tail, -1)
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element_or_tree, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3161
  *     """
@@ -64502,8 +64817,8 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  *     elif isinstance(element_or_tree, _ElementTree):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_v_4lxml_5etree__unicode;
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = __pyx_v_4lxml_5etree__unicode;
+    __Pyx_INCREF(__pyx_t_3);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3162
  *     if isinstance(element_or_tree, _Element):
@@ -64512,11 +64827,11 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  *     elif isinstance(element_or_tree, _ElementTree):
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_t_2, __pyx_v_doctype, __pyx_v_method, 0, 0, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_t_3, __pyx_v_doctype, __pyx_v_method, 0, 0, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_r = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -64528,7 +64843,8 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  *                          _unicode, doctype, method, 0, 1, pretty_print,
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element_or_tree, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_element_or_tree, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3164
@@ -64539,8 +64855,8 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  *                          with_tail, -1)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_element_or_tree)->_context_node);
-    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_element_or_tree)->_context_node);
+    __Pyx_INCREF(__pyx_t_4);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3165
  *     elif isinstance(element_or_tree, _ElementTree):
@@ -64549,8 +64865,8 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  *                          with_tail, -1)
  *     else:
  */
-    __pyx_t_2 = __pyx_v_4lxml_5etree__unicode;
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = __pyx_v_4lxml_5etree__unicode;
+    __Pyx_INCREF(__pyx_t_3);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3166
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
@@ -64559,12 +64875,12 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  *     else:
  *         raise TypeError, u"Type '%s' cannot be serialized." % \
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_3), __pyx_t_2, __pyx_v_doctype, __pyx_v_method, 0, 1, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_5 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_4), __pyx_t_3, __pyx_v_doctype, __pyx_v_method, 0, 1, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_r = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __pyx_r = __pyx_t_5;
+    __pyx_t_5 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -64577,10 +64893,10 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
  * 
  * def parse(source, _BaseParser parser=None, *, base_url=None):
  */
-    __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;
+    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_131), ((PyObject *)Py_TYPE(__pyx_v_element_or_tree))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), 0, 0);
+    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -64588,9 +64904,9 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree.tounicode", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -64907,7 +65223,7 @@ static int __pyx_f_4lxml_5etree_14_ReadOnlyProxy__assertNode(struct __pyx_obj_4l
  * 
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_node != NULL))) {
+  if (unlikely(!((__pyx_v_self->_c_node != NULL) != 0))) {
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_132));
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -65057,7 +65373,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_3tag___get__(struct __py
  *                 return _namespacedName(self._c_node)
  *             elif self._c_node.type == tree.XML_PI_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":34
@@ -65083,7 +65399,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_3tag___get__(struct __py
  *                 return ProcessingInstruction
  *             elif self._c_node.type == tree.XML_COMMENT_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_PI_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_PI_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":36
@@ -65109,7 +65425,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_3tag___get__(struct __py
  *                 return Comment
  *             elif self._c_node.type == tree.XML_ENTITY_REF_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_COMMENT_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_COMMENT_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":38
@@ -65135,7 +65451,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_3tag___get__(struct __py
  *                 return Entity
  *             else:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_ENTITY_REF_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_ENTITY_REF_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":40
@@ -65228,7 +65544,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4text___get__(struct __p
  *                 return _collectText(self._c_node.children)
  *             elif self._c_node.type in (tree.XML_PI_NODE,
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":51
@@ -65270,7 +65586,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4text___get__(struct __p
   } else {
     __pyx_t_6 = __pyx_t_2;
   }
-  __pyx_t_2 = __pyx_t_6;
+  __pyx_t_2 = (__pyx_t_6 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":54
@@ -65280,7 +65596,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4text___get__(struct __p
  *                     return ''
  *                 else:
  */
-    __pyx_t_2 = (__pyx_v_self->_c_node->content == NULL);
+    __pyx_t_2 = ((__pyx_v_self->_c_node->content == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":55
@@ -65323,7 +65639,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4text___get__(struct __p
  *                 return u'&%s;' % funicode(self._c_node.name)
  *             else:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_ENTITY_REF_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_ENTITY_REF_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":59
@@ -65490,7 +65806,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_10sourceline___get__(str
  *                 return line
  *             else:
  */
-  __pyx_t_2 = (__pyx_v_line > 0);
+  __pyx_t_2 = ((__pyx_v_line > 0) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":80
@@ -65585,7 +65901,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
  *             return u"<Element %s at 0x%x>" % (self.tag, id(self))
  *         elif self._c_node.type == tree.XML_COMMENT_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":87
@@ -65630,7 +65946,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
  *             return u"<!--%s-->" % self.text
  *         elif self._c_node.type == tree.XML_ENTITY_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_COMMENT_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_COMMENT_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":89
@@ -65659,7 +65975,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
  *             return u"&%s;" % funicode(self._c_node.name)
  *         elif self._c_node.type == tree.XML_PI_NODE:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_ENTITY_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_ENTITY_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":91
@@ -65688,7 +66004,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
  *             text = self.text
  *             if text:
  */
-  __pyx_t_2 = (__pyx_v_self->_c_node->type == XML_PI_NODE);
+  __pyx_t_2 = ((__pyx_v_self->_c_node->type == XML_PI_NODE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":93
@@ -65870,7 +66186,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4__getitem__(struct __py
  *             # slicing
  *             if _isFullSlice(<slice>x):
  */
-  __pyx_t_2 = PySlice_Check(__pyx_v_x);
+  __pyx_t_2 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":113
@@ -65880,7 +66196,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4__getitem__(struct __py
  *                 return _collectChildren(self)
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x));
+    __pyx_t_2 = (__pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x)) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":114
@@ -65917,7 +66233,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4__getitem__(struct __py
  *                 return []
  *             if step > 0:
  */
-    __pyx_t_2 = (__pyx_v_c_node == NULL);
+    __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":117
@@ -65944,7 +66260,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4__getitem__(struct __py
  *                 next_element = _nextElement
  *             else:
  */
-    __pyx_t_2 = (__pyx_v_step > 0);
+    __pyx_t_2 = ((__pyx_v_step > 0) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":119
@@ -66008,9 +66324,9 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4__getitem__(struct __py
  *                 result.append(_elementFactory(self._doc, c_node))
  */
     while (1) {
-      __pyx_t_2 = (__pyx_v_c_node != NULL);
+      __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
       if (__pyx_t_2) {
-        __pyx_t_4 = (__pyx_v_c < __pyx_v_slicelength);
+        __pyx_t_4 = ((__pyx_v_c < __pyx_v_slicelength) != 0);
         __pyx_t_5 = __pyx_t_4;
       } else {
         __pyx_t_5 = __pyx_t_2;
@@ -66110,7 +66426,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4__getitem__(struct __py
  *                 raise IndexError, u"list index out of range"
  *             return _newReadOnlyProxy(self._source_proxy, c_node)
  */
-    __pyx_t_5 = (__pyx_v_c_node == NULL);
+    __pyx_t_5 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":136
@@ -66231,7 +66547,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_14_ReadOnlyProxy_6__len__(struct __pyx_o
  *                 c = c + 1
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":148
@@ -66241,7 +66557,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_14_ReadOnlyProxy_6__len__(struct __pyx_o
  *                 c = c + 1
  *             c_node = c_node.next
  */
-    __pyx_t_3 = _isElement(__pyx_v_c_node);
+    __pyx_t_3 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":149
@@ -66429,8 +66745,8 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__(struct __pyx_obj
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
   xmlDoc *__pyx_t_4;
-  xmlNode *__pyx_t_5;
-  int __pyx_t_6;
+  int __pyx_t_5;
+  xmlNode *__pyx_t_6;
   int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -66461,7 +66777,7 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__(struct __pyx_obj
  *             return self
  *         c_doc = _copyDocRoot(self._c_node.doc, self._c_node) # recursive
  */
-  __pyx_t_3 = (__pyx_v_self->_c_node == NULL);
+  __pyx_t_3 = ((__pyx_v_self->_c_node == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":169
@@ -66521,7 +66837,8 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__(struct __pyx_obj
  *         # Comment/PI
  */
   __pyx_t_3 = (__pyx_v_root != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_5 = (__pyx_t_3 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":174
  *         root = new_doc.getroot()
@@ -66545,8 +66862,8 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__(struct __pyx_obj
  *         while c_node is not NULL and c_node.type != self._c_node.type:
  *             c_node = c_node.next
  */
-  __pyx_t_5 = __pyx_v_c_doc->children;
-  __pyx_v_c_node = __pyx_t_5;
+  __pyx_t_6 = __pyx_v_c_doc->children;
+  __pyx_v_c_node = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":177
  *         # Comment/PI
@@ -66556,12 +66873,12 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__(struct __pyx_obj
  *         if c_node is NULL:
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
-    if (__pyx_t_3) {
-      __pyx_t_6 = (__pyx_v_c_node->type != __pyx_v_self->_c_node->type);
-      __pyx_t_7 = __pyx_t_6;
-    } else {
+    __pyx_t_5 = ((__pyx_v_c_node != NULL) != 0);
+    if (__pyx_t_5) {
+      __pyx_t_3 = ((__pyx_v_c_node->type != __pyx_v_self->_c_node->type) != 0);
       __pyx_t_7 = __pyx_t_3;
+    } else {
+      __pyx_t_7 = __pyx_t_5;
     }
     if (!__pyx_t_7) break;
 
@@ -66572,8 +66889,8 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__(struct __pyx_obj
  *         if c_node is NULL:
  *             return None
  */
-    __pyx_t_5 = __pyx_v_c_node->next;
-    __pyx_v_c_node = __pyx_t_5;
+    __pyx_t_6 = __pyx_v_c_node->next;
+    __pyx_v_c_node = __pyx_t_6;
   }
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":179
@@ -66583,7 +66900,7 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__(struct __pyx_obj
  *             return None
  *         return _elementFactory(new_doc, c_node)
  */
-  __pyx_t_7 = (__pyx_v_c_node == NULL);
+  __pyx_t_7 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":180
@@ -67061,7 +67378,7 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy_getchildren(struct __pyx_
  *                 result.append(_newReadOnlyProxy(self._source_proxy, c_node))
  */
   while (1) {
-    __pyx_t_5 = (__pyx_v_c_node != NULL);
+    __pyx_t_5 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_5) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":208
@@ -67071,7 +67388,7 @@ static PyObject *__pyx_f_4lxml_5etree_14_ReadOnlyProxy_getchildren(struct __pyx_
  *                 result.append(_newReadOnlyProxy(self._source_proxy, c_node))
  *             c_node = c_node.next
  */
-    __pyx_t_5 = _isElement(__pyx_v_c_node);
+    __pyx_t_5 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":209
@@ -67238,9 +67555,9 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_20getparent(struct __pyx
  *             return None
  *         else:
  */
-  __pyx_t_3 = (__pyx_v_c_parent == NULL);
+  __pyx_t_3 = ((__pyx_v_c_parent == NULL) != 0);
   if (!__pyx_t_3) {
-    __pyx_t_4 = (!_isElement(__pyx_v_c_parent));
+    __pyx_t_4 = ((!(_isElement(__pyx_v_c_parent) != 0)) != 0);
     __pyx_t_5 = __pyx_t_4;
   } else {
     __pyx_t_5 = __pyx_t_3;
@@ -67352,7 +67669,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_22getnext(struct __pyx_o
  *             return _newReadOnlyProxy(self._source_proxy, c_node)
  *         return None
  */
-  __pyx_t_2 = (__pyx_v_c_node != NULL);
+  __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":231
@@ -67458,7 +67775,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_24getprevious(struct __p
  *             return _newReadOnlyProxy(self._source_proxy, c_node)
  *         return None
  */
-  __pyx_t_2 = (__pyx_v_c_node != NULL);
+  __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":241
@@ -67640,7 +67957,7 @@ static int __pyx_pw_4lxml_5etree_20_ReadOnlyEntityProxy_4name_3__set__(PyObject
  * 
  *         def __set__(self, value):             # <<<<<<<<<<<<<<
  *             value_utf = _utf8(value)
- *             assert u'&' not in value and u';' not in value, \
+ *             if u'&' in value or u';' in value:
  */
 
 static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __pyx_obj_4lxml_5etree__ReadOnlyEntityProxy *__pyx_v_self, PyObject *__pyx_v_value) {
@@ -67651,6 +67968,7 @@ static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __
   int __pyx_t_2;
   int __pyx_t_3;
   int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -67660,8 +67978,8 @@ static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __
  * 
  *         def __set__(self, value):
  *             value_utf = _utf8(value)             # <<<<<<<<<<<<<<
- *             assert u'&' not in value and u';' not in value, \
- *                 u"Invalid entity name '%s'" % value
+ *             if u'&' in value or u';' in value:
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)
  */
   __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
@@ -67671,38 +67989,46 @@ static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":264
  *         def __set__(self, value):
  *             value_utf = _utf8(value)
- *             assert u'&' not in value and u';' not in value, \             # <<<<<<<<<<<<<<
- *                 u"Invalid entity name '%s'" % value
+ *             if u'&' in value or u';' in value:             # <<<<<<<<<<<<<<
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  */
-  #ifndef CYTHON_WITHOUT_ASSERTIONS
-  __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_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;
+  __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_EQ)); 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 != 0)) {
+    __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_86), __pyx_v_value, Py_EQ)); 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 != 0);
   } else {
-    __pyx_t_4 = __pyx_t_2;
+    __pyx_t_4 = (__pyx_t_2 != 0);
   }
-  if (unlikely(!__pyx_t_4)) {
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":265
  *             value_utf = _utf8(value)
- *             assert u'&' not in value and u';' not in value, \
- *                 u"Invalid entity name '%s'" % value             # <<<<<<<<<<<<<<
+ *             if u'&' in value or u';' in value:
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)             # <<<<<<<<<<<<<<
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  * 
  */
     __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_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_1));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
+    __pyx_t_1 = 0;
+    __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_1);
+    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L3;
   }
-  #endif
+  __pyx_L3:;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":266
- *             assert u'&' not in value and u';' not in value, \
- *                 u"Invalid entity name '%s'" % value
+ *             if u'&' in value or u';' in value:
+ *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))             # <<<<<<<<<<<<<<
  * 
  *     property text:
@@ -67713,6 +68039,7 @@ static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._ReadOnlyEntityProxy.name.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -67900,7 +68227,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ReadOnlyElementProxy_6prefix___get__(s
  *                 if self._c_node.ns.prefix is not NULL:
  *                     return funicode(self._c_node.ns.prefix)
  */
-  __pyx_t_2 = (__pyx_v_self->__pyx_base._c_node->ns != NULL);
+  __pyx_t_2 = ((__pyx_v_self->__pyx_base._c_node->ns != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":288
@@ -67910,7 +68237,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ReadOnlyElementProxy_6prefix___get__(s
  *                     return funicode(self._c_node.ns.prefix)
  *             return None
  */
-    __pyx_t_2 = (__pyx_v_self->__pyx_base._c_node->ns->prefix != NULL);
+    __pyx_t_2 = ((__pyx_v_self->__pyx_base._c_node->ns->prefix != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":289
@@ -68298,7 +68625,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newRe
  *         el = _ReadOnlyElementProxy.__new__(_ReadOnlyElementProxy)
  *     elif c_node.type == tree.XML_PI_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":323
@@ -68323,7 +68650,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newRe
  *         el = _ReadOnlyPIProxy.__new__(_ReadOnlyPIProxy)
  *     elif c_node.type in (tree.XML_COMMENT_NODE,
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_PI_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_PI_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":325
@@ -68364,7 +68691,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newRe
   } else {
     __pyx_t_5 = __pyx_t_1;
   }
-  __pyx_t_1 = __pyx_t_5;
+  __pyx_t_1 = (__pyx_t_5 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":328
@@ -68467,8 +68794,9 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__initReadOnlyProxy(struct __
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -68482,7 +68810,8 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__initReadOnlyProxy(struct __
  *         el._dependent_proxies = [el]
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_source_proxy) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":338
  *                                _ReadOnlyProxy source_proxy):
@@ -68504,16 +68833,16 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__initReadOnlyProxy(struct __
  *     else:
  *         el._source_proxy = source_proxy
  */
-    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(((PyObject *)__pyx_v_el));
-    PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_el));
+    PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_el));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_el));
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __Pyx_GOTREF(__pyx_v_el->_dependent_proxies);
     __Pyx_DECREF(((PyObject *)__pyx_v_el->_dependent_proxies));
-    __pyx_v_el->_dependent_proxies = ((PyObject*)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_el->_dependent_proxies = ((PyObject*)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -68542,14 +68871,14 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__initReadOnlyProxy(struct __
       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 = __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_t_4 = __Pyx_PyList_Append(__pyx_v_source_proxy->_dependent_proxies, ((PyObject *)__pyx_v_el)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._initReadOnlyProxy", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -68572,10 +68901,11 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  Py_ssize_t __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
-  xmlNode *__pyx_t_5;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  Py_ssize_t __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
+  xmlNode *__pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -68589,7 +68919,8 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
  *     if sourceProxy._dependent_proxies is None:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_sourceProxy) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":348
  *     cdef _ReadOnlyProxy el
@@ -68612,7 +68943,8 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
  *         return
  *     for el in sourceProxy._dependent_proxies:
  */
-  __pyx_t_1 = (__pyx_v_sourceProxy->_dependent_proxies == ((PyObject*)Py_None));
+  __pyx_t_2 = (__pyx_v_sourceProxy->_dependent_proxies == ((PyObject*)Py_None));
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":350
@@ -68640,18 +68972,18 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = ((PyObject *)__pyx_v_sourceProxy->_dependent_proxies); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_v_sourceProxy->_dependent_proxies); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
   for (;;) {
-    if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
+    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__ReadOnlyProxy))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__ReadOnlyProxy))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XDECREF(((PyObject *)__pyx_v_el));
-    __pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_5);
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":352
  *         return
@@ -68660,8 +68992,8 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
  *         el._c_node = NULL
  *         if el._free_after_use:
  */
-    __pyx_t_5 = __pyx_v_el->_c_node;
-    __pyx_v_c_node = __pyx_t_5;
+    __pyx_t_6 = __pyx_v_el->_c_node;
+    __pyx_v_c_node = __pyx_t_6;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":353
  *     for el in sourceProxy._dependent_proxies:
@@ -68679,7 +69011,8 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
  *             tree.xmlFreeNode(c_node)
  *     del sourceProxy._dependent_proxies[:]
  */
-    if (__pyx_v_el->_free_after_use) {
+    __pyx_t_1 = (__pyx_v_el->_free_after_use != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":355
  *         el._c_node = NULL
@@ -68693,7 +69026,7 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
     }
     __pyx_L7:;
   }
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":356
  *         if el._free_after_use:
@@ -68711,8 +69044,8 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._freeReadOnlyProxies", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -68796,7 +69129,7 @@ static int __pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode(struct __py
  * 
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->__pyx_base._c_node != NULL))) {
+  if (unlikely(!((__pyx_v_self->__pyx_base._c_node != NULL) != 0))) {
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_132));
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -68875,7 +69208,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __p
  *             if tree.xmlDocGetRootElement(<tree.xmlDoc*>self._c_node) is not NULL:
  *                 raise ValueError, u"cannot append, document already has a root element"
  */
-  __pyx_t_3 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_3 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":386
@@ -68885,7 +69218,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __p
  *                 raise ValueError, u"cannot append, document already has a root element"
  *         elif c_node.type not in (tree.XML_PI_NODE, tree.XML_COMMENT_NODE):
  */
-    __pyx_t_3 = (xmlDocGetRootElement(((xmlDoc *)__pyx_v_self->__pyx_base._c_node)) != NULL);
+    __pyx_t_3 = ((xmlDocGetRootElement(((xmlDoc *)__pyx_v_self->__pyx_base._c_node)) != NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":387
@@ -68918,7 +69251,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __p
   } else {
     __pyx_t_6 = __pyx_t_3;
   }
-  __pyx_t_3 = __pyx_t_6;
+  __pyx_t_3 = (__pyx_t_6 != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":389
@@ -69190,7 +69523,7 @@ static struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper *__pyx_f_4lxml_5etree__n
   } else {
     __pyx_t_4 = __pyx_t_2;
   }
-  __pyx_t_2 = __pyx_t_4;
+  __pyx_t_2 = (__pyx_t_4 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":406
@@ -69304,7 +69637,7 @@ static PyObject *__pyx_pf_4lxml_5etree_23_ModifyContentOnlyProxy_4text___get__(s
  *                 return ''
  *             else:
  */
-  __pyx_t_2 = (__pyx_v_self->__pyx_base._c_node->content == NULL);
+  __pyx_t_2 = ((__pyx_v_self->__pyx_base._c_node->content == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":422
@@ -69375,7 +69708,8 @@ static int __pyx_pf_4lxml_5etree_23_ModifyContentOnlyProxy_4text_2__set__(struct
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -69399,7 +69733,8 @@ static int __pyx_pf_4lxml_5etree_23_ModifyContentOnlyProxy_4text_2__set__(struct
  *             else:
  */
   __pyx_t_2 = (__pyx_v_value == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":430
  *             self._assertNode()
@@ -69420,11 +69755,11 @@ static int __pyx_pf_4lxml_5etree_23_ModifyContentOnlyProxy_4text_2__set__(struct
  *                 c_text = _xcstr(value)
  *             tree.xmlNodeSetContent(self._c_node, c_text)
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_value = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":433
  *             else:
@@ -69449,7 +69784,7 @@ static int __pyx_pf_4lxml_5etree_23_ModifyContentOnlyProxy_4text_2__set__(struct
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._ModifyContentOnlyProxy.text.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -69714,11 +70049,11 @@ static int __pyx_pf_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_2__set__(
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __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) {
+  if ((__pyx_t_2 != 0)) {
     __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;
+    __pyx_t_4 = (__pyx_t_3 != 0);
   } else {
-    __pyx_t_4 = __pyx_t_2;
+    __pyx_t_4 = (__pyx_t_2 != 0);
   }
   if (unlikely(!__pyx_t_4)) {
 
@@ -70106,8 +70441,9 @@ static int __pyx_pf_4lxml_5etree_23_AppendOnlyElementProxy_4text_2__set__(struct
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -70131,7 +70467,8 @@ static int __pyx_pf_4lxml_5etree_23_AppendOnlyElementProxy_4text_2__set__(struct
  *             _setNodeText(self._c_node, value)
  */
   __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree_QName)); 
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":506
  *             self._assertNode()
@@ -70141,18 +70478,18 @@ static int __pyx_pf_4lxml_5etree_23_AppendOnlyElementProxy_4text_2__set__(struct
  * 
  */
     if (!(likely(((((PyObject *)__pyx_v_self)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_self), __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__resolveQNameText(((struct LxmlElement *)__pyx_v_self), __pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    if (unlikely(__pyx_t_3 == Py_None)) {
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__resolveQNameText(((struct LxmlElement *)__pyx_v_self), __pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    if (unlikely(__pyx_t_4 == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
       {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(__pyx_t_3, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_5 = ((PyObject *)__Pyx_decode_bytes(__pyx_t_4, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = ((PyObject *)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __pyx_v_value = ((PyObject *)__pyx_t_5);
+    __pyx_t_5 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -70169,8 +70506,8 @@ static int __pyx_pf_4lxml_5etree_23_AppendOnlyElementProxy_4text_2__set__(struct
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._AppendOnlyElementProxy.text.__set__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -70206,7 +70543,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newAp
  *         el = _AppendOnlyElementProxy.__new__(_AppendOnlyElementProxy)
  *     elif c_node.type == tree.XML_PI_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":514
@@ -70231,7 +70568,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newAp
  *         el = _ModifyContentOnlyPIProxy.__new__(_ModifyContentOnlyPIProxy)
  *     elif c_node.type == tree.XML_COMMENT_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_PI_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_PI_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":516
@@ -70256,7 +70593,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newAp
  *         el = _ModifyContentOnlyProxy.__new__(_ModifyContentOnlyProxy)
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_COMMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_COMMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":518
@@ -70360,8 +70697,9 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
   xmlNode *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  xmlNode *__pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_2;
+  xmlNode *__pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -70375,7 +70713,8 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *     elif isinstance(element, _ReadOnlyProxy):
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":528
  *     cdef xmlNode* c_node
@@ -70384,8 +70723,8 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *     elif isinstance(element, _ReadOnlyProxy):
  *         c_node = (<_ReadOnlyProxy>element)._c_node
  */
-    __pyx_t_2 = ((struct LxmlElement *)__pyx_v_element)->_c_node;
-    __pyx_v_c_node = __pyx_t_2;
+    __pyx_t_3 = ((struct LxmlElement *)__pyx_v_element)->_c_node;
+    __pyx_v_c_node = __pyx_t_3;
     goto __pyx_L3;
   }
 
@@ -70396,7 +70735,8 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *         c_node = (<_ReadOnlyProxy>element)._c_node
  *     elif isinstance(element, _OpaqueNodeWrapper):
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyProxy)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__ReadOnlyProxy)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":530
@@ -70406,8 +70746,8 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *     elif isinstance(element, _OpaqueNodeWrapper):
  *         c_node = (<_OpaqueNodeWrapper>element)._c_node
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_v_element)->_c_node;
-    __pyx_v_c_node = __pyx_t_2;
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_v_element)->_c_node;
+    __pyx_v_c_node = __pyx_t_3;
     goto __pyx_L3;
   }
 
@@ -70419,7 +70759,8 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *     else:
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__OpaqueNodeWrapper)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":532
  *         c_node = (<_ReadOnlyProxy>element)._c_node
@@ -70428,8 +70769,8 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *     else:
  *         raise TypeError, u"invalid argument type %s" % type(element)
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper *)__pyx_v_element)->_c_node;
-    __pyx_v_c_node = __pyx_t_2;
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper *)__pyx_v_element)->_c_node;
+    __pyx_v_c_node = __pyx_t_3;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -70441,10 +70782,10 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  * 
  *     if c_node is NULL:
  */
-    __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;
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_140), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 534; __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;
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -70456,8 +70797,8 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *         raise TypeError, u"invalid element"
  *     return c_node
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":537
  * 
@@ -70485,7 +70826,7 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._roNodeOf", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -70506,8 +70847,9 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
   xmlNode *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  xmlNode *__pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_2;
+  xmlNode *__pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -70521,7 +70863,8 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *     elif isinstance(element, _AppendOnlyElementProxy):
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":543
  *     cdef xmlNode* c_node
@@ -70530,8 +70873,8 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *     elif isinstance(element, _AppendOnlyElementProxy):
  *         c_node = (<_AppendOnlyElementProxy>element)._c_node
  */
-    __pyx_t_2 = ((struct LxmlElement *)__pyx_v_element)->_c_node;
-    __pyx_v_c_node = __pyx_t_2;
+    __pyx_t_3 = ((struct LxmlElement *)__pyx_v_element)->_c_node;
+    __pyx_v_c_node = __pyx_t_3;
     goto __pyx_L3;
   }
 
@@ -70542,7 +70885,8 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *         c_node = (<_AppendOnlyElementProxy>element)._c_node
  *     elif isinstance(element, _OpaqueNodeWrapper):
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__AppendOnlyElementProxy)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__AppendOnlyElementProxy)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":545
@@ -70552,8 +70896,8 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *     elif isinstance(element, _OpaqueNodeWrapper):
  *         c_node = (<_OpaqueNodeWrapper>element)._c_node
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy *)__pyx_v_element)->__pyx_base.__pyx_base._c_node;
-    __pyx_v_c_node = __pyx_t_2;
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy *)__pyx_v_element)->__pyx_base.__pyx_base._c_node;
+    __pyx_v_c_node = __pyx_t_3;
     goto __pyx_L3;
   }
 
@@ -70565,7 +70909,8 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *     else:
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element, ((PyObject*)__pyx_ptype_4lxml_5etree__OpaqueNodeWrapper)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":547
  *         c_node = (<_AppendOnlyElementProxy>element)._c_node
@@ -70574,8 +70919,8 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *     else:
  *         raise TypeError, u"invalid argument type %s" % type(element)
  */
-    __pyx_t_2 = ((struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper *)__pyx_v_element)->_c_node;
-    __pyx_v_c_node = __pyx_t_2;
+    __pyx_t_3 = ((struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper *)__pyx_v_element)->_c_node;
+    __pyx_v_c_node = __pyx_t_3;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -70587,10 +70932,10 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  * 
  *     if c_node is NULL:
  */
-    __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;
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_140), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 549; __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;
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -70602,8 +70947,8 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *         raise TypeError, u"invalid element"
  *     return c_node
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":552
  * 
@@ -70628,7 +70973,7 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._nonRoNodeOf", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -70742,9 +71087,9 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
   PyObject *__pyx_t_8 = NULL;
   PyObject *(*__pyx_t_9)(PyObject *);
   int __pyx_t_10;
-  PyObject *__pyx_t_11 = NULL;
-  Py_ssize_t __pyx_t_12;
-  int __pyx_t_13;
+  int __pyx_t_11;
+  PyObject *__pyx_t_12 = NULL;
+  Py_ssize_t __pyx_t_13;
   int __pyx_t_14;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -70958,7 +71303,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *         except AttributeError:
  */
       __pyx_t_10 = (__pyx_v_ns != Py_None);
-      if (__pyx_t_10) {
+      __pyx_t_11 = (__pyx_t_10 != 0);
+      if (__pyx_t_11) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":57
  *             ns, tag = _getNsTag(_getattr(self, 'TAG'))
@@ -71014,23 +71360,23 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
       __Pyx_INCREF(((PyObject *)__pyx_n_s____class__));
       PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_n_s____class__));
       __Pyx_GIVEREF(((PyObject *)__pyx_n_s____class__));
-      __pyx_t_11 = PyObject_Call(__pyx_v__getattr, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
-      __Pyx_GOTREF(__pyx_t_11);
+      __pyx_t_12 = PyObject_Call(__pyx_v__getattr, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+      __Pyx_GOTREF(__pyx_t_12);
       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
       __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
       __Pyx_GOTREF(__pyx_t_8);
-      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_11);
-      __Pyx_GIVEREF(__pyx_t_11);
+      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_12);
+      __Pyx_GIVEREF(__pyx_t_12);
       __Pyx_INCREF(((PyObject *)__pyx_n_s____name__));
       PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_n_s____name__));
       __Pyx_GIVEREF(((PyObject *)__pyx_n_s____name__));
-      __pyx_t_11 = 0;
-      __pyx_t_11 = PyObject_Call(__pyx_v__getattr, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
-      __Pyx_GOTREF(__pyx_t_11);
+      __pyx_t_12 = 0;
+      __pyx_t_12 = PyObject_Call(__pyx_v__getattr, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+      __Pyx_GOTREF(__pyx_t_12);
       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
-      __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_11)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+      __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_12)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __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_t_12); __pyx_t_12 = 0;
       __Pyx_XDECREF(__pyx_v_tag);
       __pyx_v_tag = __pyx_t_8;
       __pyx_t_8 = 0;
@@ -71042,7 +71388,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                 tag = tag.split(b'.')[-1]
  *         try:
  */
-      __pyx_t_10 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_b_5), __pyx_v_tag, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+      __pyx_t_11 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_b_5), __pyx_v_tag, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+      __pyx_t_10 = (__pyx_t_11 != 0);
       if (__pyx_t_10) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":61
@@ -71054,12 +71401,12 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  */
         __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_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_t_12 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_142), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+        __Pyx_GOTREF(__pyx_t_12);
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-        __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_t_8 = __Pyx_GetItemInt(__pyx_t_12, -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_t_12); __pyx_t_12 = 0;
         __Pyx_DECREF(__pyx_v_tag);
         __pyx_v_tag = __pyx_t_8;
         __pyx_t_8 = 0;
@@ -71126,7 +71473,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L34_try_end;
     __pyx_L27_error:;
-    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -71165,17 +71512,17 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                 if isinstance(child, _Element):
  *                     parser = (<_Element>child)._doc._parser
  */
-      __pyx_t_8 = ((PyObject *)__pyx_v_children); __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
+      __pyx_t_8 = ((PyObject *)__pyx_v_children); __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0;
       for (;;) {
-        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
+        if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L29_except_error;}
+        __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_12); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L29_except_error;}
         #else
-        __pyx_t_11 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L29_except_error;}
+        __pyx_t_12 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L29_except_error;}
         #endif
         __Pyx_XDECREF(__pyx_v_child);
-        __pyx_v_child = __pyx_t_11;
-        __pyx_t_11 = 0;
+        __pyx_v_child = __pyx_t_12;
+        __pyx_t_12 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":67
  *             parser = None
@@ -71185,7 +71532,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                     break
  */
         __pyx_t_10 = __Pyx_TypeCheck(__pyx_v_child, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-        if (__pyx_t_10) {
+        __pyx_t_11 = (__pyx_t_10 != 0);
+        if (__pyx_t_11) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":68
  *             for child in children:
@@ -71194,11 +71542,11 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                     break
  *         if isinstance(parser, HTMLParser):
  */
-          __pyx_t_11 = ((PyObject *)((struct LxmlElement *)__pyx_v_child)->_doc->_parser);
-          __Pyx_INCREF(__pyx_t_11);
+          __pyx_t_12 = ((PyObject *)((struct LxmlElement *)__pyx_v_child)->_doc->_parser);
+          __Pyx_INCREF(__pyx_t_12);
           __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-          __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_11);
-          __pyx_t_11 = 0;
+          __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_12);
+          __pyx_t_12 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":69
  *                 if isinstance(child, _Element):
@@ -71240,7 +71588,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *             is_html = 1
  *         if namespace is None:
  */
-  __pyx_t_10 = __Pyx_TypeCheck(((PyObject *)__pyx_v_parser), ((PyObject*)__pyx_ptype_4lxml_5etree_HTMLParser)); 
+  __pyx_t_11 = __Pyx_TypeCheck(((PyObject *)__pyx_v_parser), ((PyObject*)__pyx_ptype_4lxml_5etree_HTMLParser)); 
+  __pyx_t_10 = (__pyx_t_11 != 0);
   if (__pyx_t_10) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":71
@@ -71263,7 +71612,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                 is_html = _getattr(self, 'HTML')
  */
   __pyx_t_10 = (__pyx_v_namespace == Py_None);
-  if (__pyx_t_10) {
+  __pyx_t_11 = (__pyx_t_10 != 0);
+  if (__pyx_t_11) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":73
  *             is_html = 1
@@ -71297,16 +71647,16 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
         __pyx_t_5 = PyObject_Call(__pyx_v__getattr, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L42_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-        __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_10 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L42_error;}
+        __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_11 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L42_error;}
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __pyx_v_is_html = __pyx_t_10;
+        __pyx_v_is_html = __pyx_t_11;
       }
       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
       goto __pyx_L49_try_end;
       __pyx_L42_error:;
-      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
       __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
@@ -71366,13 +71716,13 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *             if _isString(child):
  *                 if last_child is None:
  */
-  __pyx_t_5 = ((PyObject *)__pyx_v_children); __Pyx_INCREF(__pyx_t_5); __pyx_t_12 = 0;
+  __pyx_t_5 = ((PyObject *)__pyx_v_children); __Pyx_INCREF(__pyx_t_5); __pyx_t_13 = 0;
   for (;;) {
-    if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
+    if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     __Pyx_XDECREF(__pyx_v_child);
     __pyx_v_child = __pyx_t_7;
@@ -71385,8 +71735,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                 if last_child is None:
  *                     _setNodeText(self._c_node,
  */
-    __pyx_t_10 = _isString(__pyx_v_child);
-    if (__pyx_t_10) {
+    __pyx_t_11 = (_isString(__pyx_v_child) != 0);
+    if (__pyx_t_11) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":82
  *         for child in children:
@@ -71395,7 +71745,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                     _setNodeText(self._c_node,
  *                                  (_collectText(self._c_node.children) or '') + child)
  */
-      __pyx_t_10 = (((PyObject *)__pyx_v_last_child) == Py_None);
+      __pyx_t_11 = (((PyObject *)__pyx_v_last_child) == Py_None);
+      __pyx_t_10 = (__pyx_t_11 != 0);
       if (__pyx_t_10) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":84
@@ -71461,7 +71812,8 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                 _appendChild(self, last_child)
  */
     __pyx_t_10 = __Pyx_TypeCheck(__pyx_v_child, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-    if (__pyx_t_10) {
+    __pyx_t_11 = (__pyx_t_10 != 0);
+    if (__pyx_t_11) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":89
  *                                  (_collectText(last_child._c_node.next) or '') + child)
@@ -71493,12 +71845,12 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                 last_child = child()
  *                 _appendChild(self, last_child)
  */
-    __pyx_t_10 = __Pyx_TypeCheck(__pyx_v_child, ((PyObject*)(&PyType_Type))); 
-    if (__pyx_t_10) {
-      __pyx_t_13 = PyObject_IsSubclass(__pyx_v_child, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementBase))); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_14 = __pyx_t_13;
+    __pyx_t_11 = PyType_Check(__pyx_v_child); 
+    if ((__pyx_t_11 != 0)) {
+      __pyx_t_10 = PyObject_IsSubclass(__pyx_v_child, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementBase))); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_14 = (__pyx_t_10 != 0);
     } else {
-      __pyx_t_14 = __pyx_t_10;
+      __pyx_t_14 = (__pyx_t_11 != 0);
     }
     if (__pyx_t_14) {
 
@@ -71552,7 +71904,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_8);
-  __Pyx_XDECREF(__pyx_t_11);
+  __Pyx_XDECREF(__pyx_t_12);
   __Pyx_AddTraceback("lxml.etree.ElementBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -71626,13 +71978,16 @@ static int __pyx_pw_4lxml_5etree_11CommentBase_1__init__(PyObject *__pyx_v_self,
  */
 
 static int __pyx_pf_4lxml_5etree_11CommentBase___init__(struct __pyx_obj_4lxml_5etree_CommentBase *__pyx_v_self, PyObject *__pyx_v_text) {
-  CYTHON_UNUSED struct LxmlDocument *__pyx_v_doc = 0;
+  struct LxmlDocument *__pyx_v_doc = 0;
   xmlDoc *__pyx_v_c_doc;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  xmlDoc *__pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  xmlDoc *__pyx_t_4;
+  int __pyx_t_5;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -71647,7 +72002,8 @@ static int __pyx_pf_4lxml_5etree_11CommentBase___init__(struct __pyx_obj_4lxml_5
  *         else:
  */
   __pyx_t_1 = (__pyx_v_text == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":114
  *         cdef xmlDoc*   c_doc
@@ -71670,11 +72026,11 @@ static int __pyx_pf_4lxml_5etree_11CommentBase___init__(struct __pyx_obj_4lxml_5
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_text = __pyx_t_3;
+    __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
@@ -71685,43 +72041,89 @@ static int __pyx_pf_4lxml_5etree_11CommentBase___init__(struct __pyx_obj_4lxml_5
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createComment(c_doc, _xcstr(text))
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_doc = __pyx_t_3;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_doc = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":118
  *             text = _utf8(text)
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)             # <<<<<<<<<<<<<<
  *         self._c_node = _createComment(c_doc, _xcstr(text))
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         if self._c_node is NULL:
  */
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":119
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createComment(c_doc, _xcstr(text))             # <<<<<<<<<<<<<<
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
- * 
+ *         if self._c_node is NULL:
+ *             raise MemoryError()
  */
   __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node = __pyx_f_4lxml_5etree__createComment(__pyx_v_c_doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_text));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":120
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createComment(c_doc, _xcstr(text))
+ *         if self._c_node is NULL:             # <<<<<<<<<<<<<<
+ *             raise MemoryError()
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ */
+  __pyx_t_2 = ((__pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node == NULL) != 0);
+  if (__pyx_t_2) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":121
+ *         self._c_node = _createComment(c_doc, _xcstr(text))
+ *         if self._c_node is NULL:
+ *             raise MemoryError()             # <<<<<<<<<<<<<<
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)
+ */
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L4;
+  }
+  __pyx_L4:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":122
+ *         if self._c_node is NULL:
+ *             raise MemoryError()
  *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)             # <<<<<<<<<<<<<<
+ *         _registerProxy(self, doc, self._c_node)
+ *         self._init()
+ */
+  xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":123
+ *             raise MemoryError()
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)             # <<<<<<<<<<<<<<
+ *         self._init()
+ * 
+ */
+  __pyx_t_5 = __pyx_f_4lxml_5etree__registerProxy(((struct LxmlElement *)__pyx_v_self), __pyx_v_doc, __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":124
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)
+ *         self._init()             # <<<<<<<<<<<<<<
  * 
  * cdef class PIBase(_ProcessingInstruction):
  */
-  xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___init); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree.CommentBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -71746,7 +72148,7 @@ static int __pyx_pw_4lxml_5etree_6PIBase_1__init__(PyObject *__pyx_v_self, PyObj
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__target,&__pyx_n_s__text,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":135
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":139
  *     called after object creation.
  *     """
  *     def __init__(self, target, text=None):             # <<<<<<<<<<<<<<
@@ -71775,7 +72177,7 @@ static int __pyx_pw_4lxml_5etree_6PIBase_1__init__(PyObject *__pyx_v_self, PyObj
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 135; __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[9]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -71790,7 +72192,7 @@ static int __pyx_pw_4lxml_5etree_6PIBase_1__init__(PyObject *__pyx_v_self, PyObj
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.PIBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -71802,13 +72204,16 @@ static int __pyx_pw_4lxml_5etree_6PIBase_1__init__(PyObject *__pyx_v_self, PyObj
 }
 
 static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_PIBase *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_text) {
-  CYTHON_UNUSED struct LxmlDocument *__pyx_v_doc = 0;
+  struct LxmlDocument *__pyx_v_doc = 0;
   xmlDoc *__pyx_v_c_doc;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  xmlDoc *__pyx_t_3;
+  int __pyx_t_3;
+  xmlDoc *__pyx_t_4;
+  int __pyx_t_5;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -71816,20 +72221,20 @@ static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_
   __Pyx_INCREF(__pyx_v_target);
   __Pyx_INCREF(__pyx_v_text);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":139
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":143
  *         cdef _Document doc
  *         cdef xmlDoc*   c_doc
  *         target = _utf8(target)             # <<<<<<<<<<<<<<
  *         if text is None:
  *             text = b''
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_target)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_target)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_v_target);
   __pyx_v_target = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":140
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":144
  *         cdef xmlDoc*   c_doc
  *         target = _utf8(target)
  *         if text is None:             # <<<<<<<<<<<<<<
@@ -71837,9 +72242,10 @@ static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_
  *         else:
  */
   __pyx_t_2 = (__pyx_v_text == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":141
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":145
  *         target = _utf8(target)
  *         if text is None:
  *             text = b''             # <<<<<<<<<<<<<<
@@ -71853,14 +72259,14 @@ static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":143
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":147
  *             text = b''
  *         else:
  *             text = _utf8(text)             # <<<<<<<<<<<<<<
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)
  */
-    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_v_text);
     __pyx_v_text = __pyx_t_1;
@@ -71868,50 +72274,96 @@ static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":144
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":148
  *         else:
  *             text = _utf8(text)
  *         c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_doc = __pyx_t_3;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_doc = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":145
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":149
  *             text = _utf8(text)
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)             # <<<<<<<<<<<<<<
  *         self._c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         if self._c_node is NULL:
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":146
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":150
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))             # <<<<<<<<<<<<<<
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
- * 
+ *         if self._c_node is NULL:
+ *             raise MemoryError()
  */
   __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node = __pyx_f_4lxml_5etree__createPI(__pyx_v_c_doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_target), (const xmlChar*)PyBytes_AS_STRING(__pyx_v_text));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":147
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":151
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
+ *         if self._c_node is NULL:             # <<<<<<<<<<<<<<
+ *             raise MemoryError()
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ */
+  __pyx_t_3 = ((__pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node == NULL) != 0);
+  if (__pyx_t_3) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":152
+ *         self._c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
+ *         if self._c_node is NULL:
+ *             raise MemoryError()             # <<<<<<<<<<<<<<
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)
+ */
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L4;
+  }
+  __pyx_L4:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":153
+ *         if self._c_node is NULL:
+ *             raise MemoryError()
  *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)             # <<<<<<<<<<<<<<
+ *         _registerProxy(self, doc, self._c_node)
+ *         self._init()
+ */
+  xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":154
+ *             raise MemoryError()
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)             # <<<<<<<<<<<<<<
+ *         self._init()
+ * 
+ */
+  __pyx_t_5 = __pyx_f_4lxml_5etree__registerProxy(((struct LxmlElement *)__pyx_v_self), __pyx_v_doc, __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":155
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)
+ *         self._init()             # <<<<<<<<<<<<<<
  * 
  * cdef class EntityBase(_Entity):
  */
-  xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node);
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___init); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 155; __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[9]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree.PIBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -71950,7 +72402,7 @@ static int __pyx_pw_4lxml_5etree_10EntityBase_1__init__(PyObject *__pyx_v_self,
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 161; __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[9]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -71961,7 +72413,7 @@ static int __pyx_pw_4lxml_5etree_10EntityBase_1__init__(PyObject *__pyx_v_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.EntityBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -71972,7 +72424,7 @@ static int __pyx_pw_4lxml_5etree_10EntityBase_1__init__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":161
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":169
  *     called after object creation.
  *     """
  *     def __init__(self, name):             # <<<<<<<<<<<<<<
@@ -71981,7 +72433,7 @@ static int __pyx_pw_4lxml_5etree_10EntityBase_1__init__(PyObject *__pyx_v_self,
  */
 
 static int __pyx_pf_4lxml_5etree_10EntityBase___init__(struct __pyx_obj_4lxml_5etree_EntityBase *__pyx_v_self, PyObject *__pyx_v_name) {
-  CYTHON_UNUSED struct LxmlDocument *__pyx_v_doc = 0;
+  struct LxmlDocument *__pyx_v_doc = 0;
   xmlDoc *__pyx_v_c_doc;
   PyObject *__pyx_v_name_utf = NULL;
   const xmlChar *__pyx_v_c_name;
@@ -71990,24 +72442,26 @@ static int __pyx_pf_4lxml_5etree_10EntityBase___init__(struct __pyx_obj_4lxml_5e
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
   xmlDoc *__pyx_t_3;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":164
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":172
  *         cdef _Document doc
  *         cdef xmlDoc*   c_doc
  *         name_utf = _utf8(name)             # <<<<<<<<<<<<<<
  *         c_name = _xcstr(name_utf)
  *         if c_name[0] == c'#':
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_name_utf = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":165
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":173
  *         cdef xmlDoc*   c_doc
  *         name_utf = _utf8(name)
  *         c_name = _xcstr(name_utf)             # <<<<<<<<<<<<<<
@@ -72016,114 +72470,160 @@ static int __pyx_pf_4lxml_5etree_10EntityBase___init__(struct __pyx_obj_4lxml_5e
  */
   __pyx_v_c_name = (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_name_utf));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":166
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":174
  *         name_utf = _utf8(name)
  *         c_name = _xcstr(name_utf)
  *         if c_name[0] == c'#':             # <<<<<<<<<<<<<<
  *             if not _characterReferenceIsValid(c_name + 1):
  *                 raise ValueError, u"Invalid character reference: '%s'" % name
  */
-  __pyx_t_2 = ((__pyx_v_c_name[0]) == '#');
+  __pyx_t_2 = (((__pyx_v_c_name[0]) == '#') != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":167
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":175
  *         c_name = _xcstr(name_utf)
  *         if c_name[0] == c'#':
  *             if not _characterReferenceIsValid(c_name + 1):             # <<<<<<<<<<<<<<
  *                 raise ValueError, u"Invalid character reference: '%s'" % name
  *         elif not _xmlNameIsValid(c_name):
  */
-    __pyx_t_2 = (!__pyx_f_4lxml_5etree__characterReferenceIsValid((__pyx_v_c_name + 1)));
+    __pyx_t_2 = ((!(__pyx_f_4lxml_5etree__characterReferenceIsValid((__pyx_v_c_name + 1)) != 0)) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":168
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":176
  *         if c_name[0] == c'#':
  *             if not _characterReferenceIsValid(c_name + 1):
  *                 raise ValueError, u"Invalid character reference: '%s'" % name             # <<<<<<<<<<<<<<
  *         elif not _xmlNameIsValid(c_name):
  *             raise ValueError, u"Invalid entity reference: '%s'" % name
  */
-      __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_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_124), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 176; __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;
-      {__pyx_filename = __pyx_f[9]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[9]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
     __pyx_L4:;
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":169
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":177
  *             if not _characterReferenceIsValid(c_name + 1):
  *                 raise ValueError, u"Invalid character reference: '%s'" % name
  *         elif not _xmlNameIsValid(c_name):             # <<<<<<<<<<<<<<
  *             raise ValueError, u"Invalid entity reference: '%s'" % name
  *         c_doc = _newXMLDoc()
  */
-  __pyx_t_2 = (!__pyx_f_4lxml_5etree__xmlNameIsValid(__pyx_v_c_name));
+  __pyx_t_2 = ((!(__pyx_f_4lxml_5etree__xmlNameIsValid(__pyx_v_c_name) != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":170
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":178
  *                 raise ValueError, u"Invalid character reference: '%s'" % name
  *         elif not _xmlNameIsValid(c_name):
  *             raise ValueError, u"Invalid entity reference: '%s'" % name             # <<<<<<<<<<<<<<
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)
  */
-    __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_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_125), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 178; __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;
-    {__pyx_filename = __pyx_f[9]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[9]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":171
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":179
  *         elif not _xmlNameIsValid(c_name):
  *             raise ValueError, u"Invalid entity reference: '%s'" % name
  *         c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createEntity(c_doc, c_name)
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":172
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":180
  *             raise ValueError, u"Invalid entity reference: '%s'" % name
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)             # <<<<<<<<<<<<<<
  *         self._c_node = _createEntity(c_doc, c_name)
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         if self._c_node is NULL:
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":173
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":181
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createEntity(c_doc, c_name)             # <<<<<<<<<<<<<<
- *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
- * 
+ *         if self._c_node is NULL:
+ *             raise MemoryError()
  */
   __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node = __pyx_f_4lxml_5etree__createEntity(__pyx_v_c_doc, __pyx_v_c_name);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":174
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":182
  *         doc = _documentFactory(c_doc, None)
  *         self._c_node = _createEntity(c_doc, c_name)
+ *         if self._c_node is NULL:             # <<<<<<<<<<<<<<
+ *             raise MemoryError()
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ */
+  __pyx_t_2 = ((__pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node == NULL) != 0);
+  if (__pyx_t_2) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":183
+ *         self._c_node = _createEntity(c_doc, c_name)
+ *         if self._c_node is NULL:
+ *             raise MemoryError()             # <<<<<<<<<<<<<<
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)
+ */
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L5;
+  }
+  __pyx_L5:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":184
+ *         if self._c_node is NULL:
+ *             raise MemoryError()
  *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)             # <<<<<<<<<<<<<<
- * 
- * ################################################################################
+ *         _registerProxy(self, doc, self._c_node)
+ *         self._init()
  */
   xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node);
 
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":185
+ *             raise MemoryError()
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)             # <<<<<<<<<<<<<<
+ *         self._init()
+ * 
+ */
+  __pyx_t_4 = __pyx_f_4lxml_5etree__registerProxy(((struct LxmlElement *)__pyx_v_self), __pyx_v_doc, __pyx_v_self->__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":186
+ *         tree.xmlAddChild(<xmlNode*>c_doc, self._c_node)
+ *         _registerProxy(self, doc, self._c_node)
+ *         self._init()             # <<<<<<<<<<<<<<
+ * 
+ * 
+ */
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___init); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 186; __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[9]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree.EntityBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -72147,7 +72647,7 @@ static int __pyx_pw_4lxml_5etree_18ElementClassLookup_1__cinit__(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":188
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":201
  *     """
  *     cdef _element_class_lookup_function _lookup_function
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -72160,7 +72660,7 @@ static int __pyx_pf_4lxml_5etree_18ElementClassLookup___cinit__(struct LxmlEleme
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":189
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":202
  *     cdef _element_class_lookup_function _lookup_function
  *     def __cinit__(self):
  *         self._lookup_function = NULL # use default lookup             # <<<<<<<<<<<<<<
@@ -72188,7 +72688,7 @@ static int __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_1__cinit__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":200
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":213
  *     cdef readonly ElementClassLookup fallback
  *     cdef _element_class_lookup_function _fallback_function
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -72201,7 +72701,7 @@ static int __pyx_pf_4lxml_5etree_26FallbackElementClassLookup___cinit__(struct L
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":202
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":215
  *     def __cinit__(self):
  *         # fall back to default lookup
  *         self._fallback_function = _lookupDefaultElementClass             # <<<<<<<<<<<<<<
@@ -72229,7 +72729,7 @@ static int __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__(PyObject
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__fallback,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":204
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":217
  *         self._fallback_function = _lookupDefaultElementClass
  * 
  *     def __init__(self, ElementClassLookup fallback=None):             # <<<<<<<<<<<<<<
@@ -72254,7 +72754,7 @@ static int __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__(PyObject
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __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[9]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -72267,13 +72767,13 @@ static int __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__(PyObject
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.FallbackElementClassLookup.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fallback), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "fallback", 0))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fallback), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "fallback", 0))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_26FallbackElementClassLookup_2__init__(((struct LxmlFallbackElementClassLookup *)__pyx_v_self), __pyx_v_fallback);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -72287,9 +72787,10 @@ static int __pyx_pf_4lxml_5etree_26FallbackElementClassLookup_2__init__(struct L
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":205
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":218
  * 
  *     def __init__(self, ElementClassLookup fallback=None):
  *         if fallback is not None:             # <<<<<<<<<<<<<<
@@ -72297,9 +72798,10 @@ static int __pyx_pf_4lxml_5etree_26FallbackElementClassLookup_2__init__(struct L
  *         else:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_fallback) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":206
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":219
  *     def __init__(self, ElementClassLookup fallback=None):
  *         if fallback is not None:
  *             self._setFallback(fallback)             # <<<<<<<<<<<<<<
@@ -72311,7 +72813,7 @@ static int __pyx_pf_4lxml_5etree_26FallbackElementClassLookup_2__init__(struct L
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":208
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":221
  *             self._setFallback(fallback)
  *         else:
  *             self._fallback_function = _lookupDefaultElementClass             # <<<<<<<<<<<<<<
@@ -72327,7 +72829,7 @@ static int __pyx_pf_4lxml_5etree_26FallbackElementClassLookup_2__init__(struct L
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":210
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":223
  *             self._fallback_function = _lookupDefaultElementClass
  * 
  *     cdef void _setFallback(self, ElementClassLookup lookup):             # <<<<<<<<<<<<<<
@@ -72341,7 +72843,7 @@ static void __pyx_f_4lxml_5etree_26FallbackElementClassLookup__setFallback(struc
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_setFallback", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":213
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":226
  *         u"""Sets the fallback scheme for this lookup method.
  *         """
  *         self.fallback = lookup             # <<<<<<<<<<<<<<
@@ -72354,7 +72856,7 @@ static void __pyx_f_4lxml_5etree_26FallbackElementClassLookup__setFallback(struc
   __Pyx_DECREF(((PyObject *)__pyx_v_self->fallback));
   __pyx_v_self->fallback = __pyx_v_lookup;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":214
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":227
  *         """
  *         self.fallback = lookup
  *         self._fallback_function = lookup._lookup_function             # <<<<<<<<<<<<<<
@@ -72364,17 +72866,17 @@ static void __pyx_f_4lxml_5etree_26FallbackElementClassLookup__setFallback(struc
   __pyx_t_1 = __pyx_v_lookup->_lookup_function;
   __pyx_v_self->_fallback_function = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":215
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":228
  *         self.fallback = lookup
  *         self._fallback_function = lookup._lookup_function
  *         if self._fallback_function is NULL:             # <<<<<<<<<<<<<<
  *             self._fallback_function = _lookupDefaultElementClass
  * 
  */
-  __pyx_t_2 = (__pyx_v_self->_fallback_function == NULL);
+  __pyx_t_2 = ((__pyx_v_self->_fallback_function == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":216
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":229
  *         self._fallback_function = lookup._lookup_function
  *         if self._fallback_function is NULL:
  *             self._fallback_function = _lookupDefaultElementClass             # <<<<<<<<<<<<<<
@@ -72393,13 +72895,13 @@ static void __pyx_f_4lxml_5etree_26FallbackElementClassLookup__setFallback(struc
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("set_fallback (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lookup), __pyx_ptype_4lxml_5etree_ElementClassLookup, 0, "lookup", 0))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_lookup), __pyx_ptype_4lxml_5etree_ElementClassLookup, 0, "lookup", 0))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_26FallbackElementClassLookup_4set_fallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_self), ((struct LxmlElementClassLookup *)__pyx_v_lookup));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -72409,7 +72911,7 @@ static PyObject *__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_5set_fallbac
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":218
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":231
  *             self._fallback_function = _lookupDefaultElementClass
  * 
  *     def set_fallback(self, ElementClassLookup lookup not None):             # <<<<<<<<<<<<<<
@@ -72422,7 +72924,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26FallbackElementClassLookup_4set_fallbac
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("set_fallback", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":223
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":236
  *         Sets the fallback scheme for this lookup method.
  *         """
  *         self._setFallback(lookup)             # <<<<<<<<<<<<<<
@@ -72448,7 +72950,7 @@ static PyObject *__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_8fallback_1_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":198
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":211
  *     Superclass of Element class lookups with additional fallback.
  *     """
  *     cdef readonly ElementClassLookup fallback             # <<<<<<<<<<<<<<
@@ -72472,7 +72974,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26FallbackElementClassLookup_8fallback___
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":225
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":238
  *         self._setFallback(lookup)
  * 
  * cdef inline object _callLookupFallback(FallbackElementClassLookup lookup,             # <<<<<<<<<<<<<<
@@ -72490,7 +72992,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__callLookupFallback(struct L
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_callLookupFallback", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":227
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":240
  * cdef inline object _callLookupFallback(FallbackElementClassLookup lookup,
  *                                        _Document doc, xmlNode* c_node):
  *     return lookup._fallback_function(lookup.fallback, doc, c_node)             # <<<<<<<<<<<<<<
@@ -72500,7 +73002,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__callLookupFallback(struct L
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_1 = ((PyObject *)__pyx_v_lookup->fallback);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_v_lookup->_fallback_function(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_v_lookup->_fallback_function(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -72534,7 +73036,7 @@ static int __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_1__cinit__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":245
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":258
  *     cdef readonly object pi_class
  *     cdef readonly object entity_class
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -72547,7 +73049,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup___cinit__(struct __
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":246
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":259
  *     cdef readonly object entity_class
  *     def __cinit__(self):
  *         self._lookup_function = _lookupDefaultElementClass             # <<<<<<<<<<<<<<
@@ -72578,7 +73080,7 @@ static int __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_3__init__(PyObject
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element,&__pyx_n_s__comment,&__pyx_n_s__pi,&__pyx_n_s__entity,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":248
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":261
  *         self._lookup_function = _lookupDefaultElementClass
  * 
  *     def __init__(self, element=None, comment=None, pi=None, entity=None):             # <<<<<<<<<<<<<<
@@ -72624,7 +73126,7 @@ static int __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_3__init__(PyObject
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 248; __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[9]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -72643,7 +73145,7 @@ static int __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_3__init__(PyObject
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.ElementDefaultClassLookup.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -72658,12 +73160,13 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":249
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":262
  * 
  *     def __init__(self, element=None, comment=None, pi=None, entity=None):
  *         if element is None:             # <<<<<<<<<<<<<<
@@ -72671,9 +73174,10 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  *         elif issubclass(element, ElementBase):
  */
   __pyx_t_1 = (__pyx_v_element == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":250
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":263
  *     def __init__(self, element=None, comment=None, pi=None, entity=None):
  *         if element is None:
  *             self.element_class = _Element             # <<<<<<<<<<<<<<
@@ -72688,17 +73192,18 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":251
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":264
  *         if element is None:
  *             self.element_class = _Element
  *         elif issubclass(element, ElementBase):             # <<<<<<<<<<<<<<
  *             self.element_class = element
  *         else:
  */
-  __pyx_t_1 = PyObject_IsSubclass(__pyx_v_element, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementBase))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_IsSubclass(__pyx_v_element, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementBase))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":252
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":265
  *             self.element_class = _Element
  *         elif issubclass(element, ElementBase):
  *             self.element_class = element             # <<<<<<<<<<<<<<
@@ -72714,7 +73219,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":254
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":267
  *             self.element_class = element
  *         else:
  *             raise TypeError, u"element class must be subclass of ElementBase"             # <<<<<<<<<<<<<<
@@ -72722,11 +73227,11 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  *         if comment is None:
  */
     __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_filename = __pyx_f[9]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":256
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":269
  *             raise TypeError, u"element class must be subclass of ElementBase"
  * 
  *         if comment is None:             # <<<<<<<<<<<<<<
@@ -72734,9 +73239,10 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  *         elif issubclass(comment, CommentBase):
  */
   __pyx_t_1 = (__pyx_v_comment == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":257
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":270
  * 
  *         if comment is None:
  *             self.comment_class = _Comment             # <<<<<<<<<<<<<<
@@ -72751,17 +73257,18 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
     goto __pyx_L4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":258
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":271
  *         if comment is None:
  *             self.comment_class = _Comment
  *         elif issubclass(comment, CommentBase):             # <<<<<<<<<<<<<<
  *             self.comment_class = comment
  *         else:
  */
-  __pyx_t_1 = PyObject_IsSubclass(__pyx_v_comment, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_CommentBase))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_IsSubclass(__pyx_v_comment, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_CommentBase))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":259
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":272
  *             self.comment_class = _Comment
  *         elif issubclass(comment, CommentBase):
  *             self.comment_class = comment             # <<<<<<<<<<<<<<
@@ -72777,7 +73284,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":261
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":274
  *             self.comment_class = comment
  *         else:
  *             raise TypeError, u"comment class must be subclass of CommentBase"             # <<<<<<<<<<<<<<
@@ -72785,11 +73292,11 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  *         if entity is None:
  */
     __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_filename = __pyx_f[9]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":263
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":276
  *             raise TypeError, u"comment class must be subclass of CommentBase"
  * 
  *         if entity is None:             # <<<<<<<<<<<<<<
@@ -72797,9 +73304,10 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  *         elif issubclass(entity, EntityBase):
  */
   __pyx_t_1 = (__pyx_v_entity == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":264
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":277
  * 
  *         if entity is None:
  *             self.entity_class = _Entity             # <<<<<<<<<<<<<<
@@ -72814,17 +73322,18 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
     goto __pyx_L5;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":265
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":278
  *         if entity is None:
  *             self.entity_class = _Entity
  *         elif issubclass(entity, EntityBase):             # <<<<<<<<<<<<<<
  *             self.entity_class = entity
  *         else:
  */
-  __pyx_t_1 = PyObject_IsSubclass(__pyx_v_entity, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_EntityBase))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_IsSubclass(__pyx_v_entity, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_EntityBase))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":266
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":279
  *             self.entity_class = _Entity
  *         elif issubclass(entity, EntityBase):
  *             self.entity_class = entity             # <<<<<<<<<<<<<<
@@ -72840,7 +73349,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":268
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":281
  *             self.entity_class = entity
  *         else:
  *             raise TypeError, u"Entity class must be subclass of EntityBase"             # <<<<<<<<<<<<<<
@@ -72848,11 +73357,11 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  *         if pi is None:
  */
     __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_filename = __pyx_f[9]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":270
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":283
  *             raise TypeError, u"Entity class must be subclass of EntityBase"
  * 
  *         if pi is None:             # <<<<<<<<<<<<<<
@@ -72860,9 +73369,10 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  *         elif issubclass(pi, PIBase):
  */
   __pyx_t_1 = (__pyx_v_pi == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":271
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":284
  * 
  *         if pi is None:
  *             self.pi_class = None # special case, see below             # <<<<<<<<<<<<<<
@@ -72877,17 +73387,18 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
     goto __pyx_L6;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":272
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":285
  *         if pi is None:
  *             self.pi_class = None # special case, see below
  *         elif issubclass(pi, PIBase):             # <<<<<<<<<<<<<<
  *             self.pi_class = pi
  *         else:
  */
-  __pyx_t_1 = PyObject_IsSubclass(__pyx_v_pi, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_PIBase))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_IsSubclass(__pyx_v_pi, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_PIBase))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":273
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":286
  *             self.pi_class = None # special case, see below
  *         elif issubclass(pi, PIBase):
  *             self.pi_class = pi             # <<<<<<<<<<<<<<
@@ -72903,7 +73414,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":275
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":288
  *             self.pi_class = pi
  *         else:
  *             raise TypeError, u"PI class must be subclass of PIBase"             # <<<<<<<<<<<<<<
@@ -72911,7 +73422,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  * cdef object _lookupDefaultElementClass(state, _Document _doc, xmlNode* c_node):
  */
     __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_filename = __pyx_f[9]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L6:;
 
@@ -72936,7 +73447,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_13element_cla
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":241
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":254
  *     accept the respective Element classes.
  *     """
  *     cdef readonly object element_class             # <<<<<<<<<<<<<<
@@ -72971,7 +73482,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_13comment_cla
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":242
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":255
  *     """
  *     cdef readonly object element_class
  *     cdef readonly object comment_class             # <<<<<<<<<<<<<<
@@ -73006,7 +73517,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_8pi_class_1__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":243
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":256
  *     cdef readonly object element_class
  *     cdef readonly object comment_class
  *     cdef readonly object pi_class             # <<<<<<<<<<<<<<
@@ -73041,7 +73552,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_12entity_clas
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":244
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":257
  *     cdef readonly object comment_class
  *     cdef readonly object pi_class
  *     cdef readonly object entity_class             # <<<<<<<<<<<<<<
@@ -73065,7 +73576,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_12entity_clas
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":277
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":290
  *             raise TypeError, u"PI class must be subclass of PIBase"
  * 
  * cdef object _lookupDefaultElementClass(state, _Document _doc, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -73086,17 +73597,17 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_lookupDefaultElementClass", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":279
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":292
  * cdef object _lookupDefaultElementClass(state, _Document _doc, xmlNode* c_node):
  *     u"Trivial class lookup function that always returns the default class."
  *     if c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
  *         if state is not None:
  *             return (<ElementDefaultClassLookup>state).element_class
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":280
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":293
  *     u"Trivial class lookup function that always returns the default class."
  *     if c_node.type == tree.XML_ELEMENT_NODE:
  *         if state is not None:             # <<<<<<<<<<<<<<
@@ -73104,9 +73615,10 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
  *         else:
  */
     __pyx_t_1 = (__pyx_v_state != Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":281
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":294
  *     if c_node.type == tree.XML_ELEMENT_NODE:
  *         if state is not None:
  *             return (<ElementDefaultClassLookup>state).element_class             # <<<<<<<<<<<<<<
@@ -73121,7 +73633,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":283
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":296
  *             return (<ElementDefaultClassLookup>state).element_class
  *         else:
  *             return _Element             # <<<<<<<<<<<<<<
@@ -73137,27 +73649,28 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":284
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":297
  *         else:
  *             return _Element
  *     elif c_node.type == tree.XML_COMMENT_NODE:             # <<<<<<<<<<<<<<
  *         if state is not None:
  *             return (<ElementDefaultClassLookup>state).comment_class
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_COMMENT_NODE);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_node->type == XML_COMMENT_NODE) != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":285
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":298
  *             return _Element
  *     elif c_node.type == tree.XML_COMMENT_NODE:
  *         if state is not None:             # <<<<<<<<<<<<<<
  *             return (<ElementDefaultClassLookup>state).comment_class
  *         else:
  */
-    __pyx_t_1 = (__pyx_v_state != Py_None);
+    __pyx_t_2 = (__pyx_v_state != Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":286
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":299
  *     elif c_node.type == tree.XML_COMMENT_NODE:
  *         if state is not None:
  *             return (<ElementDefaultClassLookup>state).comment_class             # <<<<<<<<<<<<<<
@@ -73172,7 +73685,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":288
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":301
  *             return (<ElementDefaultClassLookup>state).comment_class
  *         else:
  *             return _Comment             # <<<<<<<<<<<<<<
@@ -73188,17 +73701,17 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":289
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":302
  *         else:
  *             return _Comment
  *     elif c_node.type == tree.XML_ENTITY_REF_NODE:             # <<<<<<<<<<<<<<
  *         if state is not None:
  *             return (<ElementDefaultClassLookup>state).entity_class
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ENTITY_REF_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ENTITY_REF_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":290
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":303
  *             return _Comment
  *     elif c_node.type == tree.XML_ENTITY_REF_NODE:
  *         if state is not None:             # <<<<<<<<<<<<<<
@@ -73206,9 +73719,10 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
  *         else:
  */
     __pyx_t_1 = (__pyx_v_state != Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":291
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":304
  *     elif c_node.type == tree.XML_ENTITY_REF_NODE:
  *         if state is not None:
  *             return (<ElementDefaultClassLookup>state).entity_class             # <<<<<<<<<<<<<<
@@ -73223,7 +73737,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":293
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":306
  *             return (<ElementDefaultClassLookup>state).entity_class
  *         else:
  *             return _Entity             # <<<<<<<<<<<<<<
@@ -73239,83 +73753,83 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":294
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":307
  *         else:
  *             return _Entity
  *     elif c_node.type == tree.XML_PI_NODE:             # <<<<<<<<<<<<<<
  *         if state is None or (<ElementDefaultClassLookup>state).pi_class is None:
  *             # special case XSLT-PI
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_PI_NODE);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_node->type == XML_PI_NODE) != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":295
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":308
  *             return _Entity
  *     elif c_node.type == tree.XML_PI_NODE:
  *         if state is None or (<ElementDefaultClassLookup>state).pi_class is None:             # <<<<<<<<<<<<<<
  *             # special case XSLT-PI
  *             if c_node.name is not NULL and c_node.content is not NULL:
  */
-    __pyx_t_1 = (__pyx_v_state == Py_None);
-    if (!__pyx_t_1) {
-      __pyx_t_2 = (((struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)__pyx_v_state)->pi_class == Py_None);
-      __pyx_t_3 = __pyx_t_2;
+    __pyx_t_2 = (__pyx_v_state == Py_None);
+    if (!(__pyx_t_2 != 0)) {
+      __pyx_t_1 = (((struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)__pyx_v_state)->pi_class == Py_None);
+      __pyx_t_3 = (__pyx_t_1 != 0);
     } else {
-      __pyx_t_3 = __pyx_t_1;
+      __pyx_t_3 = (__pyx_t_2 != 0);
     }
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":297
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":310
  *         if state is None or (<ElementDefaultClassLookup>state).pi_class is None:
  *             # special case XSLT-PI
  *             if c_node.name is not NULL and c_node.content is not NULL:             # <<<<<<<<<<<<<<
  *                 if tree.xmlStrcmp(c_node.name, <unsigned char*>"xml-stylesheet") == 0:
  *                     if tree.xmlStrstr(c_node.content, <unsigned char*>"text/xsl") is not NULL or \
  */
-      __pyx_t_3 = (__pyx_v_c_node->name != NULL);
+      __pyx_t_3 = ((__pyx_v_c_node->name != NULL) != 0);
       if (__pyx_t_3) {
-        __pyx_t_1 = (__pyx_v_c_node->content != NULL);
-        __pyx_t_2 = __pyx_t_1;
+        __pyx_t_2 = ((__pyx_v_c_node->content != NULL) != 0);
+        __pyx_t_1 = __pyx_t_2;
       } else {
-        __pyx_t_2 = __pyx_t_3;
+        __pyx_t_1 = __pyx_t_3;
       }
-      if (__pyx_t_2) {
+      if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":298
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":311
  *             # special case XSLT-PI
  *             if c_node.name is not NULL and c_node.content is not NULL:
  *                 if tree.xmlStrcmp(c_node.name, <unsigned char*>"xml-stylesheet") == 0:             # <<<<<<<<<<<<<<
  *                     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_148))) == 0);
-        if (__pyx_t_2) {
+        __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_node->name, ((unsigned char *)((unsigned char *)__pyx_k_148))) == 0) != 0);
+        if (__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":299
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":312
  *             if c_node.name is not NULL and c_node.content is not NULL:
  *                 if tree.xmlStrcmp(c_node.name, <unsigned char*>"xml-stylesheet") == 0:
  *                     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:
  *                         return _XSLTProcessingInstruction
  */
-          __pyx_t_2 = (xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_149))) != NULL);
-          if (!__pyx_t_2) {
+          __pyx_t_1 = ((xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_149))) != NULL) != 0);
+          if (!__pyx_t_1) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":300
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":313
  *                 if tree.xmlStrcmp(c_node.name, <unsigned char*>"xml-stylesheet") == 0:
  *                     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:             # <<<<<<<<<<<<<<
  *                         return _XSLTProcessingInstruction
  *             return _ProcessingInstruction
  */
-            __pyx_t_3 = (xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_150))) != NULL);
-            __pyx_t_1 = __pyx_t_3;
+            __pyx_t_3 = ((xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_150))) != NULL) != 0);
+            __pyx_t_2 = __pyx_t_3;
           } else {
-            __pyx_t_1 = __pyx_t_2;
+            __pyx_t_2 = __pyx_t_1;
           }
-          if (__pyx_t_1) {
+          if (__pyx_t_2) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":301
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":314
  *                     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:
  *                         return _XSLTProcessingInstruction             # <<<<<<<<<<<<<<
@@ -73336,7 +73850,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
       }
       __pyx_L8:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":302
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":315
  *                            tree.xmlStrstr(c_node.content, <unsigned char*>"text/xml") is not NULL:
  *                         return _XSLTProcessingInstruction
  *             return _ProcessingInstruction             # <<<<<<<<<<<<<<
@@ -73351,7 +73865,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":304
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":317
  *             return _ProcessingInstruction
  *         else:
  *             return (<ElementDefaultClassLookup>state).pi_class             # <<<<<<<<<<<<<<
@@ -73368,7 +73882,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":306
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":319
  *             return (<ElementDefaultClassLookup>state).pi_class
  *     else:
  *         assert 0, u"Unknown node type: %s" % c_node.type             # <<<<<<<<<<<<<<
@@ -73377,14 +73891,14 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
  */
     #ifndef CYTHON_WITHOUT_ASSERTIONS
     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_t_4 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __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_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_151), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 319; __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));
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      {__pyx_filename = __pyx_f[9]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[9]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #endif
   }
@@ -73417,7 +73931,7 @@ static int __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_1__cinit__(P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":329
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":342
  *     cdef const_xmlChar* _c_ns
  *     cdef const_xmlChar* _c_name
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -73430,7 +73944,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup___cinit__(st
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":330
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":343
  *     cdef const_xmlChar* _c_name
  *     def __cinit__(self):
  *         self._lookup_function = _attribute_class_lookup             # <<<<<<<<<<<<<<
@@ -73460,7 +73974,7 @@ static int __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_3__init__(Py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__attribute_name,&__pyx_n_s__class_mapping,&__pyx_n_s__fallback,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":333
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":346
  * 
  *     def __init__(self, attribute_name, class_mapping,
  *                  ElementClassLookup fallback=None):             # <<<<<<<<<<<<<<
@@ -73486,7 +74000,7 @@ static int __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_3__init__(Py
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__class_mapping)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (kw_args > 0) {
@@ -73495,7 +74009,7 @@ static int __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_3__init__(Py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 332; __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[9]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -73512,13 +74026,13 @@ static int __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_3__init__(Py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.AttributeBasedElementClassLookup.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fallback), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "fallback", 0))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_fallback), __pyx_ptype_4lxml_5etree_ElementClassLookup, 1, "fallback", 0))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(((struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)__pyx_v_self), __pyx_v_attribute_name, __pyx_v_class_mapping, __pyx_v_fallback);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -73528,7 +74042,7 @@ static int __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_3__init__(Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":332
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":345
  *         self._lookup_function = _attribute_class_lookup
  * 
  *     def __init__(self, attribute_name, class_mapping,             # <<<<<<<<<<<<<<
@@ -73547,19 +74061,20 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   PyObject *__pyx_t_4 = NULL;
   PyObject *(*__pyx_t_5)(PyObject *);
   int __pyx_t_6;
+  int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":334
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":347
  *     def __init__(self, attribute_name, class_mapping,
  *                  ElementClassLookup fallback=None):
  *         self._pytag = _getNsTag(attribute_name)             # <<<<<<<<<<<<<<
  *         ns, name = self._pytag
  *         if ns is None:
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_attribute_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_attribute_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_pytag);
@@ -73567,7 +74082,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   __pyx_v_self->_pytag = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":335
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":348
  *                  ElementClassLookup fallback=None):
  *         self._pytag = _getNsTag(attribute_name)
  *         ns, name = self._pytag             # <<<<<<<<<<<<<<
@@ -73586,7 +74101,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[9]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[9]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -73599,16 +74114,16 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
@@ -73616,7 +74131,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
     __Pyx_GOTREF(__pyx_t_2);
     index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_3);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = NULL;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L4_unpacking_done;
@@ -73624,7 +74139,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_t_5 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[9]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[9]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_ns = __pyx_t_2;
@@ -73632,7 +74147,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   __pyx_v_name = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":336
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":349
  *         self._pytag = _getNsTag(attribute_name)
  *         ns, name = self._pytag
  *         if ns is None:             # <<<<<<<<<<<<<<
@@ -73640,9 +74155,10 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
  *         else:
  */
   __pyx_t_6 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_6) {
+  __pyx_t_7 = (__pyx_t_6 != 0);
+  if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":337
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":350
  *         ns, name = self._pytag
  *         if ns is None:
  *             self._c_ns = NULL             # <<<<<<<<<<<<<<
@@ -73654,7 +74170,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":339
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":352
  *             self._c_ns = NULL
  *         else:
  *             self._c_ns = _xcstr(ns)             # <<<<<<<<<<<<<<
@@ -73665,7 +74181,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":340
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":353
  *         else:
  *             self._c_ns = _xcstr(ns)
  *         self._c_name = _xcstr(name)             # <<<<<<<<<<<<<<
@@ -73674,19 +74190,19 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
  */
   __pyx_v_self->_c_name = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":341
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":354
  *             self._c_ns = _xcstr(ns)
  *         self._c_name = _xcstr(name)
  *         self._class_mapping = dict(class_mapping)             # <<<<<<<<<<<<<<
  * 
  *         FallbackElementClassLookup.__init__(self, fallback)
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_class_mapping);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_class_mapping);
   __Pyx_GIVEREF(__pyx_v_class_mapping);
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_GIVEREF(__pyx_t_3);
@@ -73695,16 +74211,16 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   __pyx_v_self->_class_mapping = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":343
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":356
  *         self._class_mapping = dict(class_mapping)
  * 
  *         FallbackElementClassLookup.__init__(self, fallback)             # <<<<<<<<<<<<<<
  * 
  * cdef object _attribute_class_lookup(state, _Document doc, xmlNode* c_node):
  */
-  __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_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 = 356; __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_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
@@ -73712,7 +74228,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   __Pyx_INCREF(((PyObject *)__pyx_v_fallback));
   PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_fallback));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_fallback));
-  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -73734,7 +74250,7 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":345
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":358
  *         FallbackElementClassLookup.__init__(self, fallback)
  * 
  * cdef object _attribute_class_lookup(state, _Document doc, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -73746,16 +74262,19 @@ static PyObject *__pyx_f_4lxml_5etree__attribute_class_lookup(PyObject *__pyx_v_
   struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *__pyx_v_lookup = 0;
   PyObject *__pyx_v_dict_result;
   PyObject *__pyx_v_value = NULL;
+  PyObject *__pyx_v_cls = NULL;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_attribute_class_lookup", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":349
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":362
  *     cdef python.PyObject* dict_result
  * 
  *     lookup = <AttributeBasedElementClassLookup>state             # <<<<<<<<<<<<<<
@@ -73765,60 +74284,105 @@ static PyObject *__pyx_f_4lxml_5etree__attribute_class_lookup(PyObject *__pyx_v_
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)__pyx_v_state)));
   __pyx_v_lookup = ((struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)__pyx_v_state);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":350
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":363
  * 
  *     lookup = <AttributeBasedElementClassLookup>state
  *     if c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
  *         value = _attributeValueFromNsName(
  *             c_node, lookup._c_ns, lookup._c_name)
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":352
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":365
  *     if c_node.type == tree.XML_ELEMENT_NODE:
  *         value = _attributeValueFromNsName(
  *             c_node, lookup._c_ns, lookup._c_name)             # <<<<<<<<<<<<<<
  *         dict_result = python.PyDict_GetItem(lookup._class_mapping, value)
  *         if dict_result is not NULL:
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__attributeValueFromNsName(__pyx_v_c_node, __pyx_v_lookup->_c_ns, __pyx_v_lookup->_c_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__attributeValueFromNsName(__pyx_v_c_node, __pyx_v_lookup->_c_ns, __pyx_v_lookup->_c_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_value = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":353
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":366
  *         value = _attributeValueFromNsName(
  *             c_node, lookup._c_ns, lookup._c_name)
  *         dict_result = python.PyDict_GetItem(lookup._class_mapping, value)             # <<<<<<<<<<<<<<
  *         if dict_result is not NULL:
- *             return <object>dict_result
+ *             cls = <object>dict_result
  */
     __pyx_t_2 = __pyx_v_lookup->_class_mapping;
     __Pyx_INCREF(__pyx_t_2);
     __pyx_v_dict_result = PyDict_GetItem(__pyx_t_2, __pyx_v_value);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":354
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":367
  *             c_node, lookup._c_ns, lookup._c_name)
  *         dict_result = python.PyDict_GetItem(lookup._class_mapping, value)
  *         if dict_result is not NULL:             # <<<<<<<<<<<<<<
- *             return <object>dict_result
- *     return _callLookupFallback(lookup, doc, c_node)
+ *             cls = <object>dict_result
+ *             if not isinstance(cls, type):
  */
-    __pyx_t_1 = (__pyx_v_dict_result != NULL);
+    __pyx_t_1 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":355
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":368
  *         dict_result = python.PyDict_GetItem(lookup._class_mapping, value)
  *         if dict_result is not NULL:
- *             return <object>dict_result             # <<<<<<<<<<<<<<
+ *             cls = <object>dict_result             # <<<<<<<<<<<<<<
+ *             if not isinstance(cls, type):
+ *                 raise TypeError("class lookup must return class, got %s"
+ */
+      __Pyx_INCREF(((PyObject *)__pyx_v_dict_result));
+      __pyx_v_cls = ((PyObject *)__pyx_v_dict_result);
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":369
+ *         if dict_result is not NULL:
+ *             cls = <object>dict_result
+ *             if not isinstance(cls, type):             # <<<<<<<<<<<<<<
+ *                 raise TypeError("class lookup must return class, got %s"
+ *                                 % type(cls))
+ */
+      __pyx_t_1 = PyType_Check(__pyx_v_cls); 
+      __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);
+      if (__pyx_t_3) {
+
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":371
+ *             if not isinstance(cls, type):
+ *                 raise TypeError("class lookup must return class, got %s"
+ *                                 % type(cls))             # <<<<<<<<<<<<<<
+ *             return cls
+ *     return _callLookupFallback(lookup, doc, c_node)
+ */
+        __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_152), ((PyObject *)Py_TYPE(__pyx_v_cls))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 370; __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));
+        __pyx_t_2 = 0;
+        __pyx_t_2 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_2);
+        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+        __Pyx_Raise(__pyx_t_2, 0, 0, 0);
+        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+        {__pyx_filename = __pyx_f[9]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        goto __pyx_L5;
+      }
+      __pyx_L5:;
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":372
+ *                 raise TypeError("class lookup must return class, got %s"
+ *                                 % type(cls))
+ *             return cls             # <<<<<<<<<<<<<<
  *     return _callLookupFallback(lookup, doc, c_node)
  * 
  */
       __Pyx_XDECREF(__pyx_r);
-      __Pyx_INCREF(((PyObject *)__pyx_v_dict_result));
-      __pyx_r = ((PyObject *)__pyx_v_dict_result);
+      __Pyx_INCREF(__pyx_v_cls);
+      __pyx_r = __pyx_v_cls;
       goto __pyx_L0;
       goto __pyx_L4;
     }
@@ -73827,15 +74391,15 @@ static PyObject *__pyx_f_4lxml_5etree__attribute_class_lookup(PyObject *__pyx_v_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":356
- *         if dict_result is not NULL:
- *             return <object>dict_result
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":373
+ *                                 % type(cls))
+ *             return cls
  *     return _callLookupFallback(lookup, doc, c_node)             # <<<<<<<<<<<<<<
  * 
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -73845,11 +74409,13 @@ static PyObject *__pyx_f_4lxml_5etree__attribute_class_lookup(PyObject *__pyx_v_
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._attribute_class_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
   __Pyx_XDECREF((PyObject *)__pyx_v_lookup);
   __Pyx_XDECREF(__pyx_v_value);
+  __Pyx_XDECREF(__pyx_v_cls);
   __Pyx_XGIVEREF(__pyx_r);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
@@ -73869,7 +74435,7 @@ static int __pyx_pw_4lxml_5etree_29ParserBasedElementClassLookup_1__cinit__(PyOb
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":366
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":383
  *     Element class lookup based on the XML parser.
  *     """
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -73882,7 +74448,7 @@ static int __pyx_pf_4lxml_5etree_29ParserBasedElementClassLookup___cinit__(struc
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":367
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":384
  *     """
  *     def __cinit__(self):
  *         self._lookup_function = _parser_class_lookup             # <<<<<<<<<<<<<<
@@ -73896,7 +74462,7 @@ static int __pyx_pf_4lxml_5etree_29ParserBasedElementClassLookup___cinit__(struc
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":369
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":386
  *         self._lookup_function = _parser_class_lookup
  * 
  * cdef object _parser_class_lookup(state, _Document doc, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -73908,14 +74474,15 @@ static PyObject *__pyx_f_4lxml_5etree__parser_class_lookup(PyObject *__pyx_v_sta
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_parser_class_lookup", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":370
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":387
  * 
  * cdef object _parser_class_lookup(state, _Document doc, xmlNode* c_node):
  *     if doc._parser._class_lookup is not None:             # <<<<<<<<<<<<<<
@@ -73923,9 +74490,10 @@ static PyObject *__pyx_f_4lxml_5etree__parser_class_lookup(PyObject *__pyx_v_sta
  *             doc._parser._class_lookup, doc, c_node)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_doc->_parser->_class_lookup) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":371
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":388
  * cdef object _parser_class_lookup(state, _Document doc, xmlNode* c_node):
  *     if doc._parser._class_lookup is not None:
  *         return doc._parser._class_lookup._lookup_function(             # <<<<<<<<<<<<<<
@@ -73934,26 +74502,26 @@ static PyObject *__pyx_f_4lxml_5etree__parser_class_lookup(PyObject *__pyx_v_sta
  */
     __Pyx_XDECREF(__pyx_r);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":372
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":389
  *     if doc._parser._class_lookup is not None:
  *         return doc._parser._class_lookup._lookup_function(
  *             doc._parser._class_lookup, doc, c_node)             # <<<<<<<<<<<<<<
  *     return _callLookupFallback(<FallbackElementClassLookup>state, doc, c_node)
  * 
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_doc->_parser->_class_lookup);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_3 = __pyx_v_doc->_parser->_class_lookup->_lookup_function(__pyx_t_2, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_doc->_parser->_class_lookup);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = __pyx_v_doc->_parser->_class_lookup->_lookup_function(__pyx_t_3, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_r = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":373
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":390
  *         return doc._parser._class_lookup._lookup_function(
  *             doc._parser._class_lookup, doc, c_node)
  *     return _callLookupFallback(<FallbackElementClassLookup>state, doc, c_node)             # <<<<<<<<<<<<<<
@@ -73961,17 +74529,17 @@ static PyObject *__pyx_f_4lxml_5etree__parser_class_lookup(PyObject *__pyx_v_sta
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_state), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __pyx_r = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_state), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._parser_class_lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -73994,7 +74562,7 @@ static int __pyx_pw_4lxml_5etree_24CustomElementClassLookup_1__cinit__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":395
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":412
  *     If you return None from this method, the fallback will be called.
  *     """
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -74007,7 +74575,7 @@ static int __pyx_pf_4lxml_5etree_24CustomElementClassLookup___cinit__(struct __p
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":396
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":413
  *     """
  *     def __cinit__(self):
  *         self._lookup_function = _custom_class_lookup             # <<<<<<<<<<<<<<
@@ -74057,21 +74625,21 @@ static PyObject *__pyx_pw_4lxml_5etree_24CustomElementClassLookup_3lookup(PyObje
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__doc)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 1); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 1); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__namespace)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 2); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 2); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  3:
         if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__name)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 3); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, 3); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
       goto __pyx_L5_argtuple_error;
@@ -74088,7 +74656,7 @@ static PyObject *__pyx_pw_4lxml_5etree_24CustomElementClassLookup_3lookup(PyObje
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("lookup", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.CustomElementClassLookup.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -74099,7 +74667,7 @@ static PyObject *__pyx_pw_4lxml_5etree_24CustomElementClassLookup_3lookup(PyObje
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":398
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":415
  *         self._lookup_function = _custom_class_lookup
  * 
  *     def lookup(self, type, doc, namespace, name):             # <<<<<<<<<<<<<<
@@ -74112,7 +74680,7 @@ static PyObject *__pyx_pf_4lxml_5etree_24CustomElementClassLookup_2lookup(CYTHON
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("lookup", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":400
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":417
  *     def lookup(self, type, doc, namespace, name):
  *         u"lookup(self, type, doc, namespace, name)"
  *         return None             # <<<<<<<<<<<<<<
@@ -74131,7 +74699,7 @@ static PyObject *__pyx_pf_4lxml_5etree_24CustomElementClassLookup_2lookup(CYTHON
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":402
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":419
  *         return None
  * 
  * cdef object _custom_class_lookup(state, _Document doc, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -74152,12 +74720,13 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_custom_class_lookup", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":405
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":422
  *     cdef CustomElementClassLookup lookup
  * 
  *     lookup = <CustomElementClassLookup>state             # <<<<<<<<<<<<<<
@@ -74167,17 +74736,17 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree_CustomElementClassLookup *)__pyx_v_state)));
   __pyx_v_lookup = ((struct __pyx_obj_4lxml_5etree_CustomElementClassLookup *)__pyx_v_state);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":407
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":424
  *     lookup = <CustomElementClassLookup>state
  * 
  *     if c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
  *         element_type = u"element"
  *     elif c_node.type == tree.XML_COMMENT_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":408
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":425
  * 
  *     if c_node.type == tree.XML_ELEMENT_NODE:
  *         element_type = u"element"             # <<<<<<<<<<<<<<
@@ -74189,17 +74758,17 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":409
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":426
  *     if c_node.type == tree.XML_ELEMENT_NODE:
  *         element_type = u"element"
  *     elif c_node.type == tree.XML_COMMENT_NODE:             # <<<<<<<<<<<<<<
  *         element_type = u"comment"
  *     elif c_node.type == tree.XML_PI_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_COMMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_COMMENT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":410
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":427
  *         element_type = u"element"
  *     elif c_node.type == tree.XML_COMMENT_NODE:
  *         element_type = u"comment"             # <<<<<<<<<<<<<<
@@ -74211,17 +74780,17 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":411
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":428
  *     elif c_node.type == tree.XML_COMMENT_NODE:
  *         element_type = u"comment"
  *     elif c_node.type == tree.XML_PI_NODE:             # <<<<<<<<<<<<<<
  *         element_type = u"PI"
  *     elif c_node.type == tree.XML_ENTITY_REF_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_PI_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_PI_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":412
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":429
  *         element_type = u"comment"
  *     elif c_node.type == tree.XML_PI_NODE:
  *         element_type = u"PI"             # <<<<<<<<<<<<<<
@@ -74233,17 +74802,17 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":413
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":430
  *     elif c_node.type == tree.XML_PI_NODE:
  *         element_type = u"PI"
  *     elif c_node.type == tree.XML_ENTITY_REF_NODE:             # <<<<<<<<<<<<<<
  *         element_type = u"entity"
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ENTITY_REF_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ENTITY_REF_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":414
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":431
  *         element_type = u"PI"
  *     elif c_node.type == tree.XML_ENTITY_REF_NODE:
  *         element_type = u"entity"             # <<<<<<<<<<<<<<
@@ -74256,7 +74825,7 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":416
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":433
  *         element_type = u"entity"
  *     else:
  *         element_type = u"element"             # <<<<<<<<<<<<<<
@@ -74268,17 +74837,17 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":417
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":434
  *     else:
  *         element_type = u"element"
  *     if c_node.name is NULL:             # <<<<<<<<<<<<<<
  *         name = None
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_node->name == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node->name == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":418
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":435
  *         element_type = u"element"
  *     if c_node.name is NULL:
  *         name = None             # <<<<<<<<<<<<<<
@@ -74291,21 +74860,21 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":420
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":437
  *         name = None
  *     else:
  *         name = funicode(c_node.name)             # <<<<<<<<<<<<<<
  *     c_str = tree._getNs(c_node)
  *     ns = funicode(c_str) if c_str is not NULL else None
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_name = __pyx_t_2;
     __pyx_t_2 = 0;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":421
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":438
  *     else:
  *         name = funicode(c_node.name)
  *     c_str = tree._getNs(c_node)             # <<<<<<<<<<<<<<
@@ -74314,15 +74883,15 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
  */
   __pyx_v_c_str = _getNs(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":422
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":439
  *         name = funicode(c_node.name)
  *     c_str = tree._getNs(c_node)
  *     ns = funicode(c_str) if c_str is not NULL else None             # <<<<<<<<<<<<<<
  * 
  *     cls = lookup.lookup(element_type, doc, ns, name)
  */
-  if ((__pyx_v_c_str != NULL)) {
-    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_str); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (((__pyx_v_c_str != NULL) != 0)) {
+    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_str); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -74333,16 +74902,16 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":424
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":441
  *     ns = funicode(c_str) if c_str is not NULL else None
  * 
  *     cls = lookup.lookup(element_type, doc, ns, name)             # <<<<<<<<<<<<<<
  *     if cls is not None:
- *         return cls
+ *         if not isinstance(cls, type):
  */
-  __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_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 = 441; __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_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_v_element_type));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_element_type));
@@ -74356,26 +74925,62 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   __Pyx_INCREF(__pyx_v_name);
   PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_name);
   __Pyx_GIVEREF(__pyx_v_name);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __pyx_v_cls = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":425
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":442
  * 
  *     cls = lookup.lookup(element_type, doc, ns, name)
  *     if cls is not None:             # <<<<<<<<<<<<<<
- *         return cls
- *     return _callLookupFallback(lookup, doc, c_node)
+ *         if not isinstance(cls, type):
+ *             raise TypeError("class lookup must return class, got %s"
  */
   __pyx_t_1 = (__pyx_v_cls != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_5 = (__pyx_t_1 != 0);
+  if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":426
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":443
  *     cls = lookup.lookup(element_type, doc, ns, name)
  *     if cls is not None:
+ *         if not isinstance(cls, type):             # <<<<<<<<<<<<<<
+ *             raise TypeError("class lookup must return class, got %s"
+ *                             % type(cls))
+ */
+    __pyx_t_5 = PyType_Check(__pyx_v_cls); 
+    __pyx_t_1 = ((!(__pyx_t_5 != 0)) != 0);
+    if (__pyx_t_1) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":445
+ *         if not isinstance(cls, type):
+ *             raise TypeError("class lookup must return class, got %s"
+ *                             % type(cls))             # <<<<<<<<<<<<<<
+ *         return cls
+ *     return _callLookupFallback(lookup, doc, c_node)
+ */
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_152), ((PyObject *)Py_TYPE(__pyx_v_cls))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
+      __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
+      __pyx_t_4 = 0;
+      __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      {__pyx_filename = __pyx_f[9]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      goto __pyx_L6;
+    }
+    __pyx_L6:;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":446
+ *             raise TypeError("class lookup must return class, got %s"
+ *                             % type(cls))
  *         return cls             # <<<<<<<<<<<<<<
  *     return _callLookupFallback(lookup, doc, c_node)
  * 
@@ -74388,15 +74993,15 @@ static PyObject *__pyx_f_4lxml_5etree__custom_class_lookup(PyObject *__pyx_v_sta
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":427
- *     if cls is not None:
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":447
+ *                             % type(cls))
  *         return cls
  *     return _callLookupFallback(lookup, doc, c_node)             # <<<<<<<<<<<<<<
  * 
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __pyx_r = __pyx_t_4;
   __pyx_t_4 = 0;
@@ -74435,7 +75040,7 @@ static int __pyx_pw_4lxml_5etree_24PythonElementClassLookup_1__cinit__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":476
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":496
  *     See http://codespeak.net/lxml/element_classes.html
  *     """
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -74448,7 +75053,7 @@ static int __pyx_pf_4lxml_5etree_24PythonElementClassLookup___cinit__(struct __p
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":477
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":497
  *     """
  *     def __cinit__(self):
  *         self._lookup_function = _python_class_lookup             # <<<<<<<<<<<<<<
@@ -74494,11 +75099,11 @@ static PyObject *__pyx_pw_4lxml_5etree_24PythonElementClassLookup_3lookup(PyObje
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__element)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, 1); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, 1); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lookup") < 0)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -74511,7 +75116,7 @@ static PyObject *__pyx_pw_4lxml_5etree_24PythonElementClassLookup_3lookup(PyObje
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("lookup", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.PythonElementClassLookup.lookup", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -74522,7 +75127,7 @@ static PyObject *__pyx_pw_4lxml_5etree_24PythonElementClassLookup_3lookup(PyObje
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":479
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":499
  *         self._lookup_function = _python_class_lookup
  * 
  *     def lookup(self, doc, element):             # <<<<<<<<<<<<<<
@@ -74535,7 +75140,7 @@ static PyObject *__pyx_pf_4lxml_5etree_24PythonElementClassLookup_2lookup(CYTHON
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("lookup", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":484
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":504
  *         Override this method to implement your own lookup scheme.
  *         """
  *         return None             # <<<<<<<<<<<<<<
@@ -74554,7 +75159,7 @@ static PyObject *__pyx_pf_4lxml_5etree_24PythonElementClassLookup_2lookup(CYTHON
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":486
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":506
  *         return None
  * 
  * cdef object _python_class_lookup(state, _Document doc, tree.xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -74572,12 +75177,13 @@ static PyObject *__pyx_f_4lxml_5etree__python_class_lookup(PyObject *__pyx_v_sta
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_python_class_lookup", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":489
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":509
  *     cdef PythonElementClassLookup lookup
  *     cdef _ReadOnlyElementProxy proxy
  *     lookup = <PythonElementClassLookup>state             # <<<<<<<<<<<<<<
@@ -74587,29 +75193,29 @@ static PyObject *__pyx_f_4lxml_5etree__python_class_lookup(PyObject *__pyx_v_sta
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree_PythonElementClassLookup *)__pyx_v_state)));
   __pyx_v_lookup = ((struct __pyx_obj_4lxml_5etree_PythonElementClassLookup *)__pyx_v_state);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":491
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":511
  *     lookup = <PythonElementClassLookup>state
  * 
  *     proxy = _newReadOnlyProxy(None, c_node)             # <<<<<<<<<<<<<<
  *     cls = lookup.lookup(doc, proxy)
  *     _freeReadOnlyProxies(proxy)
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None), __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None), __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 511; __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__ReadOnlyElementProxy))))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ReadOnlyElementProxy))))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":492
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":512
  * 
  *     proxy = _newReadOnlyProxy(None, c_node)
  *     cls = lookup.lookup(doc, proxy)             # <<<<<<<<<<<<<<
  *     _freeReadOnlyProxies(proxy)
  * 
  */
-  __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_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 = 512; __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_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_doc));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_doc));
@@ -74617,37 +75223,73 @@ static PyObject *__pyx_f_4lxml_5etree__python_class_lookup(PyObject *__pyx_v_sta
   __Pyx_INCREF(((PyObject *)__pyx_v_proxy));
   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_proxy));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_proxy));
-  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 492; __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[9]; __pyx_lineno = 512; __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;
   __pyx_v_cls = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":493
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":513
  *     proxy = _newReadOnlyProxy(None, c_node)
  *     cls = lookup.lookup(doc, proxy)
  *     _freeReadOnlyProxies(proxy)             # <<<<<<<<<<<<<<
  * 
  *     if cls is not None:
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__freeReadOnlyProxies(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_v_proxy)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__freeReadOnlyProxies(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_v_proxy)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 513; __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/classlookup.pxi":495
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":515
  *     _freeReadOnlyProxies(proxy)
  * 
  *     if cls is not None:             # <<<<<<<<<<<<<<
- *         return cls
- *     return _callLookupFallback(lookup, doc, c_node)
+ *         if not isinstance(cls, type):
+ *             raise TypeError("class lookup must return class, got %s"
  */
   __pyx_t_4 = (__pyx_v_cls != Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":496
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":516
  * 
  *     if cls is not None:
+ *         if not isinstance(cls, type):             # <<<<<<<<<<<<<<
+ *             raise TypeError("class lookup must return class, got %s"
+ *                             % type(cls))
+ */
+    __pyx_t_5 = PyType_Check(__pyx_v_cls); 
+    __pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
+    if (__pyx_t_4) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":518
+ *         if not isinstance(cls, type):
+ *             raise TypeError("class lookup must return class, got %s"
+ *                             % type(cls))             # <<<<<<<<<<<<<<
+ *         return cls
+ *     return _callLookupFallback(lookup, doc, c_node)
+ */
+      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_152), ((PyObject *)Py_TYPE(__pyx_v_cls))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 518; __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[9]; __pyx_lineno = 517; __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_TypeError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 517; __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[9]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      goto __pyx_L4;
+    }
+    __pyx_L4:;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":519
+ *             raise TypeError("class lookup must return class, got %s"
+ *                             % type(cls))
  *         return cls             # <<<<<<<<<<<<<<
  *     return _callLookupFallback(lookup, doc, c_node)
  * 
@@ -74660,15 +75302,15 @@ static PyObject *__pyx_f_4lxml_5etree__python_class_lookup(PyObject *__pyx_v_sta
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":497
- *     if cls is not None:
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":520
+ *                             % type(cls))
  *         return cls
  *     return _callLookupFallback(lookup, doc, c_node)             # <<<<<<<<<<<<<<
  * 
  * ################################################################################
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
@@ -74691,7 +75333,7 @@ static PyObject *__pyx_f_4lxml_5etree__python_class_lookup(PyObject *__pyx_v_sta
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":505
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":528
  * cdef object ELEMENT_CLASS_LOOKUP_STATE
  * 
  * cdef void _setElementClassLookupFunction(             # <<<<<<<<<<<<<<
@@ -74706,17 +75348,17 @@ static void __pyx_f_4lxml_5etree__setElementClassLookupFunction(_element_class_l
   __Pyx_RefNannySetupContext("_setElementClassLookupFunction", 0);
   __Pyx_INCREF(__pyx_v_state);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":508
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":531
  *     _element_class_lookup_function function, object state):
  *     global LOOKUP_ELEMENT_CLASS, ELEMENT_CLASS_LOOKUP_STATE
  *     if function is NULL:             # <<<<<<<<<<<<<<
  *         state    = DEFAULT_ELEMENT_CLASS_LOOKUP
  *         function = DEFAULT_ELEMENT_CLASS_LOOKUP._lookup_function
  */
-  __pyx_t_1 = (__pyx_v_function == NULL);
+  __pyx_t_1 = ((__pyx_v_function == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":509
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":532
  *     global LOOKUP_ELEMENT_CLASS, ELEMENT_CLASS_LOOKUP_STATE
  *     if function is NULL:
  *         state    = DEFAULT_ELEMENT_CLASS_LOOKUP             # <<<<<<<<<<<<<<
@@ -74727,7 +75369,7 @@ static void __pyx_f_4lxml_5etree__setElementClassLookupFunction(_element_class_l
     __Pyx_DECREF(__pyx_v_state);
     __pyx_v_state = ((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":510
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":533
  *     if function is NULL:
  *         state    = DEFAULT_ELEMENT_CLASS_LOOKUP
  *         function = DEFAULT_ELEMENT_CLASS_LOOKUP._lookup_function             # <<<<<<<<<<<<<<
@@ -74740,7 +75382,7 @@ static void __pyx_f_4lxml_5etree__setElementClassLookupFunction(_element_class_l
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":512
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":535
  *         function = DEFAULT_ELEMENT_CLASS_LOOKUP._lookup_function
  * 
  *     ELEMENT_CLASS_LOOKUP_STATE = state             # <<<<<<<<<<<<<<
@@ -74753,7 +75395,7 @@ static void __pyx_f_4lxml_5etree__setElementClassLookupFunction(_element_class_l
   __Pyx_GIVEREF(__pyx_v_state);
   __pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE = __pyx_v_state;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":513
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":536
  * 
  *     ELEMENT_CLASS_LOOKUP_STATE = state
  *     LOOKUP_ELEMENT_CLASS = function             # <<<<<<<<<<<<<<
@@ -74782,7 +75424,7 @@ static PyObject *__pyx_pw_4lxml_5etree_39set_element_class_lookup(PyObject *__py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__lookup,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":515
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":538
  *     LOOKUP_ELEMENT_CLASS = function
  * 
  * def set_element_class_lookup(ElementClassLookup lookup = None):             # <<<<<<<<<<<<<<
@@ -74807,7 +75449,7 @@ static PyObject *__pyx_pw_4lxml_5etree_39set_element_class_lookup(PyObject *__py
         }
       }
       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[9]; __pyx_lineno = 515; __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[9]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -74820,13 +75462,13 @@ static PyObject *__pyx_pw_4lxml_5etree_39set_element_class_lookup(PyObject *__py
   }
   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[9]; __pyx_lineno = 515; __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[9]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.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[9]; __pyx_lineno = 515; __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[9]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_38set_element_class_lookup(__pyx_self, __pyx_v_lookup);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -74844,7 +75486,7 @@ static PyObject *__pyx_pf_4lxml_5etree_38set_element_class_lookup(CYTHON_UNUSED
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("set_element_class_lookup", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":520
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":543
  *     Set the global default element class lookup method.
  *     """
  *     if lookup is None or lookup._lookup_function is NULL:             # <<<<<<<<<<<<<<
@@ -74852,15 +75494,15 @@ static PyObject *__pyx_pf_4lxml_5etree_38set_element_class_lookup(CYTHON_UNUSED
  *     else:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_lookup) == Py_None);
-  if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_lookup->_lookup_function == NULL);
+  if (!(__pyx_t_1 != 0)) {
+    __pyx_t_2 = ((__pyx_v_lookup->_lookup_function == NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":521
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":544
  *     """
  *     if lookup is None or lookup._lookup_function is NULL:
  *         _setElementClassLookupFunction(NULL, None)             # <<<<<<<<<<<<<<
@@ -74872,7 +75514,7 @@ static PyObject *__pyx_pf_4lxml_5etree_38set_element_class_lookup(CYTHON_UNUSED
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":523
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":546
  *         _setElementClassLookupFunction(NULL, None)
  *     else:
  *         _setElementClassLookupFunction(lookup._lookup_function, lookup)             # <<<<<<<<<<<<<<
@@ -74951,7 +75593,8 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry___cinit__(struct __pyx_obj
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -74978,7 +75621,8 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry___cinit__(struct __pyx_obj
  *             self._c_ns_uri_utf = NULL
  */
   __pyx_t_1 = (__pyx_v_ns_uri == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":24
  *         self._ns_uri = ns_uri
@@ -75012,13 +75656,13 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry___cinit__(struct __pyx_obj
  *             self._c_ns_uri_utf = _cstr(self._ns_uri_utf)
  *         self._entries = {}
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_ns_uri)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_ns_uri)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_ns_uri_utf);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_ns_uri_utf));
-    __pyx_v_self->_ns_uri_utf = ((PyObject*)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_self->_ns_uri_utf = ((PyObject*)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":28
  *         else:
@@ -75027,10 +75671,10 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry___cinit__(struct __pyx_obj
  *         self._entries = {}
  * 
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_self->_ns_uri_utf);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_self->_c_ns_uri_utf = PyBytes_AS_STRING(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->_ns_uri_utf);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_self->_c_ns_uri_utf = PyBytes_AS_STRING(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
@@ -75041,18 +75685,18 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry___cinit__(struct __pyx_obj
  * 
  *     def update(self, class_dict_iterable):
  */
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 29; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
   __Pyx_GOTREF(__pyx_v_self->_entries);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_entries));
-  __pyx_v_self->_entries = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_v_self->_entries = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._NamespaceRegistry.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -75086,15 +75730,15 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  Py_ssize_t __pyx_t_4;
-  PyObject *(*__pyx_t_5)(PyObject *);
-  PyObject *__pyx_t_6 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  Py_ssize_t __pyx_t_5;
+  PyObject *(*__pyx_t_6)(PyObject *);
   PyObject *__pyx_t_7 = NULL;
   PyObject *__pyx_t_8 = NULL;
-  PyObject *(*__pyx_t_9)(PyObject *);
-  int __pyx_t_10;
+  PyObject *__pyx_t_9 = NULL;
+  PyObject *(*__pyx_t_10)(PyObject *);
   int __pyx_t_11;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -75110,7 +75754,8 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
  *         for name, item in class_dict_iterable:
  */
   __pyx_t_1 = PyObject_HasAttr(__pyx_v_class_dict_iterable, ((PyObject *)__pyx_n_u__items)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":44
  *         vars(), globals() etc."""
@@ -75119,14 +75764,14 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
  *         for name, item in class_dict_iterable:
  *             if (name is None or name[:1] != '_') and callable(item):
  */
-    __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_class_dict_iterable, __pyx_n_s__items); 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_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_v_class_dict_iterable);
-    __pyx_v_class_dict_iterable = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_class_dict_iterable = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -75139,41 +75784,41 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
  *                 self[name] = item
  */
   if (PyList_CheckExact(__pyx_v_class_dict_iterable) || PyTuple_CheckExact(__pyx_v_class_dict_iterable)) {
-    __pyx_t_3 = __pyx_v_class_dict_iterable; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
-    __pyx_t_5 = NULL;
+    __pyx_t_4 = __pyx_v_class_dict_iterable; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
+    __pyx_t_6 = NULL;
   } else {
-    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_class_dict_iterable); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;
+    __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_class_dict_iterable); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
   }
   for (;;) {
-    if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {
-      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
+    if (!__pyx_t_6 && PyList_CheckExact(__pyx_t_4)) {
+      if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-    } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {
-      if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
+    } else if (!__pyx_t_6 && PyTuple_CheckExact(__pyx_t_4)) {
+      if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_2 = __pyx_t_5(__pyx_t_3);
-      if (unlikely(!__pyx_t_2)) {
+      __pyx_t_3 = __pyx_t_6(__pyx_t_4);
+      if (unlikely(!__pyx_t_3)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
           else {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
-      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_GOTREF(__pyx_t_3);
     }
-    if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
-      PyObject* sequence = __pyx_t_2;
+    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
+      PyObject* sequence = __pyx_t_3;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -75186,49 +75831,49 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
-        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
       } else {
-        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
+        __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
       }
-      __Pyx_INCREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_t_7);
+      __Pyx_INCREF(__pyx_t_8);
       #else
-      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
+      __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_8);
       #endif
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_8);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
-      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_6);
-      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
+      __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
+      index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_7);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_9 = NULL;
-      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_8);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = NULL;
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L7_unpacking_done;
       __pyx_L6_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-      __pyx_t_9 = NULL;
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_10 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
     __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_6;
-    __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_7;
+    __pyx_v_name = __pyx_t_7;
     __pyx_t_7 = 0;
+    __Pyx_XDECREF(__pyx_v_item);
+    __pyx_v_item = __pyx_t_8;
+    __pyx_t_8 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":46
  *             class_dict_iterable = class_dict_iterable.items()
@@ -75237,25 +75882,25 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
  *                 self[name] = item
  * 
  */
-    __pyx_t_1 = (__pyx_v_name == Py_None);
-    if (!__pyx_t_1) {
-      __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;
-      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_11 = __pyx_t_10;
-    } else {
+    __pyx_t_2 = (__pyx_v_name == Py_None);
+    if (!__pyx_t_2) {
+      __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 1, NULL, NULL, &__pyx_k_slice_153, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_n_s___), Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __pyx_t_11 = __pyx_t_1;
+    } else {
+      __pyx_t_11 = __pyx_t_2;
     }
     if (__pyx_t_11) {
-      __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_item); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_10 = __pyx_t_1;
+      __pyx_t_2 = __Pyx_PyCallable_Check(__pyx_v_item); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __pyx_t_2;
     } else {
-      __pyx_t_10 = __pyx_t_11;
+      __pyx_t_1 = __pyx_t_11;
     }
-    if (__pyx_t_10) {
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":47
  *         for name, item in class_dict_iterable:
@@ -75269,16 +75914,16 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
     }
     __pyx_L8:;
   }
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_8);
+  __Pyx_XDECREF(__pyx_t_9);
   __Pyx_AddTraceback("lxml.etree._NamespaceRegistry.update", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -75313,7 +75958,8 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_4__getitem__(struct
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -75328,7 +75974,8 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_4__getitem__(struct
  *         return self._get(name)
  */
   __pyx_t_1 = (__pyx_v_name != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":51
  *     def __getitem__(self, name):
@@ -75337,11 +75984,11 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_4__getitem__(struct
  *         return self._get(name)
  * 
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_name = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -75354,16 +76001,16 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_4__getitem__(struct
  *     def __delitem__(self, name):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry *)__pyx_v_self->__pyx_vtab)->_get(__pyx_v_self, __pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry *)__pyx_v_self->__pyx_vtab)->_get(__pyx_v_self, __pyx_v_name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._NamespaceRegistry.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -75396,7 +76043,8 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry_6__delitem__(CYTHON_UNUSED
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -75411,7 +76059,8 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry_6__delitem__(CYTHON_UNUSED
  *         del self._entries[name]
  */
   __pyx_t_1 = (__pyx_v_name != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":56
  *     def __delitem__(self, name):
@@ -75420,11 +76069,11 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry_6__delitem__(CYTHON_UNUSED
  *         del self._entries[name]
  * 
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_name = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -75445,7 +76094,7 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry_6__delitem__(CYTHON_UNUSED
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._NamespaceRegistry.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -75492,7 +76141,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_NamespaceRegistry__get(struct __pyx_obj
  *             raise KeyError, u"Name not registered."
  *         return <object>dict_result
  */
-  __pyx_t_2 = (__pyx_v_dict_result == NULL);
+  __pyx_t_2 = ((__pyx_v_dict_result == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":63
@@ -75502,7 +76151,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_NamespaceRegistry__get(struct __pyx_obj
  *         return <object>dict_result
  * 
  */
-    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_153), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_154), 0, 0);
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -75574,7 +76223,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_NamespaceRegistry__getForString(struct
  *             raise KeyError, u"Name not registered."
  *         return <object>dict_result
  */
-  __pyx_t_3 = (__pyx_v_dict_result == NULL);
+  __pyx_t_3 = ((__pyx_v_dict_result == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":70
@@ -75584,7 +76233,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_NamespaceRegistry__getForString(struct
  *         return <object>dict_result
  * 
  */
-    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_153), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_154), 0, 0);
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -75896,10 +76545,10 @@ static int __pyx_pf_4lxml_5etree_23_ClassNamespaceRegistry___setitem__(struct __
  *             raise NamespaceRegistryError, \
  *                 u"Registered element classes must be subtypes of ElementBase"
  */
-  __pyx_t_1 = (!PyType_Check(__pyx_v_item));
+  __pyx_t_1 = ((!(PyType_Check(__pyx_v_item) != 0)) != 0);
   if (!__pyx_t_1) {
     __pyx_t_2 = PyObject_IsSubclass(__pyx_v_item, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementBase))); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = (!__pyx_t_2);
+    __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
     __pyx_t_2 = __pyx_t_3;
   } else {
     __pyx_t_2 = __pyx_t_1;
@@ -75913,9 +76562,9 @@ static int __pyx_pf_4lxml_5etree_23_ClassNamespaceRegistry___setitem__(struct __
  *                 u"Registered element classes must be subtypes of ElementBase"
  *         if name is not None:
  */
-    __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_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_155); 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_155), 0, 0);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_156), 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;
@@ -75930,7 +76579,8 @@ static int __pyx_pf_4lxml_5etree_23_ClassNamespaceRegistry___setitem__(struct __
  *         self._entries[name] = item
  */
   __pyx_t_2 = (__pyx_v_name != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_1 = (__pyx_t_2 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":94
  *                 u"Registered element classes must be subtypes of ElementBase"
@@ -76009,7 +76659,7 @@ static PyObject *__pyx_pf_4lxml_5etree_23_ClassNamespaceRegistry_2__repr__(struc
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __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_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_157), __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;
@@ -76451,8 +77101,9 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -76466,7 +77117,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  * 
  */
   __pyx_t_1 = (__pyx_v_state == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":138
  *     cdef _NamespaceRegistry registry
@@ -76476,10 +77128,10 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *     lookup = <ElementNamespaceClassLookup>state
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_f_4lxml_5etree__lookupDefaultElementClass(Py_None, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_5etree__lookupDefaultElementClass(Py_None, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -76502,8 +77154,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *         return _callLookupFallback(lookup, doc, c_node)
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_node->type != XML_ELEMENT_NODE);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_node->type != XML_ELEMENT_NODE) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":142
  *     lookup = <ElementNamespaceClassLookup>state
@@ -76513,10 +77165,10 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *     c_namespace_utf = _getNs(c_node)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L4;
   }
@@ -76538,8 +77190,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *         dict_result = python.PyDict_GetItem(
  *             lookup._namespace_registries, <unsigned char*>c_namespace_utf)
  */
-  __pyx_t_1 = (__pyx_v_c_namespace_utf != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_namespace_utf != NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":147
  *     if c_namespace_utf is not NULL:
@@ -76548,13 +77200,13 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *     else:
  *         dict_result = python.PyDict_GetItem(
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_lookup->_namespace_registries);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_3 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_namespace_utf)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __pyx_v_dict_result = PyDict_GetItem(__pyx_t_2, ((PyObject *)__pyx_t_3));
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_lookup->_namespace_registries);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_namespace_utf)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+    __pyx_v_dict_result = PyDict_GetItem(__pyx_t_3, ((PyObject *)__pyx_t_4));
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     goto __pyx_L5;
   }
   /*else*/ {
@@ -76566,10 +77218,10 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *     if dict_result is not NULL:
  *         registry = <_NamespaceRegistry>dict_result
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_lookup->_namespace_registries);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_dict_result = PyDict_GetItem(__pyx_t_3, Py_None);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_lookup->_namespace_registries);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_dict_result = PyDict_GetItem(__pyx_t_4, Py_None);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   }
   __pyx_L5:;
 
@@ -76580,8 +77232,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *         registry = <_NamespaceRegistry>dict_result
  *         classes = registry._entries
  */
-  __pyx_t_1 = (__pyx_v_dict_result != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_dict_result != NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":152
  *             lookup._namespace_registries, None)
@@ -76600,10 +77252,10 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  * 
  *         if c_node.name is not NULL:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_registry->_entries);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_classes = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_registry->_entries);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_classes = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":155
  *         classes = registry._entries
@@ -76612,8 +77264,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *             dict_result = python.PyDict_GetItem(
  *                 classes, <unsigned char*>c_node.name)
  */
-    __pyx_t_1 = (__pyx_v_c_node->name != NULL);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_c_node->name != NULL) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":157
  *         if c_node.name is not NULL:
@@ -76622,10 +77274,10 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *         else:
  *             dict_result = NULL
  */
-      __pyx_t_3 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_node->name)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-      __pyx_v_dict_result = PyDict_GetItem(((PyObject *)__pyx_v_classes), ((PyObject *)__pyx_t_3));
-      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+      __pyx_t_4 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_node->name)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+      __pyx_v_dict_result = PyDict_GetItem(((PyObject *)__pyx_v_classes), ((PyObject *)__pyx_t_4));
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       goto __pyx_L7;
     }
     /*else*/ {
@@ -76648,8 +77300,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *             dict_result = python.PyDict_GetItem(classes, None)
  * 
  */
-    __pyx_t_1 = (__pyx_v_dict_result == NULL);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_dict_result == NULL) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":162
  * 
@@ -76670,8 +77322,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  *             return <object>dict_result
  *     return _callLookupFallback(lookup, doc, c_node)
  */
-    __pyx_t_1 = (__pyx_v_dict_result != NULL);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_dict_result != NULL) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":165
  * 
@@ -76699,17 +77351,17 @@ static PyObject *__pyx_f_4lxml_5etree__find_nselement_class(PyObject *__pyx_v_st
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __pyx_r = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__callLookupFallback(((struct LxmlFallbackElementClassLookup *)__pyx_v_lookup), __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._find_nselement_class", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -76970,7 +77622,7 @@ static int __pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry___setitem__(struct
  *                 u"Registered functions must be callable."
  */
   __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_item); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_1);
+  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":195
@@ -76980,9 +77632,9 @@ static int __pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry___setitem__(struct
  *                 u"Registered functions must be callable."
  *         if not name:
  */
-    __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_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_155); 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_157), 0, 0);
+    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_158), 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;
@@ -76997,7 +77649,7 @@ static int __pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry___setitem__(struct
  *                 u"extensions must have non empty names"
  */
   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_name); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = (!__pyx_t_2);
+  __pyx_t_1 = ((!__pyx_t_2) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":198
@@ -77007,7 +77659,7 @@ static int __pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry___setitem__(struct
  *                 u"extensions must have non empty names"
  *         self._entries[_utf8(name)] = item
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_158), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_159), 0, 0);
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -77076,7 +77728,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry_2__repr__(st
  * @cython.final
  */
   __Pyx_XDECREF(__pyx_r);
-  __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_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_160), __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;
@@ -77172,6 +77824,7 @@ static PyObject *__pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("__get__", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":217
@@ -77182,7 +77835,8 @@ static PyObject *__pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix
  *             else:
  */
   __pyx_t_1 = (__pyx_v_self->_prefix == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":218
  *         def __get__(self):
@@ -77244,6 +77898,7 @@ static int __pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_4__se
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
+  int __pyx_t_3;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -77284,7 +77939,8 @@ static int __pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_4__se
  *             else:
  */
   __pyx_t_2 = (__pyx_v_prefix == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":225
  *                 prefix = None # empty prefix
@@ -77365,6 +78021,7 @@ static PyObject *__pyx_f_4lxml_5etree__find_all_extension_prefixes(void) {
   int __pyx_t_6;
   int __pyx_t_7;
   int __pyx_t_8;
+  int __pyx_t_9;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -77417,7 +78074,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_all_extension_prefixes(void) {
  *                 ns_prefixes.append(
  */
     __pyx_t_7 = (__pyx_v_registry->_prefix_utf != Py_None);
-    if (__pyx_t_7) {
+    __pyx_t_8 = (__pyx_t_7 != 0);
+    if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":236
  *     for registry in __FUNCTION_NAMESPACE_REGISTRIES.itervalues():
@@ -77426,7 +78084,8 @@ static PyObject *__pyx_f_4lxml_5etree__find_all_extension_prefixes(void) {
  *                 ns_prefixes.append(
  *                     (registry._prefix_utf, registry._ns_uri_utf))
  */
-      __pyx_t_7 = (__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf != ((PyObject*)Py_None));
+      __pyx_t_8 = (__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf != ((PyObject*)Py_None));
+      __pyx_t_7 = (__pyx_t_8 != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":238
@@ -77443,7 +78102,7 @@ static PyObject *__pyx_f_4lxml_5etree__find_all_extension_prefixes(void) {
         __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 = __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_t_9 = __Pyx_PyList_Append(__pyx_v_ns_prefixes, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_9 == -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;
       }
@@ -77778,8 +78437,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -77794,7 +78453,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *         elif not isinstance(string, bytes):
  */
   __pyx_t_1 = PyUnicode_Check(__pyx_v_string); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":59
  *         cdef _InputDocument doc_ref
@@ -77807,11 +78467,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
       {__pyx_filename = __pyx_f[11]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_string))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_string))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(__pyx_v_string);
-    __pyx_v_string = ((PyObject *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_string = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
 
@@ -77822,9 +78482,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *             raise TypeError, "argument must be a byte string or unicode string"
  *         doc_ref = _InputDocument()
  */
-  __pyx_t_1 = PyBytes_Check(__pyx_v_string); 
-  __pyx_t_3 = (!__pyx_t_1);
-  if (__pyx_t_3) {
+  __pyx_t_2 = PyBytes_Check(__pyx_v_string); 
+  __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":61
  *             string = (<unicode>string).encode('utf8')
@@ -77833,7 +78493,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *         doc_ref = _InputDocument()
  *         doc_ref._type = PARSER_DATA_STRING
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_160), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_161), 0, 0);
     {__pyx_filename = __pyx_f[11]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -77846,10 +78506,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *         doc_ref._type = PARSER_DATA_STRING
  *         doc_ref._data_bytes = string
  */
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__InputDocument)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_doc_ref = ((struct __pyx_obj_4lxml_5etree__InputDocument *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__InputDocument)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 62; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_doc_ref = ((struct __pyx_obj_4lxml_5etree__InputDocument *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":63
  *             raise TypeError, "argument must be a byte string or unicode string"
@@ -77880,8 +78540,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *             doc_ref._filename = _encodeFilename(base_url)
  *         return doc_ref
  */
-  __pyx_t_3 = (__pyx_v_base_url != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_v_base_url != Py_None);
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":66
  *         doc_ref._data_bytes = string
@@ -77890,13 +78551,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *         return doc_ref
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_base_url); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_base_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_doc_ref->_filename);
     __Pyx_DECREF(__pyx_v_doc_ref->_filename);
-    __pyx_v_doc_ref->_filename = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_doc_ref->_filename = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L4;
   }
   __pyx_L4:;
@@ -77916,7 +78577,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree.Resolver.resolve_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -78162,6 +78823,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_8resolve_file(CYTHON_UNUSED str
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
   int __pyx_t_8;
+  int __pyx_t_9;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -78221,7 +78883,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_8resolve_file(CYTHON_UNUSED str
  *         doc_ref = _InputDocument()
  *         doc_ref._type = PARSER_DATA_FILE
  */
-      __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_161), 0, 0);
+      __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_162), 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;
@@ -78271,7 +78933,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_8resolve_file(CYTHON_UNUSED str
  *         else:
  */
   __pyx_t_8 = (__pyx_v_base_url != Py_None);
-  if (__pyx_t_8) {
+  __pyx_t_9 = (__pyx_t_8 != 0);
+  if (__pyx_t_9) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":104
  *         doc_ref._type = PARSER_DATA_FILE
@@ -78477,9 +79140,9 @@ static int __pyx_pf_4lxml_5etree_17_ResolverRegistry___cinit__(struct __pyx_obj_
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("add (wrapper)", 0);
@@ -78836,6 +79499,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_ResolverRegistry_8resolve(struct __pyx
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   int __pyx_t_7;
+  int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -78922,7 +79586,8 @@ static PyObject *__pyx_pf_4lxml_5etree_17_ResolverRegistry_8resolve(struct __pyx
  *         if self._default_resolver is None:
  */
     __pyx_t_7 = (__pyx_v_result != Py_None);
-    if (__pyx_t_7) {
+    __pyx_t_8 = (__pyx_t_7 != 0);
+    if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":152
  *             result = resolver.resolve(system_url, public_id, context)
@@ -78949,7 +79614,8 @@ static PyObject *__pyx_pf_4lxml_5etree_17_ResolverRegistry_8resolve(struct __pyx
  *             return None
  *         return self._default_resolver.resolve(system_url, public_id, context)
  */
-  __pyx_t_7 = (((PyObject *)__pyx_v_self->_default_resolver) == Py_None);
+  __pyx_t_8 = (((PyObject *)__pyx_v_self->_default_resolver) == Py_None);
+  __pyx_t_7 = (__pyx_t_8 != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":154
@@ -79125,7 +79791,8 @@ static PyObject *__pyx_f_4lxml_5etree__initResolverContext(struct __pyx_obj_4lxm
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -79139,7 +79806,8 @@ static PyObject *__pyx_f_4lxml_5etree__initResolverContext(struct __pyx_obj_4lxm
  *     else:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_resolvers) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":172
  *                           _ResolverRegistry resolvers):
@@ -79148,13 +79816,13 @@ static PyObject *__pyx_f_4lxml_5etree__initResolverContext(struct __pyx_obj_4lxm
  *     else:
  *         context._resolvers = resolvers
  */
-    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ResolverRegistry)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ResolverRegistry)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_context->_resolvers);
     __Pyx_DECREF(((PyObject *)__pyx_v_context->_resolvers));
-    __pyx_v_context->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_context->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -79178,18 +79846,18 @@ static PyObject *__pyx_f_4lxml_5etree__initResolverContext(struct __pyx_obj_4lxm
  *         context._resolvers = resolvers
  *     context._storage = _TempStore()             # <<<<<<<<<<<<<<
  */
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__TempStore)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_GIVEREF(__pyx_t_2);
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__TempStore)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_3);
   __Pyx_GOTREF(__pyx_v_context->_storage);
   __Pyx_DECREF(((PyObject *)__pyx_v_context->_storage));
-  __pyx_v_context->_storage = ((struct __pyx_obj_4lxml_5etree__TempStore *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_v_context->_storage = ((struct __pyx_obj_4lxml_5etree__TempStore *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._initResolverContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -79312,7 +79980,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10ParseError___init__(CYTHON_UNUSED PyObj
  *             # Python >= 2.5 uses new style class exceptions
  *             super(_ParseError, self).__init__(message)
  */
-  __pyx_t_1 = (PY_VERSION_HEX >= 0x02050000);
+  __pyx_t_1 = ((PY_VERSION_HEX >= 0x02050000) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":21
@@ -79511,7 +80179,7 @@ static void __pyx_pf_4lxml_5etree_24_ParserDictionaryContext_2__dealloc__(struct
  *             xmlparser.xmlDictFree(self._c_dict)
  * 
  */
-  __pyx_t_1 = (__pyx_v_self->_c_dict != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_c_dict != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":62
@@ -79562,7 +80230,7 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_initMainParserContex
  *             (<dict>thread_dict)[u"_ParserDictionaryContext"] = self
  * 
  */
-  __pyx_t_1 = (__pyx_v_thread_dict != NULL);
+  __pyx_t_1 = ((__pyx_v_thread_dict != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":71
@@ -79576,7 +80244,7 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_initMainParserContex
       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_162), ((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_163), ((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:;
@@ -79626,7 +80294,7 @@ static struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *__pyx_f_4lxml_5et
  *             return self
  *         d = <dict>thread_dict
  */
-  __pyx_t_1 = (__pyx_v_thread_dict == NULL);
+  __pyx_t_1 = ((__pyx_v_thread_dict == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":80
@@ -79661,7 +80329,7 @@ static struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *__pyx_f_4lxml_5et
  *         if result is not NULL:
  *             return <object>result
  */
-  __pyx_v_result = PyDict_GetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_162));
+  __pyx_v_result = PyDict_GetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_163));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":83
  *         d = <dict>thread_dict
@@ -79670,7 +80338,7 @@ static struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *__pyx_f_4lxml_5et
  *             return <object>result
  *         context = _ParserDictionaryContext()
  */
-  __pyx_t_1 = (__pyx_v_result != NULL);
+  __pyx_t_1 = ((__pyx_v_result != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":84
@@ -79712,7 +80380,7 @@ static struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *__pyx_f_4lxml_5et
     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_162), ((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_163), ((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()
@@ -79805,6 +80473,7 @@ static struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_f_4lxml_5etree_24_Parser
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
+  int __pyx_t_3;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -79830,7 +80499,8 @@ static struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_f_4lxml_5etree_24_Parser
  *                 self._default_parser = __DEFAULT_XML_PARSER._copy()
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_context->_default_parser) == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":100
  *         context = self._findThreadParserContext()
@@ -79839,7 +80509,8 @@ static struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_f_4lxml_5etree_24_Parser
  *                 self._default_parser = __DEFAULT_XML_PARSER._copy()
  *             if context is not self:
  */
-    __pyx_t_2 = (((PyObject *)__pyx_v_self->_default_parser) == Py_None);
+    __pyx_t_3 = (((PyObject *)__pyx_v_self->_default_parser) == Py_None);
+    __pyx_t_2 = (__pyx_t_3 != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":101
@@ -79868,7 +80539,8 @@ static struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_f_4lxml_5etree_24_Parser
  *         return context._default_parser
  */
     __pyx_t_2 = (__pyx_v_context != __pyx_v_self);
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_t_2 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":103
  *                 self._default_parser = __DEFAULT_XML_PARSER._copy()
@@ -79930,6 +80602,7 @@ static xmlDict *__pyx_f_4lxml_5etree_24_ParserDictionaryContext__getThreadDict(s
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
+  int __pyx_t_3;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -79954,7 +80627,7 @@ static xmlDict *__pyx_f_4lxml_5etree_24_ParserDictionaryContext__getThreadDict(s
  *             # thread dict not yet set up => use default or create a new one
  *             if default is not NULL:
  */
-  __pyx_t_2 = (__pyx_v_context->_c_dict == NULL);
+  __pyx_t_2 = ((__pyx_v_context->_c_dict == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":112
@@ -79964,7 +80637,7 @@ static xmlDict *__pyx_f_4lxml_5etree_24_ParserDictionaryContext__getThreadDict(s
  *                 context._c_dict = default
  *                 xmlparser.xmlDictReference(default)
  */
-    __pyx_t_2 = (__pyx_v_default != NULL);
+    __pyx_t_2 = ((__pyx_v_default != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":113
@@ -80005,7 +80678,7 @@ static xmlDict *__pyx_f_4lxml_5etree_24_ParserDictionaryContext__getThreadDict(s
  *                 self._c_dict = xmlparser.xmlDictCreate()
  *             if context is not self:
  */
-    __pyx_t_2 = (__pyx_v_self->_c_dict == NULL);
+    __pyx_t_2 = ((__pyx_v_self->_c_dict == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":117
@@ -80028,7 +80701,8 @@ static xmlDict *__pyx_f_4lxml_5etree_24_ParserDictionaryContext__getThreadDict(s
  *         return context._c_dict
  */
     __pyx_t_2 = (__pyx_v_context != __pyx_v_self);
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_t_2 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":119
  *                 self._c_dict = xmlparser.xmlDictCreate()
@@ -80107,7 +80781,7 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_initThreadDictRef(st
  *             return
  *         if c_dict is not NULL:
  */
-  __pyx_t_1 = (__pyx_v_c_dict == __pyx_v_c_thread_dict);
+  __pyx_t_1 = ((__pyx_v_c_dict == __pyx_v_c_thread_dict) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":128
@@ -80129,7 +80803,7 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_initThreadDictRef(st
  *             xmlparser.xmlDictFree(c_dict)
  *         c_dict_ref[0] = c_thread_dict
  */
-  __pyx_t_1 = (__pyx_v_c_dict != NULL);
+  __pyx_t_1 = ((__pyx_v_c_dict != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":130
@@ -80252,7 +80926,7 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_24_Par
   struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
-  Py_ssize_t __pyx_t_2;
+  int __pyx_t_2;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -80279,7 +80953,7 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_24_Par
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_context->_implied_parser_contexts);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = PyList_GET_SIZE(__pyx_t_1);
+  __pyx_t_2 = (PyList_GET_SIZE(__pyx_t_1) != 0);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
@@ -80352,7 +81026,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_24_Par
 static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContextFromParser(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *__pyx_v_self, struct __pyx_obj_4lxml_5etree__BaseParser *__pyx_v_parser) {
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -80366,7 +81041,8 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContextFr
  *         else:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":168
  *         u"Push a new implied context object taken from the parser."
@@ -80375,10 +81051,10 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContextFr
  *         else:
  *             self.pushImpliedContext(None)
  */
-    __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_parser->__pyx_vtab)->_getParserContext(__pyx_v_parser)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContext(__pyx_v_self, ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_2));
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_parser->__pyx_vtab)->_getParserContext(__pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContext(__pyx_v_self, ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3));
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -80396,7 +81072,7 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContextFr
 
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_WriteUnraisable("lxml.etree._ParserDictionaryContext.pushImpliedContextFromParser", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_L0:;
   __Pyx_RefNannyFinishContext();
@@ -80538,7 +81214,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *     l = python.PyUnicode_GET_DATA_SIZE(utext)
  *     buffer = python.PyUnicode_AS_DATA(utext)
  */
-  __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_t_1 = ((PyObject *)PyUnicode_DecodeUTF8(__pyx_k_164, 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;
@@ -80577,7 +81253,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *         # apparently, libxml2 can't detect UTF-16 on some systems
  *         if l >= 4 and \
  */
-  __pyx_t_2 = (__pyx_v_enc == NULL);
+  __pyx_t_2 = ((__pyx_v_enc == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":211
@@ -80587,7 +81263,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *                buffer[0] == c'<' and buffer[1] == c'\0' and \
  *                buffer[2] == c't' and buffer[3] == c'\0':
  */
-    __pyx_t_2 = (__pyx_v_l >= 4);
+    __pyx_t_2 = ((__pyx_v_l >= 4) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":212
@@ -80597,9 +81273,9 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *                buffer[2] == c't' and buffer[3] == c'\0':
  *             enc = "UTF-16LE"
  */
-      __pyx_t_3 = ((__pyx_v_buffer[0]) == '<');
+      __pyx_t_3 = (((__pyx_v_buffer[0]) == '<') != 0);
       if (__pyx_t_3) {
-        __pyx_t_4 = ((__pyx_v_buffer[1]) == '\x00');
+        __pyx_t_4 = (((__pyx_v_buffer[1]) == '\x00') != 0);
         if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":213
@@ -80609,9 +81285,9 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *             enc = "UTF-16LE"
  *         elif l >= 4 and \
  */
-          __pyx_t_5 = ((__pyx_v_buffer[2]) == 't');
+          __pyx_t_5 = (((__pyx_v_buffer[2]) == 't') != 0);
           if (__pyx_t_5) {
-            __pyx_t_6 = ((__pyx_v_buffer[3]) == '\x00');
+            __pyx_t_6 = (((__pyx_v_buffer[3]) == '\x00') != 0);
             __pyx_t_7 = __pyx_t_6;
           } else {
             __pyx_t_7 = __pyx_t_5;
@@ -80637,7 +81313,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *         elif l >= 4 and \
  *                buffer[0] == c'\0' and buffer[1] == c'<' and \
  */
-      __pyx_v_enc = __pyx_k_164;
+      __pyx_v_enc = __pyx_k_165;
       goto __pyx_L4;
     }
 
@@ -80648,7 +81324,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *                buffer[0] == c'\0' and buffer[1] == c'<' and \
  *                buffer[2] == c'\0' and buffer[3] == c't':
  */
-    __pyx_t_3 = (__pyx_v_l >= 4);
+    __pyx_t_3 = ((__pyx_v_l >= 4) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":216
@@ -80658,9 +81334,9 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *                buffer[2] == c'\0' and buffer[3] == c't':
  *             enc = "UTF-16BE"
  */
-      __pyx_t_2 = ((__pyx_v_buffer[0]) == '\x00');
+      __pyx_t_2 = (((__pyx_v_buffer[0]) == '\x00') != 0);
       if (__pyx_t_2) {
-        __pyx_t_4 = ((__pyx_v_buffer[1]) == '<');
+        __pyx_t_4 = (((__pyx_v_buffer[1]) == '<') != 0);
         if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":217
@@ -80670,9 +81346,9 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *             enc = "UTF-16BE"
  *         else:
  */
-          __pyx_t_5 = ((__pyx_v_buffer[2]) == '\x00');
+          __pyx_t_5 = (((__pyx_v_buffer[2]) == '\x00') != 0);
           if (__pyx_t_5) {
-            __pyx_t_7 = ((__pyx_v_buffer[3]) == 't');
+            __pyx_t_7 = (((__pyx_v_buffer[3]) == 't') != 0);
             __pyx_t_6 = __pyx_t_7;
           } else {
             __pyx_t_6 = __pyx_t_5;
@@ -80698,7 +81374,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *         else:
  *             # not my fault, it's YOUR broken system :)
  */
-      __pyx_v_enc = __pyx_k_165;
+      __pyx_v_enc = __pyx_k_166;
       goto __pyx_L4;
     }
     /*else*/ {
@@ -80734,7 +81410,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *         global _UNICODE_ENCODING
  *         tree.xmlCharEncCloseFunc(enchandler)
  */
-  __pyx_t_2 = (__pyx_v_enchandler != NULL);
+  __pyx_t_2 = ((__pyx_v_enchandler != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":225
@@ -80811,7 +81487,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *         return "UTF-16LE"
  *     elif enc == tree.XML_CHAR_ENCODING_UTF16BE:
  */
-  __pyx_t_1 = (__pyx_v_enc == XML_CHAR_ENCODING_UTF16LE);
+  __pyx_t_1 = ((__pyx_v_enc == XML_CHAR_ENCODING_UTF16LE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":234
@@ -80821,7 +81497,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_UTF16BE:
  *         return "UTF-16BE"
  */
-    __pyx_r = __pyx_k_164;
+    __pyx_r = __pyx_k_165;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -80833,7 +81509,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *         return "UTF-16BE"
  *     elif enc == tree.XML_CHAR_ENCODING_UCS4LE:
  */
-  __pyx_t_1 = (__pyx_v_enc == XML_CHAR_ENCODING_UTF16BE);
+  __pyx_t_1 = ((__pyx_v_enc == XML_CHAR_ENCODING_UTF16BE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":236
@@ -80843,7 +81519,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_UCS4LE:
  *         return "UCS-4LE"
  */
-    __pyx_r = __pyx_k_165;
+    __pyx_r = __pyx_k_166;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -80855,7 +81531,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *         return "UCS-4LE"
  *     elif enc == tree.XML_CHAR_ENCODING_UCS4BE:
  */
-  __pyx_t_1 = (__pyx_v_enc == XML_CHAR_ENCODING_UCS4LE);
+  __pyx_t_1 = ((__pyx_v_enc == XML_CHAR_ENCODING_UCS4LE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":238
@@ -80865,7 +81541,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_UCS4BE:
  *         return "UCS-4BE"
  */
-    __pyx_r = __pyx_k_166;
+    __pyx_r = __pyx_k_167;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -80877,7 +81553,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *         return "UCS-4BE"
  *     elif enc == tree.XML_CHAR_ENCODING_NONE:
  */
-  __pyx_t_1 = (__pyx_v_enc == XML_CHAR_ENCODING_UCS4BE);
+  __pyx_t_1 = ((__pyx_v_enc == XML_CHAR_ENCODING_UCS4BE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":240
@@ -80887,7 +81563,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_NONE:
  *         return NULL
  */
-    __pyx_r = __pyx_k_167;
+    __pyx_r = __pyx_k_168;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -80899,7 +81575,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *         return NULL
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_enc == XML_CHAR_ENCODING_NONE);
+  __pyx_t_1 = ((__pyx_v_enc == XML_CHAR_ENCODING_NONE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":242
@@ -81038,7 +81714,8 @@ static int __pyx_pf_4lxml_5etree_18_FileReaderContext___cinit__(struct __pyx_obj
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -81102,7 +81779,8 @@ static int __pyx_pf_4lxml_5etree_18_FileReaderContext___cinit__(struct __pyx_obj
  *         else:
  */
   __pyx_t_1 = (__pyx_v_url == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":271
  *         self._encoding = encoding
@@ -81123,11 +81801,11 @@ static int __pyx_pf_4lxml_5etree_18_FileReaderContext___cinit__(struct __pyx_obj
  *             self._c_url = _cstr(url)
  *         self._url = url
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_url = __pyx_t_3;
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":274
  *         else:
@@ -81178,7 +81856,7 @@ static int __pyx_pf_4lxml_5etree_18_FileReaderContext___cinit__(struct __pyx_obj
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._FileReaderContext.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -81222,11 +81900,11 @@ static PyObject *__pyx_f_4lxml_5etree_18_FileReaderContext__close_file(struct __
  *         try:
  */
   __pyx_t_1 = (__pyx_v_self->_filelike == Py_None);
-  if (!__pyx_t_1) {
-    __pyx_t_2 = (!__pyx_v_self->_close_file_after_read);
+  if (!(__pyx_t_1 != 0)) {
+    __pyx_t_2 = ((!(__pyx_v_self->_close_file_after_read != 0)) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -81371,7 +82049,8 @@ static PyObject *__pyx_f_4lxml_5etree_18_FileReaderContext__close_file(struct __
  * 
  */
   __pyx_t_3 = (__pyx_v_close != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":289
  *             self._filelike = None
@@ -81447,7 +82126,7 @@ static xmlParserInputBuffer *__pyx_f_4lxml_5etree_18_FileReaderContext__createPa
  *             c_buffer.readcallback  = _readFilelikeParser
  *             c_buffer.context = <python.PyObject*>self
  */
-  __pyx_t_2 = (__pyx_v_c_stream == NULL);
+  __pyx_t_2 = ((__pyx_v_c_stream == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":297
@@ -81639,8 +82318,9 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
   xmlDoc *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -81654,7 +82334,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *         else:
  */
   __pyx_t_1 = (__pyx_v_self->_encoding == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":325
  * 
@@ -81675,10 +82356,10 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  * 
  *         c_stream = python.PyFile_AsFile(self._filelike)
  */
-    __pyx_t_2 = __pyx_v_self->_encoding;
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_c_encoding = PyBytes_AS_STRING(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_v_self->_encoding;
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_c_encoding = PyBytes_AS_STRING(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
@@ -81689,10 +82370,10 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *         if c_stream is NULL:
  *             c_read_callback  = _readFilelikeParser
  */
-  __pyx_t_2 = __pyx_v_self->_filelike;
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_v_c_stream = PyFile_AsFile(__pyx_t_2);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_3 = __pyx_v_self->_filelike;
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_v_c_stream = PyFile_AsFile(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":330
  * 
@@ -81701,8 +82382,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *             c_read_callback  = _readFilelikeParser
  *             c_callback_context = <python.PyObject*>self
  */
-  __pyx_t_1 = (__pyx_v_c_stream == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_stream == NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":331
  *         c_stream = python.PyFile_AsFile(self._filelike)
@@ -81752,8 +82433,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *         with nogil:
  *             if ctxt.html:
  */
-  __pyx_t_3 = __pyx_v_ctxt->options;
-  __pyx_v_orig_options = __pyx_t_3;
+  __pyx_t_4 = __pyx_v_ctxt->options;
+  __pyx_v_orig_options = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":338
  * 
@@ -81776,7 +82457,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *                 result = htmlparser.htmlCtxtReadIO(
  *                         ctxt, c_read_callback, NULL, c_callback_context,
  */
-        if (__pyx_v_ctxt->html) {
+        __pyx_t_2 = (__pyx_v_ctxt->html != 0);
+        if (__pyx_t_2) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":342
  *                 result = htmlparser.htmlCtxtReadIO(
@@ -81794,8 +82476,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *                     if _fixHtmlDictNames(ctxt.dict, result) < 0:
  *                         tree.xmlFreeDoc(result)
  */
-          __pyx_t_1 = (__pyx_v_result != NULL);
-          if (__pyx_t_1) {
+          __pyx_t_2 = ((__pyx_v_result != NULL) != 0);
+          if (__pyx_t_2) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":344
  *                         self._c_url, c_encoding, options)
@@ -81804,8 +82486,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *                         tree.xmlFreeDoc(result)
  *                         result = NULL
  */
-            __pyx_t_1 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_ctxt->dict, __pyx_v_result) < 0);
-            if (__pyx_t_1) {
+            __pyx_t_2 = ((__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_ctxt->dict, __pyx_v_result) < 0) != 0);
+            if (__pyx_t_2) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":345
  *                 if result is not NULL:
@@ -81876,9 +82558,9 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
  *         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 = 352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_3 = __pyx_f_4lxml_5etree_18_FileReaderContext__close_file(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 352; __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":353
  *         ctxt.options = orig_options # work around libxml2 problem
@@ -81893,7 +82575,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_WriteUnraisable("lxml.etree._FileReaderContext._readDoc", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -81937,7 +82619,7 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
  *             return 0
  *         try:
  */
-  __pyx_t_1 = (__pyx_v_self->_bytes_read < 0);
+  __pyx_t_1 = ((__pyx_v_self->_bytes_read < 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":360
@@ -82005,7 +82687,7 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
  *                 cstring_h.memcpy(c_buffer, c_start, remaining)
  */
       while (1) {
-        __pyx_t_1 = (__pyx_v_c_requested > __pyx_v_remaining);
+        __pyx_t_1 = ((__pyx_v_c_requested > __pyx_v_remaining) != 0);
         if (!__pyx_t_1) break;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":366
@@ -82093,7 +82775,7 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
         __Pyx_INCREF(__pyx_t_6);
         __pyx_t_1 = PyBytes_Check(__pyx_t_6); 
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-        __pyx_t_8 = (!__pyx_t_1);
+        __pyx_t_8 = ((!(__pyx_t_1 != 0)) != 0);
         if (__pyx_t_8) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":374
@@ -82107,7 +82789,8 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
           __Pyx_INCREF(__pyx_t_6);
           __pyx_t_8 = PyUnicode_Check(__pyx_t_6); 
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-          if (__pyx_t_8) {
+          __pyx_t_1 = (__pyx_t_8 != 0);
+          if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":375
  *                 if not isinstance(self._bytes, bytes):
@@ -82116,7 +82799,8 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
  *                             self._bytes = (<unicode>self._bytes).encode('utf8')
  *                         else:
  */
-            __pyx_t_8 = (__pyx_v_self->_encoding == Py_None);
+            __pyx_t_1 = (__pyx_v_self->_encoding == Py_None);
+            __pyx_t_8 = (__pyx_t_1 != 0);
             if (__pyx_t_8) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":376
@@ -82193,7 +82877,7 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
  *                             u"reading from file-like objects must return byte strings or unicode strings"
  * 
  */
-            __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_168), 0, 0);
+            __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_169), 0, 0);
             {__pyx_filename = __pyx_f[5]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           }
           __pyx_L15:;
@@ -82220,7 +82904,7 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
  *                     self._bytes_read = -1
  *                     self._close_file()
  */
-        __pyx_t_8 = (__pyx_v_remaining == 0);
+        __pyx_t_8 = ((__pyx_v_remaining == 0) != 0);
         if (__pyx_t_8) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":387
@@ -82273,7 +82957,7 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
  *                 c_start = _cstr(self._bytes) + self._bytes_read
  *                 cstring_h.memcpy(c_buffer, c_start, c_requested)
  */
-      __pyx_t_8 = (__pyx_v_c_requested > 0);
+      __pyx_t_8 = ((__pyx_v_c_requested > 0) != 0);
       if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":393
@@ -82510,13 +83194,14 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  const xmlChar *__pyx_t_8;
-  int __pyx_t_9;
+  PyObject *__pyx_t_8 = NULL;
+  const xmlChar *__pyx_t_9;
+  int __pyx_t_10;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -82532,7 +83217,7 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *         context = <_ResolverContext>c_context._private
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_context->_private != NULL);
+  __pyx_t_1 = ((__pyx_v_c_context->_private != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":423
@@ -82570,7 +83255,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *             return NULL
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_context) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_3 = (__pyx_t_1 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":428
  * 
@@ -82579,8 +83265,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *             return NULL
  *         with nogil:
  */
-    __pyx_t_1 = (__pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER == NULL);
-    if (__pyx_t_1) {
+    __pyx_t_3 = ((__pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER == NULL) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":429
  *     if context is None:
@@ -82654,10 +83340,10 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *             url = None
  */
   {
-    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
-    __Pyx_XGOTREF(__pyx_t_3);
+    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
     __Pyx_XGOTREF(__pyx_t_4);
     __Pyx_XGOTREF(__pyx_t_5);
+    __Pyx_XGOTREF(__pyx_t_6);
     /*try:*/ {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":436
@@ -82667,8 +83353,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *             url = None
  *         else:
  */
-      __pyx_t_1 = (__pyx_v_c_url == NULL);
-      if (__pyx_t_1) {
+      __pyx_t_3 = ((__pyx_v_c_url == NULL) != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":437
  *     try:
@@ -82704,8 +83390,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *             pubid = None
  *         else:
  */
-      __pyx_t_1 = (__pyx_v_c_pubid == NULL);
-      if (__pyx_t_1) {
+      __pyx_t_3 = ((__pyx_v_c_pubid == NULL) != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":442
  *             url = _decodeFilename(<const_xmlChar*>c_url)
@@ -82743,33 +83429,33 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  */
       __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 = 446; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
-      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = PyTuple_New(3); 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_INCREF(__pyx_v_url);
-      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_url);
+      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_url);
       __Pyx_GIVEREF(__pyx_v_url);
       __Pyx_INCREF(__pyx_v_pubid);
-      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_pubid);
+      PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_pubid);
       __Pyx_GIVEREF(__pyx_v_pubid);
       __Pyx_INCREF(((PyObject *)__pyx_v_context));
-      PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_context));
+      PyTuple_SET_ITEM(__pyx_t_7, 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 = 446; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
-      __Pyx_GOTREF(__pyx_t_7);
+      __pyx_t_8 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+      __Pyx_GOTREF(__pyx_t_8);
       __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 = 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_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+      if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __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_8);
+      __pyx_t_8 = 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;
+    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
     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;
+    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":447
  * 
@@ -82780,9 +83466,9 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  */
     /*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 = 447; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+      __Pyx_GOTREF(__pyx_t_8);
       __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":448
@@ -82803,31 +83489,31 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  */
       __pyx_r = 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;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L12_except_return;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __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_L10_exception_handled;
     }
     __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);
+    __Pyx_XGIVEREF(__pyx_t_6);
+    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     goto __pyx_L1_error;
     __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);
+    __Pyx_XGIVEREF(__pyx_t_6);
+    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     goto __pyx_L0;
     __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_XGIVEREF(__pyx_t_6);
+    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     __pyx_L16_try_end:;
   }
 
@@ -82838,7 +83524,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *         if doc_ref._type == PARSER_DATA_STRING:
  *             data = doc_ref._data_bytes
  */
-  __pyx_t_1 = (((PyObject *)__pyx_v_doc_ref) != Py_None);
+  __pyx_t_3 = (((PyObject *)__pyx_v_doc_ref) != Py_None);
+  __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":467
@@ -82887,7 +83574,7 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *                 c_input.base = _xcstr(data)
  *                 c_input.length = python.PyBytes_GET_SIZE(data)
  */
-      __pyx_t_1 = (__pyx_v_c_input != NULL);
+      __pyx_t_1 = ((__pyx_v_c_input != NULL) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":456
@@ -82915,8 +83602,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *                 c_input.end = c_input.base + c_input.length
  *         elif doc_ref._type == PARSER_DATA_FILENAME:
  */
-        __pyx_t_8 = __pyx_v_c_input->base;
-        __pyx_v_c_input->cur = __pyx_t_8;
+        __pyx_t_9 = __pyx_v_c_input->base;
+        __pyx_v_c_input->cur = __pyx_t_9;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":459
  *                 c_input.length = python.PyBytes_GET_SIZE(data)
@@ -83019,26 +83706,26 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  */
       __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 = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(__pyx_v_doc_ref->_file);
-      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_doc_ref->_file);
+      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_doc_ref->_file);
       __Pyx_GIVEREF(__pyx_v_doc_ref->_file);
       __Pyx_INCREF(((PyObject *)__pyx_v_context));
-      PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_context));
+      PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_context));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_context));
       __Pyx_INCREF(__pyx_v_url);
-      PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_url);
+      PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_url);
       __Pyx_GIVEREF(__pyx_v_url);
       __Pyx_INCREF(Py_None);
-      PyTuple_SET_ITEM(__pyx_t_6, 3, Py_None);
+      PyTuple_SET_ITEM(__pyx_t_7, 3, Py_None);
       __Pyx_GIVEREF(Py_None);
-      PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_2);
+      PyTuple_SET_ITEM(__pyx_t_7, 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 = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FileReaderContext)), ((PyObject *)__pyx_t_7), 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_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
       __pyx_v_file_context = ((struct __pyx_obj_4lxml_5etree__FileReaderContext *)__pyx_t_2);
       __pyx_t_2 = 0;
 
@@ -83092,7 +83779,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *         if c_input is not NULL:
  */
     __pyx_t_1 = (__pyx_v_data != Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":477
  * 
@@ -83101,7 +83789,7 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *         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 = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = __pyx_f_4lxml_5etree_10_TempStore_add(__pyx_v_context->_storage, __pyx_v_data); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L26;
     }
     __pyx_L26:;
@@ -83113,8 +83801,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *             return c_input
  * 
  */
-    __pyx_t_1 = (__pyx_v_c_input != NULL);
-    if (__pyx_t_1) {
+    __pyx_t_3 = ((__pyx_v_c_input != NULL) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":479
  *             context._storage.add(data)
@@ -83139,8 +83827,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *         return NULL
  * 
  */
-  __pyx_t_1 = (__pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_3 = ((__pyx_v_4lxml_5etree___DEFAULT_ENTITY_LOADER == NULL) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":482
  * 
@@ -83207,8 +83895,8 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_WriteUnraisable("lxml.etree._local_resolver", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -83273,7 +83961,7 @@ static int __pyx_pf_4lxml_5etree_14_ParserContext___cinit__(struct __pyx_obj_4lx
  *             self._lock = NULL
  *         else:
  */
-  __pyx_t_1 = (!ENABLE_THREADING);
+  __pyx_t_1 = ((!(ENABLE_THREADING != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":507
@@ -83356,7 +84044,8 @@ static void __pyx_pf_4lxml_5etree_14_ParserContext_2__dealloc__(struct __pyx_obj
  *         if config.ENABLE_THREADING and self._lock is not NULL:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_validator) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":514
  *     def __dealloc__(self):
@@ -83377,13 +84066,13 @@ static void __pyx_pf_4lxml_5etree_14_ParserContext_2__dealloc__(struct __pyx_obj
  *             python.PyThread_free_lock(self._lock)
  *         if self._c_ctxt is not NULL:
  */
-  if (ENABLE_THREADING) {
-    __pyx_t_1 = (__pyx_v_self->_lock != NULL);
-    __pyx_t_2 = __pyx_t_1;
+  if ((ENABLE_THREADING != 0)) {
+    __pyx_t_2 = ((__pyx_v_self->_lock != NULL) != 0);
+    __pyx_t_1 = __pyx_t_2;
   } else {
-    __pyx_t_2 = ENABLE_THREADING;
+    __pyx_t_1 = (ENABLE_THREADING != 0);
   }
-  if (__pyx_t_2) {
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":516
  *             self._validator.disconnect()
@@ -83404,8 +84093,8 @@ static void __pyx_pf_4lxml_5etree_14_ParserContext_2__dealloc__(struct __pyx_obj
  *             xmlparser.xmlFreeParserCtxt(self._c_ctxt)
  * 
  */
-  __pyx_t_2 = (__pyx_v_self->_c_ctxt != NULL);
-  if (__pyx_t_2) {
+  __pyx_t_1 = ((__pyx_v_self->_c_ctxt != NULL) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":518
  *             python.PyThread_free_lock(self._lock)
@@ -83567,7 +84256,7 @@ static void __pyx_f_4lxml_5etree_14_ParserContext__resetParserContext(struct __p
  *             if self._c_ctxt.html:
  *                 htmlparser.htmlCtxtReset(self._c_ctxt)
  */
-  __pyx_t_1 = (__pyx_v_self->_c_ctxt != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_c_ctxt != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":533
@@ -83577,7 +84266,8 @@ static void __pyx_f_4lxml_5etree_14_ParserContext__resetParserContext(struct __p
  *                 htmlparser.htmlCtxtReset(self._c_ctxt)
  *                 self._c_ctxt.disableSAX = 0 # work around bug in libxml2
  */
-    if (__pyx_v_self->_c_ctxt->html) {
+    __pyx_t_1 = (__pyx_v_self->_c_ctxt->html != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":534
  *         if self._c_ctxt is not NULL:
@@ -83606,7 +84296,7 @@ static void __pyx_f_4lxml_5etree_14_ParserContext__resetParserContext(struct __p
  *                     _LIBXML_VERSION_INT >= 20629: # work around bug in libxml2
  *                 xmlparser.xmlClearParserCtxt(self._c_ctxt)
  */
-    __pyx_t_1 = (__pyx_v_self->_c_ctxt->spaceTab != NULL);
+    __pyx_t_1 = ((__pyx_v_self->_c_ctxt->spaceTab != NULL) != 0);
     if (!__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":537
@@ -83616,7 +84306,7 @@ static void __pyx_f_4lxml_5etree_14_ParserContext__resetParserContext(struct __p
  *                 xmlparser.xmlClearParserCtxt(self._c_ctxt)
  * 
  */
-      __pyx_t_2 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20629);
+      __pyx_t_2 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20629) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
@@ -83669,11 +84359,11 @@ static int __pyx_f_4lxml_5etree_14_ParserContext_prepare(struct __pyx_obj_4lxml_
  *             with nogil:
  *                 result = python.PyThread_acquire_lock(
  */
-  if (ENABLE_THREADING) {
-    __pyx_t_1 = (__pyx_v_self->_lock != NULL);
+  if ((ENABLE_THREADING != 0)) {
+    __pyx_t_1 = ((__pyx_v_self->_lock != NULL) != 0);
     __pyx_t_2 = __pyx_t_1;
   } else {
-    __pyx_t_2 = ENABLE_THREADING;
+    __pyx_t_2 = (ENABLE_THREADING != 0);
   }
   if (__pyx_t_2) {
 
@@ -83722,7 +84412,7 @@ static int __pyx_f_4lxml_5etree_14_ParserContext_prepare(struct __pyx_obj_4lxml_
  *                 raise ParserError, u"parser locking failed"
  *         self._error_log.clear()
  */
-    __pyx_t_2 = (__pyx_v_result == 0);
+    __pyx_t_2 = ((__pyx_v_result == 0) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":547
@@ -83734,7 +84424,7 @@ static int __pyx_f_4lxml_5etree_14_ParserContext_prepare(struct __pyx_obj_4lxml_
  */
       __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_169), 0, 0);
+      __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_170), 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       {__pyx_filename = __pyx_f[5]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L7;
@@ -83772,7 +84462,8 @@ static int __pyx_f_4lxml_5etree_14_ParserContext_prepare(struct __pyx_obj_4lxml_
  *         return 0
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_self->_validator) != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_1 = (__pyx_t_2 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":551
  *         self._c_ctxt.sax.serror = _receiveParserError
@@ -83833,7 +84524,8 @@ static int __pyx_f_4lxml_5etree_14_ParserContext_cleanup(struct __pyx_obj_4lxml_
  *         self._resetParserContext()
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_validator) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":556
  *     cdef int cleanup(self) except -1:
@@ -83881,13 +84573,13 @@ static int __pyx_f_4lxml_5etree_14_ParserContext_cleanup(struct __pyx_obj_4lxml_
  *             python.PyThread_release_lock(self._lock)
  *         return 0
  */
-  if (ENABLE_THREADING) {
-    __pyx_t_1 = (__pyx_v_self->_lock != NULL);
-    __pyx_t_2 = __pyx_t_1;
+  if ((ENABLE_THREADING != 0)) {
+    __pyx_t_2 = ((__pyx_v_self->_lock != NULL) != 0);
+    __pyx_t_1 = __pyx_t_2;
   } else {
-    __pyx_t_2 = ENABLE_THREADING;
+    __pyx_t_1 = (ENABLE_THREADING != 0);
   }
-  if (__pyx_t_2) {
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":561
  *         self._c_ctxt.sax.serror = NULL
@@ -84066,7 +84758,7 @@ static PyObject *__pyx_f_4lxml_5etree__initParserContext(struct __pyx_obj_4lxml_
  *         context._initParserContext(c_ctxt)
  * 
  */
-  __pyx_t_2 = (__pyx_v_c_ctxt != NULL);
+  __pyx_t_2 = ((__pyx_v_c_ctxt != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":585
@@ -84143,9 +84835,9 @@ static void __pyx_f_4lxml_5etree__receiveParserError(void *__pyx_v_c_context, xm
  *             _forwardError(NULL, error)
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_c_context == NULL);
+  __pyx_t_1 = ((__pyx_v_c_context == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (((xmlParserCtxt *)__pyx_v_c_context)->_private == NULL);
+    __pyx_t_2 = ((((xmlParserCtxt *)__pyx_v_c_context)->_private == NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -84221,7 +84913,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *         if isinstance(filename, bytes):
  */
   __pyx_t_1 = (__pyx_v_filename != Py_None);
-  if (__pyx_t_1) {
+  if ((__pyx_t_1 != 0)) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":600
  *                           _ErrorLog error_log) except 0:
@@ -84230,10 +84922,10 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *         if isinstance(filename, bytes):
  *             filename = _decodeFilenameWithLength(
  */
-    __pyx_t_2 = (__pyx_v_ctxt->lastError.domain == XML_FROM_IO);
+    __pyx_t_2 = ((__pyx_v_ctxt->lastError.domain == XML_FROM_IO) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -84245,7 +84937,8 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *                 <bytes>filename, len(<bytes>filename))
  */
     __pyx_t_3 = PyBytes_Check(__pyx_v_filename); 
-    if (__pyx_t_3) {
+    __pyx_t_1 = (__pyx_t_3 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":603
  *         if isinstance(filename, bytes):
@@ -84276,8 +84969,8 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *             try:
  *                 message = (ctxt.lastError.message).decode('utf-8')
  */
-    __pyx_t_3 = (__pyx_v_ctxt->lastError.message != NULL);
-    if (__pyx_t_3) {
+    __pyx_t_1 = ((__pyx_v_ctxt->lastError.message != NULL) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":605
  *                 <bytes>filename, len(<bytes>filename))
@@ -84382,7 +85075,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
       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_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_171), ((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);
@@ -84399,7 +85092,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *         raise IOError, message
  *     elif error_log:
  */
-      __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_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_172), __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;
@@ -84425,8 +85118,8 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *         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 = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_3) {
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_error_log)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 615; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":617
  *     elif error_log:
@@ -84437,7 +85130,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  */
     __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_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_173)); 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);
@@ -84453,8 +85146,8 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *         message = (ctxt.lastError.message).strip()
  *         code = ctxt.lastError.code
  */
-  __pyx_t_3 = (__pyx_v_ctxt->lastError.message != NULL);
-  if (__pyx_t_3) {
+  __pyx_t_1 = ((__pyx_v_ctxt->lastError.message != NULL) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":619
  *             XMLSyntaxError, u"Document is not well formed")
@@ -84511,8 +85204,8 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *             message = u"line %d: %s" % (line, message)
  *         raise XMLSyntaxError(message, code, line, column)
  */
-    __pyx_t_3 = (__pyx_v_ctxt->lastError.line > 0);
-    if (__pyx_t_3) {
+    __pyx_t_1 = ((__pyx_v_ctxt->lastError.line > 0) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":624
  *         column = ctxt.lastError.int2
@@ -84531,7 +85224,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
       PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_message);
       __Pyx_GIVEREF(__pyx_v_message);
       __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_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_174), ((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);
@@ -84669,7 +85362,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *         __GLOBAL_PARSER_CONTEXT.initDocDict(result)
  * 
  */
-  __pyx_t_1 = (__pyx_v_result != NULL);
+  __pyx_t_1 = ((__pyx_v_result != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":635
@@ -84691,7 +85384,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *         if c_ctxt.myDoc is not result:
  *             __GLOBAL_PARSER_CONTEXT.initDocDict(c_ctxt.myDoc)
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->myDoc != NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->myDoc != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":638
@@ -84701,7 +85394,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             __GLOBAL_PARSER_CONTEXT.initDocDict(c_ctxt.myDoc)
  *             tree.xmlFreeDoc(c_ctxt.myDoc)
  */
-    __pyx_t_1 = (__pyx_v_c_ctxt->myDoc != __pyx_v_result);
+    __pyx_t_1 = ((__pyx_v_c_ctxt->myDoc != __pyx_v_result) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":639
@@ -84744,7 +85437,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *         if context._validator is not None and \
  *                 not context._validator.isvalid():
  */
-  __pyx_t_1 = (__pyx_v_result != NULL);
+  __pyx_t_1 = ((__pyx_v_result != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":644
@@ -84755,7 +85448,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             well_formed = 0 # actually not 'valid', but anyway ...
  */
     __pyx_t_1 = (((PyObject *)__pyx_v_context->_validator) != Py_None);
-    if (__pyx_t_1) {
+    if ((__pyx_t_1 != 0)) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":645
  *     if result is not NULL:
@@ -84764,10 +85457,10 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             well_formed = 0 # actually not 'valid', but anyway ...
  *         elif recover or (c_ctxt.wellFormed and
  */
-      __pyx_t_2 = (!__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid(__pyx_v_context->_validator));
+      __pyx_t_2 = ((!(__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid(__pyx_v_context->_validator) != 0)) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
-      __pyx_t_3 = __pyx_t_1;
+      __pyx_t_3 = (__pyx_t_1 != 0);
     }
     if (__pyx_t_3) {
 
@@ -84789,8 +85482,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *                          c_ctxt.lastError.level < xmlerror.XML_ERR_ERROR):
  *             well_formed = 1
  */
-    if (!__pyx_v_recover) {
-      if (__pyx_v_c_ctxt->wellFormed) {
+    if (!(__pyx_v_recover != 0)) {
+      if ((__pyx_v_c_ctxt->wellFormed != 0)) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":648
  *             well_formed = 0 # actually not 'valid', but anyway ...
@@ -84799,14 +85492,14 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             well_formed = 1
  *         elif not c_ctxt.replaceEntities and not c_ctxt.validate \
  */
-        __pyx_t_3 = (__pyx_v_c_ctxt->lastError.level < XML_ERR_ERROR);
+        __pyx_t_3 = ((__pyx_v_c_ctxt->lastError.level < XML_ERR_ERROR) != 0);
         __pyx_t_1 = __pyx_t_3;
       } else {
-        __pyx_t_1 = __pyx_v_c_ctxt->wellFormed;
+        __pyx_t_1 = (__pyx_v_c_ctxt->wellFormed != 0);
       }
       __pyx_t_3 = __pyx_t_1;
     } else {
-      __pyx_t_3 = __pyx_v_recover;
+      __pyx_t_3 = (__pyx_v_recover != 0);
     }
     if (__pyx_t_3) {
 
@@ -84828,7 +85521,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *                  and context is not None:
  *             # in this mode, we ignore errors about undefined entities
  */
-    __pyx_t_3 = (!__pyx_v_c_ctxt->replaceEntities);
+    __pyx_t_3 = ((!(__pyx_v_c_ctxt->replaceEntities != 0)) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":651
@@ -84838,10 +85531,10 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             # in this mode, we ignore errors about undefined entities
  *             for error in context._error_log.filter_from_errors():
  */
-      __pyx_t_1 = (!__pyx_v_c_ctxt->validate);
+      __pyx_t_1 = ((!(__pyx_v_c_ctxt->validate != 0)) != 0);
       if (__pyx_t_1) {
         __pyx_t_2 = (((PyObject *)__pyx_v_context) != Py_None);
-        __pyx_t_4 = __pyx_t_2;
+        __pyx_t_4 = (__pyx_t_2 != 0);
       } else {
         __pyx_t_4 = __pyx_t_1;
       }
@@ -84913,7 +85606,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
         __Pyx_GOTREF(__pyx_t_6);
         __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 = __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_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_175); 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 = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -84934,7 +85627,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
           __Pyx_GOTREF(__pyx_t_9);
           __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 = __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_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_176); 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 = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -85004,7 +85697,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             # free broken document
  *             tree.xmlFreeDoc(result)
  */
-    __pyx_t_4 = (!__pyx_v_well_formed);
+    __pyx_t_4 = ((!(__pyx_v_well_formed != 0)) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":665
@@ -85039,11 +85732,11 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             tree.xmlFreeDoc(result)
  */
   __pyx_t_4 = (((PyObject *)__pyx_v_context) != Py_None);
-  if (__pyx_t_4) {
-    __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._has_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_context));
+  if ((__pyx_t_4 != 0)) {
+    __pyx_t_1 = (((struct __pyx_vtabstruct_4lxml_5etree__ParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._has_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_context)) != 0);
     __pyx_t_3 = __pyx_t_1;
   } else {
-    __pyx_t_3 = __pyx_t_4;
+    __pyx_t_3 = (__pyx_t_4 != 0);
   }
   if (__pyx_t_3) {
 
@@ -85054,7 +85747,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             tree.xmlFreeDoc(result)
  *             result = NULL
  */
-    __pyx_t_3 = (__pyx_v_result != NULL);
+    __pyx_t_3 = ((__pyx_v_result != NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":670
@@ -85097,7 +85790,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *         if context is not None:
  *             _raiseParseError(c_ctxt, filename, context._error_log)
  */
-  __pyx_t_3 = (__pyx_v_result == NULL);
+  __pyx_t_3 = ((__pyx_v_result == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":675
@@ -85108,7 +85801,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *         else:
  */
     __pyx_t_3 = (((PyObject *)__pyx_v_context) != Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_4 = (__pyx_t_3 != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":676
  *     if result is NULL:
@@ -85146,12 +85840,12 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             result.URL = tree.xmlStrdup(_xcstr(filename))
  *         if result.encoding is NULL:
  */
-    __pyx_t_3 = (__pyx_v_result->URL == NULL);
-    if (__pyx_t_3) {
-      __pyx_t_4 = (__pyx_v_filename != Py_None);
-      __pyx_t_1 = __pyx_t_4;
+    __pyx_t_4 = ((__pyx_v_result->URL == NULL) != 0);
+    if (__pyx_t_4) {
+      __pyx_t_3 = (__pyx_v_filename != Py_None);
+      __pyx_t_1 = (__pyx_t_3 != 0);
     } else {
-      __pyx_t_1 = __pyx_t_3;
+      __pyx_t_1 = __pyx_t_4;
     }
     if (__pyx_t_1) {
 
@@ -85174,7 +85868,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *             result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8")
  * 
  */
-    __pyx_t_1 = (__pyx_v_result->encoding == NULL);
+    __pyx_t_1 = ((__pyx_v_result->encoding == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":683
@@ -85199,7 +85893,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *         # we currently need to do this here as libxml2 does not
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_context->_validator) != Py_None);
-  if (__pyx_t_1) {
+  if ((__pyx_t_1 != 0)) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":686
  * 
@@ -85208,11 +85902,11 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  *         # we currently need to do this here as libxml2 does not
  *         # support inserting default attributes during parse-time
  */
-    __pyx_t_3 = __pyx_v_context->_validator->_add_default_attributes;
+    __pyx_t_4 = (__pyx_v_context->_validator->_add_default_attributes != 0);
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_4 = (__pyx_t_1 != 0);
   }
-  if (__pyx_t_3) {
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":690
  *         # support inserting default attributes during parse-time
@@ -85272,7 +85966,7 @@ static int __pyx_f_4lxml_5etree__fixHtmlDictNames(xmlDict *__pyx_v_c_dict, xmlDo
  *         return 0
  *     c_node = c_doc.children
  */
-  __pyx_t_1 = (__pyx_v_c_doc == NULL);
+  __pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":697
@@ -85314,7 +86008,7 @@ static int __pyx_f_4lxml_5etree__fixHtmlDictNames(xmlDict *__pyx_v_c_dict, xmlDo
  *         if _fixHtmlDictNodeNames(c_dict, c_node) < 0:
  *             return -1
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":701
@@ -85324,7 +86018,7 @@ static int __pyx_f_4lxml_5etree__fixHtmlDictNames(xmlDict *__pyx_v_c_dict, xmlDo
  *             return -1
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  */
-    __pyx_t_1 = (__pyx_f_4lxml_5etree__fixHtmlDictNodeNames(__pyx_v_c_dict, __pyx_v_c_node) < 0);
+    __pyx_t_1 = ((__pyx_f_4lxml_5etree__fixHtmlDictNodeNames(__pyx_v_c_dict, __pyx_v_c_node) < 0) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":702
@@ -85398,7 +86092,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__fixHtmlDictNodeNames(xmlDict *__p
  *         return -1
  *     if c_name is not c_node.name:
  */
-  __pyx_t_1 = (__pyx_v_c_name == NULL);
+  __pyx_t_1 = ((__pyx_v_c_name == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":711
@@ -85421,7 +86115,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__fixHtmlDictNodeNames(xmlDict *__p
  *         tree.xmlFree(<char*>c_node.name)
  *         c_node.name = c_name
  */
-  __pyx_t_1 = (__pyx_v_c_name != __pyx_v_c_node->name);
+  __pyx_t_1 = ((__pyx_v_c_name != __pyx_v_c_node->name) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":713
@@ -85462,7 +86156,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__fixHtmlDictNodeNames(xmlDict *__p
  *         if c_name is NULL:
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_attr != NULL);
+    __pyx_t_1 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":717
@@ -85481,7 +86175,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__fixHtmlDictNodeNames(xmlDict *__p
  *             return -1
  *         if c_name is not c_attr.name:
  */
-    __pyx_t_1 = (__pyx_v_c_name == NULL);
+    __pyx_t_1 = ((__pyx_v_c_name == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":719
@@ -85504,7 +86198,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__fixHtmlDictNodeNames(xmlDict *__p
  *             tree.xmlFree(<char*>c_attr.name)
  *             c_attr.name = c_name
  */
-    __pyx_t_1 = (__pyx_v_c_name != __pyx_v_c_attr->name);
+    __pyx_t_1 = ((__pyx_v_c_name != __pyx_v_c_attr->name) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":721
@@ -85727,7 +86421,7 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
     __pyx_t_3 = __pyx_t_4;
   }
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __pyx_t_4 = (!__pyx_t_3);
+  __pyx_t_4 = ((!(__pyx_t_3 != 0)) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":748
@@ -85737,7 +86431,7 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
  * 
  *         self._parse_options = parse_options
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_176), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_177), 0, 0);
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -85853,7 +86547,8 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
  *         else:
  */
   __pyx_t_4 = (__pyx_v_encoding == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_3 = (__pyx_t_4 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":762
  * 
@@ -85900,8 +86595,8 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
  *                 raise LookupError, u"unknown encoding: '%s'" % encoding
  *             tree.xmlCharEncCloseFunc(enchandler)
  */
-    __pyx_t_4 = (__pyx_v_enchandler == NULL);
-    if (__pyx_t_4) {
+    __pyx_t_3 = ((__pyx_v_enchandler == NULL) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":767
  *             enchandler = tree.xmlFindCharEncodingHandler(_cstr(encoding))
@@ -85910,7 +86605,7 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
  *             tree.xmlCharEncCloseFunc(enchandler)
  *             self._default_encoding = encoding
  */
-      __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_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_178), __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;
@@ -85969,9 +86664,10 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
   struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -85985,7 +86681,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             if self._schema is not None:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_parser_context) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":774
  *         cdef xmlparser.xmlParserCtxt* pctxt
@@ -85994,16 +86691,16 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             if self._schema is not None:
  *                 self._parser_context._validator = \
  */
-    __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 = 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_t_3 = __pyx_v_self->target;
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_createContext(__pyx_v_self, __pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_self->_parser_context);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_parser_context));
-    __pyx_v_self->_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_self->_parser_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":775
  *         if self._parser_context is None:
@@ -86012,7 +86709,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 self._parser_context._validator = \
  *                     self._schema._newSaxValidator(
  */
-    __pyx_t_1 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
+    __pyx_t_2 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":778
@@ -86022,8 +86720,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             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 = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_4 = ((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_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":776
  *             self._parser_context = self._createContext(self.target)
@@ -86032,11 +86730,11 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                     self._schema._newSaxValidator(
  *                         self._parse_options & xmlparser.XML_PARSE_DTDATTR)
  */
-      __Pyx_GIVEREF(__pyx_t_3);
+      __Pyx_GIVEREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_v_self->_parser_context->_validator);
       __Pyx_DECREF(((PyObject *)__pyx_v_self->_parser_context->_validator));
-      __pyx_v_self->_parser_context->_validator = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)__pyx_t_3);
-      __pyx_t_3 = 0;
+      __pyx_v_self->_parser_context->_validator = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)__pyx_t_4);
+      __pyx_t_4 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -86057,7 +86755,7 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 raise MemoryError()
  *             _initParserContext(self._parser_context, self._resolvers, pctxt)
  */
-    __pyx_t_1 = (__pyx_v_pctxt == NULL);
+    __pyx_t_1 = ((__pyx_v_pctxt == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":781
@@ -86079,15 +86777,15 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             if self._remove_comments:
  *                 pctxt.sax.comment = NULL
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_parser_context);
+    __pyx_t_4 = ((PyObject *)__pyx_v_self->_parser_context);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->_resolvers);
     __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 = 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_t_5 = __pyx_f_4lxml_5etree__initParserContext(((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_4), ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_3), __pyx_v_pctxt); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":783
  *                 raise MemoryError()
@@ -86096,7 +86794,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 pctxt.sax.comment = NULL
  *             if self._remove_pis:
  */
-    if (__pyx_v_self->_remove_comments) {
+    __pyx_t_1 = (__pyx_v_self->_remove_comments != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":784
  *             _initParserContext(self._parser_context, self._resolvers, pctxt)
@@ -86117,7 +86816,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 pctxt.sax.processingInstruction = NULL
  *             if self._strip_cdata:
  */
-    if (__pyx_v_self->_remove_pis) {
+    __pyx_t_1 = (__pyx_v_self->_remove_pis != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":786
  *                 pctxt.sax.comment = NULL
@@ -86138,7 +86838,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 # hard switch-off for CDATA nodes => makes them plain text
  *                 pctxt.sax.cdataBlock = NULL
  */
-    if (__pyx_v_self->_strip_cdata) {
+    __pyx_t_1 = (__pyx_v_self->_strip_cdata != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":789
  *             if self._strip_cdata:
@@ -86170,9 +86871,9 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
   __pyx_r = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._BaseParser._getParserContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -86194,9 +86895,10 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
   struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -86210,7 +86912,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             if self._schema is not None:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_push_parser_context) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":795
  *         cdef xmlparser.xmlParserCtxt* pctxt
@@ -86219,16 +86922,16 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             if self._schema is not None:
  *                 self._push_parser_context._validator = \
  */
-    __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 = 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_t_3 = __pyx_v_self->target;
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_createContext(__pyx_v_self, __pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_self->_push_parser_context);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_push_parser_context));
-    __pyx_v_self->_push_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_self->_push_parser_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":796
  *         if self._push_parser_context is None:
@@ -86237,7 +86940,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 self._push_parser_context._validator = \
  *                     self._schema._newSaxValidator(
  */
-    __pyx_t_1 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
+    __pyx_t_2 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":799
@@ -86247,8 +86951,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             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 = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_4 = ((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_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 798; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":797
  *             self._push_parser_context = self._createContext(self.target)
@@ -86257,11 +86961,11 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                     self._schema._newSaxValidator(
  *                         self._parse_options & xmlparser.XML_PARSE_DTDATTR)
  */
-      __Pyx_GIVEREF(__pyx_t_3);
+      __Pyx_GIVEREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_v_self->_push_parser_context->_validator);
       __Pyx_DECREF(((PyObject *)__pyx_v_self->_push_parser_context->_validator));
-      __pyx_v_self->_push_parser_context->_validator = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)__pyx_t_3);
-      __pyx_t_3 = 0;
+      __pyx_v_self->_push_parser_context->_validator = ((struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)__pyx_t_4);
+      __pyx_t_4 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -86282,7 +86986,7 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 raise MemoryError()
  *             _initParserContext(
  */
-    __pyx_t_1 = (__pyx_v_pctxt == NULL);
+    __pyx_t_1 = ((__pyx_v_pctxt == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":802
@@ -86304,15 +87008,15 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *             if self._remove_comments:
  *                 pctxt.sax.comment = NULL
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_push_parser_context);
+    __pyx_t_4 = ((PyObject *)__pyx_v_self->_push_parser_context);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->_resolvers);
     __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 = 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_t_5 = __pyx_f_4lxml_5etree__initParserContext(((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_4), ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)__pyx_t_3), __pyx_v_pctxt); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":805
  *             _initParserContext(
@@ -86321,7 +87025,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 pctxt.sax.comment = NULL
  *             if self._remove_pis:
  */
-    if (__pyx_v_self->_remove_comments) {
+    __pyx_t_1 = (__pyx_v_self->_remove_comments != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":806
  *                 self._push_parser_context, self._resolvers, pctxt)
@@ -86342,7 +87047,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 pctxt.sax.processingInstruction = NULL
  *             if self._strip_cdata:
  */
-    if (__pyx_v_self->_remove_pis) {
+    __pyx_t_1 = (__pyx_v_self->_remove_pis != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":808
  *                 pctxt.sax.comment = NULL
@@ -86363,7 +87069,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *                 # hard switch-off for CDATA nodes => makes them plain text
  *                 pctxt.sax.cdataBlock = NULL
  */
-    if (__pyx_v_self->_strip_cdata) {
+    __pyx_t_1 = (__pyx_v_self->_strip_cdata != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":811
  *             if self._strip_cdata:
@@ -86395,9 +87102,9 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
   __pyx_r = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._BaseParser._getPushParserContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -86419,8 +87126,9 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
   struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -86434,7 +87142,8 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *         context = _TargetParserContext()
  */
   __pyx_t_1 = (__pyx_v_target == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":817
  *         cdef _TargetParserContext context
@@ -86444,10 +87153,10 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *         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 = 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_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ParserContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = ((struct __pyx_obj_4lxml_5etree__ParserContext *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -86460,10 +87169,10 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *         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 = 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;
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__TargetParserContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__TargetParserContext *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":819
  *             return _ParserContext()
@@ -86472,7 +87181,7 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
  *         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 = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree_20_TargetParserContext__setTarget(__pyx_v_context, __pyx_v_target); if (unlikely(__pyx_t_4 == -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":820
  *         context = _TargetParserContext()
@@ -86489,7 +87198,7 @@ static struct __pyx_obj_4lxml_5etree__ParserContext *__pyx_f_4lxml_5etree_11_Bas
   __pyx_r = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._BaseParser._createContext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -86539,11 +87248,11 @@ static int __pyx_f_4lxml_5etree_11_BaseParser__registerHtmlErrorHandler(CYTHON_U
  */
   __pyx_t_2 = (__pyx_v_sax != NULL);
   if (__pyx_t_2) {
-    if (__pyx_v_sax->initialized) {
+    if ((__pyx_v_sax->initialized != 0)) {
       __pyx_t_3 = (__pyx_v_sax->initialized != XML_SAX2_MAGIC);
       __pyx_t_4 = __pyx_t_3;
     } else {
-      __pyx_t_4 = __pyx_v_sax->initialized;
+      __pyx_t_4 = (__pyx_v_sax->initialized != 0);
     }
     __pyx_t_3 = __pyx_t_4;
   } else {
@@ -86558,7 +87267,7 @@ static int __pyx_f_4lxml_5etree_11_BaseParser__registerHtmlErrorHandler(CYTHON_U
  *                 sax = <xmlparser.xmlSAXHandler*> stdlib.malloc(sizeof(xmlparser.xmlSAXHandler))
  *                 if sax is NULL:
  */
-    __pyx_t_3 = (((xmlSAXHandlerV1 *)__pyx_v_sax) == (&htmlDefaultSAXHandler));
+    __pyx_t_3 = ((((xmlSAXHandlerV1 *)__pyx_v_sax) == (&htmlDefaultSAXHandler)) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":827
@@ -86577,7 +87286,7 @@ static int __pyx_f_4lxml_5etree_11_BaseParser__registerHtmlErrorHandler(CYTHON_U
  *                     raise MemoryError()
  *                 cstring_h.memcpy(sax, &htmlparser.htmlDefaultSAXHandler,
  */
-      __pyx_t_3 = (__pyx_v_sax == NULL);
+      __pyx_t_3 = ((__pyx_v_sax == NULL) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":829
@@ -86694,6 +87403,7 @@ static xmlParserCtxt *__pyx_f_4lxml_5etree_11_BaseParser__newParserCtxt(struct _
   xmlParserCtxt *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -86706,7 +87416,8 @@ static xmlParserCtxt *__pyx_f_4lxml_5etree_11_BaseParser__newParserCtxt(struct _
  *             c_ctxt = htmlparser.htmlCreateMemoryParserCtxt('dummy', 5)
  *             self._registerHtmlErrorHandler(c_ctxt)
  */
-  if (__pyx_v_self->_for_html) {
+  __pyx_t_1 = (__pyx_v_self->_for_html != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":843
  *         cdef xmlparser.xmlParserCtxt* c_ctxt
@@ -86724,7 +87435,7 @@ static xmlParserCtxt *__pyx_f_4lxml_5etree_11_BaseParser__newParserCtxt(struct _
  *         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 = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__BaseParser *)__pyx_v_self->__pyx_vtab)->_registerHtmlErrorHandler(__pyx_v_self, __pyx_v_c_ctxt); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   /*else*/ {
@@ -86790,7 +87501,7 @@ static xmlParserCtxt *__pyx_f_4lxml_5etree_11_BaseParser__newPushParserCtxt(stru
  *             c_ctxt = htmlparser.htmlCreatePushParserCtxt(
  */
   __pyx_t_2 = (__pyx_v_self->_filename != Py_None);
-  if (__pyx_t_2) {
+  if ((__pyx_t_2 != 0)) {
     __pyx_t_3 = __pyx_v_self->_filename;
     __Pyx_INCREF(__pyx_t_3);
     __pyx_t_1 = PyBytes_AS_STRING(__pyx_t_3);
@@ -86807,7 +87518,8 @@ static xmlParserCtxt *__pyx_f_4lxml_5etree_11_BaseParser__newPushParserCtxt(stru
  *             c_ctxt = htmlparser.htmlCreatePushParserCtxt(
  *                 NULL, NULL, NULL, 0, c_filename, tree.XML_CHAR_ENCODING_NONE)
  */
-  if (__pyx_v_self->_for_html) {
+  __pyx_t_2 = (__pyx_v_self->_for_html != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":854
  *         if self._for_html:
@@ -86825,7 +87537,7 @@ static xmlParserCtxt *__pyx_f_4lxml_5etree_11_BaseParser__newPushParserCtxt(stru
  *                 self._registerHtmlErrorHandler(c_ctxt)
  *                 htmlparser.htmlCtxtUseOptions(c_ctxt, self._parse_options)
  */
-    __pyx_t_2 = (__pyx_v_c_ctxt != NULL);
+    __pyx_t_2 = ((__pyx_v_c_ctxt != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":856
@@ -86868,7 +87580,7 @@ static xmlParserCtxt *__pyx_f_4lxml_5etree_11_BaseParser__newPushParserCtxt(stru
  *                 xmlparser.xmlCtxtUseOptions(c_ctxt, self._parse_options)
  *         return c_ctxt
  */
-    __pyx_t_2 = (__pyx_v_c_ctxt != NULL);
+    __pyx_t_2 = ((__pyx_v_c_ctxt != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":862
@@ -87056,7 +87768,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_BaseParser_7version___get__(CYTHON_UNU
   __Pyx_XDECREF(__pyx_r);
   __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_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_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_179), __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);
@@ -87163,7 +87875,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_BaseParser_2setElementClassLookup(stru
  * 
  *     def set_element_class_lookup(self, ElementClassLookup lookup = None):
  */
-  __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_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_180); 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 = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
@@ -87717,9 +88429,9 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseUnicodeDoc(struct __pyx_
  *             text_utf = python.PyUnicode_AsUTF8String(utext)
  *             py_buffer_len = python.PyBytes_GET_SIZE(text_utf)
  */
-  __pyx_t_1 = (__pyx_v_py_buffer_len > INT_MAX);
+  __pyx_t_1 = ((__pyx_v_py_buffer_len > INT_MAX) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL);
+    __pyx_t_2 = ((__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -87859,7 +88571,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseUnicodeDoc(struct __pyx_
  *                     result = htmlparser.htmlCtxtReadMemory(
  *                         pctxt, c_text, buffer_len, c_filename, _UNICODE_ENCODING,
  */
-          if (__pyx_v_self->_for_html) {
+          __pyx_t_3 = (__pyx_v_self->_for_html != 0);
+          if (__pyx_t_3) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":958
  *                     result = htmlparser.htmlCtxtReadMemory(
@@ -87877,7 +88590,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseUnicodeDoc(struct __pyx_
  *                         if _fixHtmlDictNames(pctxt.dict, result) < 0:
  *                             tree.xmlFreeDoc(result)
  */
-            __pyx_t_3 = (__pyx_v_result != NULL);
+            __pyx_t_3 = ((__pyx_v_result != NULL) != 0);
             if (__pyx_t_3) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":960
@@ -87887,7 +88600,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseUnicodeDoc(struct __pyx_
  *                             tree.xmlFreeDoc(result)
  *                             result = NULL
  */
-              __pyx_t_3 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0);
+              __pyx_t_3 = ((__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0) != 0);
               if (__pyx_t_3) {
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":961
@@ -88043,7 +88756,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
   xmlParserCtxt *__pyx_t_4;
-  xmlDoc *__pyx_t_5;
+  int __pyx_t_5;
+  xmlDoc *__pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -88056,7 +88770,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  *             raise ParserError, u"string is too long to parse it with libxml2"
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_len > INT_MAX);
+  __pyx_t_1 = ((__pyx_v_c_len > INT_MAX) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":982
@@ -88068,7 +88782,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  */
     __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_180), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_181), 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -88132,7 +88846,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  *             else:
  */
     __pyx_t_1 = (__pyx_v_self->_default_encoding == Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_5 = (__pyx_t_1 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":991
  * 
@@ -88191,7 +88906,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  *                     result = htmlparser.htmlCtxtReadMemory(
  *                         pctxt, c_text, c_len, c_filename,
  */
-          if (__pyx_v_self->_for_html) {
+          __pyx_t_5 = (__pyx_v_self->_for_html != 0);
+          if (__pyx_t_5) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1000
  *                     result = htmlparser.htmlCtxtReadMemory(
@@ -88209,8 +88925,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  *                         if _fixHtmlDictNames(pctxt.dict, result) < 0:
  *                             tree.xmlFreeDoc(result)
  */
-            __pyx_t_1 = (__pyx_v_result != NULL);
-            if (__pyx_t_1) {
+            __pyx_t_5 = ((__pyx_v_result != NULL) != 0);
+            if (__pyx_t_5) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1002
  *                         c_encoding, self._parse_options)
@@ -88219,8 +88935,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  *                             tree.xmlFreeDoc(result)
  *                             result = NULL
  */
-              __pyx_t_1 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0);
-              if (__pyx_t_1) {
+              __pyx_t_5 = ((__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0) != 0);
+              if (__pyx_t_5) {
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1003
  *                     if result is not NULL:
@@ -88291,8 +89007,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  *         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 = 1011; __pyx_clineno = __LINE__; goto __pyx_L5;}
-    __pyx_r = __pyx_t_5;
+    __pyx_t_6 = ((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_6 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L5;}
+    __pyx_r = __pyx_t_6;
     goto __pyx_L4;
   }
 
@@ -88374,7 +89090,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFile(struct __pyx
   int __pyx_t_2;
   xmlParserCtxt *__pyx_t_3;
   int __pyx_t_4;
-  xmlDoc *__pyx_t_5;
+  int __pyx_t_5;
+  xmlDoc *__pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -88446,7 +89163,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFile(struct __pyx
  *             else:
  */
     __pyx_t_4 = (__pyx_v_self->_default_encoding == Py_None);
-    if (__pyx_t_4) {
+    __pyx_t_5 = (__pyx_t_4 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1029
  * 
@@ -88505,7 +89223,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFile(struct __pyx
  *                     result = htmlparser.htmlCtxtReadFile(
  *                         pctxt, c_filename, c_encoding, self._parse_options)
  */
-          if (__pyx_v_self->_for_html) {
+          __pyx_t_5 = (__pyx_v_self->_for_html != 0);
+          if (__pyx_t_5) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1037
  *                 if self._for_html:
@@ -88523,8 +89242,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFile(struct __pyx
  *                         if _fixHtmlDictNames(pctxt.dict, result) < 0:
  *                             tree.xmlFreeDoc(result)
  */
-            __pyx_t_4 = (__pyx_v_result != NULL);
-            if (__pyx_t_4) {
+            __pyx_t_5 = ((__pyx_v_result != NULL) != 0);
+            if (__pyx_t_5) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1039
  *                         pctxt, c_filename, c_encoding, self._parse_options)
@@ -88533,8 +89252,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFile(struct __pyx
  *                             tree.xmlFreeDoc(result)
  *                             result = NULL
  */
-              __pyx_t_4 = (__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0);
-              if (__pyx_t_4) {
+              __pyx_t_5 = ((__pyx_f_4lxml_5etree__fixHtmlDictNames(__pyx_v_pctxt->dict, __pyx_v_result) < 0) != 0);
+              if (__pyx_t_5) {
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1040
  *                     if result is not NULL:
@@ -88607,9 +89326,9 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFile(struct __pyx
  */
     __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 = 1047; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_6 = ((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_6 == 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;
+    __pyx_r = __pyx_t_6;
     goto __pyx_L3;
   }
 
@@ -88707,7 +89426,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFilelike(struct _
  * 
  */
   __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);
+  __pyx_t_2 = ((!__pyx_t_1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1058
@@ -89019,10 +89738,10 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  const char *__pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  xmlParserCtxt *__pyx_t_4;
-  int __pyx_t_5;
+  int __pyx_t_2;
+  const char *__pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  xmlParserCtxt *__pyx_t_5;
   int __pyx_t_6;
   int __pyx_t_7;
   PyObject *__pyx_t_8 = NULL;
@@ -89052,7 +89771,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                 c_encoding = NULL
  */
   __pyx_t_1 = PyBytes_Check(__pyx_v_data); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1119
  *         cdef bint recover = self._parse_options & xmlparser.XML_PARSE_RECOVER
@@ -89061,7 +89781,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                 c_encoding = NULL
  *             else:
  */
-    __pyx_t_1 = (__pyx_v_self->__pyx_base._default_encoding == Py_None);
+    __pyx_t_2 = (__pyx_v_self->__pyx_base._default_encoding == Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1120
@@ -89083,8 +89804,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *             c_data = _cstr(data)
  *             py_buffer_len = python.PyBytes_GET_SIZE(data)
  */
-      __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_t_3 = __Pyx_PyObject_AsString(__pyx_v_self->__pyx_base._default_encoding); if (unlikely((!__pyx_t_3) && PyErr_Occurred())) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_v_c_encoding = __pyx_t_3;
     }
     __pyx_L4:;
 
@@ -89116,7 +89837,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                 raise ParserError, \
  */
   __pyx_t_1 = PyUnicode_Check(__pyx_v_data); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1126
  *             py_buffer_len = python.PyBytes_GET_SIZE(data)
@@ -89125,8 +89847,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                 raise ParserError, \
  *                     u"Unicode parsing is not supported on this platform"
  */
-    __pyx_t_1 = (__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1127
  *         elif isinstance(data, unicode):
@@ -89135,10 +89857,10 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                     u"Unicode parsing is not supported on this platform"
  *             c_encoding = _UNICODE_ENCODING
  */
-      __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_181), 0, 0);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParserError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_182), 0, 0);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
@@ -89181,7 +89903,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  * 
  *         context = self._getPushParserContext()
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_182), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_183), 0, 0);
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -89193,10 +89915,10 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *         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 = 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;
+  __pyx_t_4 = ((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_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1135; __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":1136
  * 
@@ -89205,8 +89927,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *         error = 0
  *         if not self._feed_parser_running:
  */
-  __pyx_t_4 = __pyx_v_context->_c_ctxt;
-  __pyx_v_pctxt = __pyx_t_4;
+  __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":1137
  *         context = self._getPushParserContext()
@@ -89224,8 +89946,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *             context.prepare()
  *             self._feed_parser_running = 1
  */
-  __pyx_t_1 = (!__pyx_v_self->_feed_parser_running);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((!(__pyx_v_self->_feed_parser_running != 0)) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1139
  *         error = 0
@@ -89234,7 +89956,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *             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 = 1139; __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 = 1139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1140
  *         if not self._feed_parser_running:
@@ -89261,7 +89983,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                 error = _htmlCtxtResetPush(
  *                     pctxt, NULL, 0, c_encoding, self._parse_options)
  */
-    if (__pyx_v_self->__pyx_base._for_html) {
+    __pyx_t_2 = (__pyx_v_self->__pyx_base._for_html != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1144
  *             if self._for_html:
@@ -89270,8 +89993,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *             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 = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_v_error = __pyx_t_5;
+      __pyx_t_6 = __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_6 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_v_error = __pyx_t_6;
       goto __pyx_L7;
     }
     /*else*/ {
@@ -89307,19 +90030,19 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                 if py_buffer_len > limits.INT_MAX:
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_py_buffer_len > 0);
-    if (__pyx_t_1) {
-      __pyx_t_6 = (__pyx_v_error == 0);
-      if (!__pyx_t_6) {
-        __pyx_t_7 = __pyx_v_recover;
+    __pyx_t_2 = ((__pyx_v_py_buffer_len > 0) != 0);
+    if (__pyx_t_2) {
+      __pyx_t_1 = ((__pyx_v_error == 0) != 0);
+      if (!__pyx_t_1) {
+        __pyx_t_7 = (__pyx_v_recover != 0);
       } else {
-        __pyx_t_7 = __pyx_t_6;
+        __pyx_t_7 = __pyx_t_1;
       }
-      __pyx_t_6 = __pyx_t_7;
+      __pyx_t_1 = __pyx_t_7;
     } else {
-      __pyx_t_6 = __pyx_t_1;
+      __pyx_t_1 = __pyx_t_2;
     }
-    if (!__pyx_t_6) break;
+    if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1153
  * 
@@ -89342,8 +90065,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                     buffer_len = limits.INT_MAX
  *                 else:
  */
-          __pyx_t_6 = (__pyx_v_py_buffer_len > INT_MAX);
-          if (__pyx_t_6) {
+          __pyx_t_1 = ((__pyx_v_py_buffer_len > INT_MAX) != 0);
+          if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1155
  *             with nogil:
@@ -89375,7 +90098,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                     error = htmlparser.htmlParseChunk(pctxt, c_data, buffer_len, 0)
  *                 else:
  */
-          if (__pyx_v_self->__pyx_base._for_html) {
+          __pyx_t_1 = (__pyx_v_self->__pyx_base._for_html != 0);
+          if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1159
  *                     buffer_len = <int>py_buffer_len
@@ -89440,19 +90164,19 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                 # in this mode, we ignore errors about undefined entities
  *                 for entry in context._error_log.filter_from_errors():
  */
-    if (__pyx_v_error) {
-      __pyx_t_6 = (!__pyx_v_pctxt->replaceEntities);
-      if (__pyx_t_6) {
-        __pyx_t_1 = (!__pyx_v_pctxt->validate);
-        __pyx_t_7 = __pyx_t_1;
+    if ((__pyx_v_error != 0)) {
+      __pyx_t_1 = (!(__pyx_v_pctxt->replaceEntities != 0));
+      if (__pyx_t_1) {
+        __pyx_t_2 = (!(__pyx_v_pctxt->validate != 0));
+        __pyx_t_7 = __pyx_t_2;
       } else {
-        __pyx_t_7 = __pyx_t_6;
+        __pyx_t_7 = __pyx_t_1;
       }
-      __pyx_t_6 = __pyx_t_7;
+      __pyx_t_1 = __pyx_t_7;
     } else {
-      __pyx_t_6 = __pyx_v_error;
+      __pyx_t_1 = (__pyx_v_error != 0);
     }
-    if (__pyx_t_6) {
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1167
  *             if error and not pctxt.replaceEntities and not pctxt.validate:
@@ -89461,37 +90185,37 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *                     if entry.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
  *                            entry.type != ErrorTypes.ERR_UNDECLARED_ENTITY:
  */
-      __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 = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_context->_error_log), __pyx_n_s__filter_from_errors); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_8 = PyObject_Call(__pyx_t_4, ((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;
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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_4 = __pyx_t_8; __Pyx_INCREF(__pyx_t_4); __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 = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_3);
-        __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
+        __pyx_t_9 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext;
       }
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       for (;;) {
-        if (!__pyx_t_10 && PyList_CheckExact(__pyx_t_3)) {
-          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
+        if (!__pyx_t_10 && PyList_CheckExact(__pyx_t_4)) {
+          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_4)) 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 = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __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 = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __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;
+        } else if (!__pyx_t_10 && PyTuple_CheckExact(__pyx_t_4)) {
+          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_4)) 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 = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __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 = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __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);
+          __pyx_t_8 = __pyx_t_10(__pyx_t_4);
           if (unlikely(!__pyx_t_8)) {
             if (PyErr_Occurred()) {
               if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
@@ -89516,15 +90240,15 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
         __Pyx_GOTREF(__pyx_t_8);
         __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 = __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_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_175); 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 = 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 = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_1 < 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) {
+        if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1169
  *                 for entry in context._error_log.filter_from_errors():
@@ -89537,7 +90261,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
           __Pyx_GOTREF(__pyx_t_11);
           __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 = __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_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_176); 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 = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -89545,11 +90269,11 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
           __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 = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-          __pyx_t_1 = __pyx_t_7;
+          __pyx_t_2 = __pyx_t_7;
         } else {
-          __pyx_t_1 = __pyx_t_6;
+          __pyx_t_2 = __pyx_t_1;
         }
-        if (__pyx_t_1) {
+        if (__pyx_t_2) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1170
  *                     if entry.type != ErrorTypes.WAR_UNDECLARED_ENTITY and \
@@ -89575,7 +90299,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
         __pyx_v_error = 0;
       }
       __pyx_L19_break:;
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       goto __pyx_L17;
     }
     __pyx_L17:;
@@ -89588,19 +90312,19 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *             self._feed_parser_running = 0
  *             try:
  */
-  __pyx_t_1 = (!__pyx_v_recover);
-  if (__pyx_t_1) {
-    if (!__pyx_v_error) {
-      __pyx_t_6 = (!__pyx_v_pctxt->wellFormed);
-      __pyx_t_7 = __pyx_t_6;
+  __pyx_t_2 = (!(__pyx_v_recover != 0));
+  if (__pyx_t_2) {
+    if (!(__pyx_v_error != 0)) {
+      __pyx_t_1 = (!(__pyx_v_pctxt->wellFormed != 0));
+      __pyx_t_7 = __pyx_t_1;
     } else {
-      __pyx_t_7 = __pyx_v_error;
+      __pyx_t_7 = (__pyx_v_error != 0);
     }
-    __pyx_t_6 = __pyx_t_7;
+    __pyx_t_1 = __pyx_t_7;
   } else {
-    __pyx_t_6 = __pyx_t_1;
+    __pyx_t_1 = __pyx_t_2;
   }
-  if (__pyx_t_6) {
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1175
  * 
@@ -89627,9 +90351,9 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  *             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 = 1177; __pyx_clineno = __LINE__; goto __pyx_L24;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_4 = ((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_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1177; __pyx_clineno = __LINE__; goto __pyx_L24;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     }
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1179
@@ -89650,13 +90374,13 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
         __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
         __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
         __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
-        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
         __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
         __pyx_exc_lineno = __pyx_lineno;
         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 = 1179; __pyx_clineno = __LINE__; goto __pyx_L26_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 = 1179; __pyx_clineno = __LINE__; goto __pyx_L26_error;}
       goto __pyx_L27;
       __pyx_L26_error:;
       if (__pyx_why == 4) {
@@ -89684,7 +90408,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_8);
   __Pyx_XDECREF(__pyx_t_11);
   __Pyx_XDECREF(__pyx_t_12);
@@ -89730,6 +90454,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_2close(struct __pyx_obj_4lx
   PyObject *__pyx_t_4 = NULL;
   xmlParserCtxt *__pyx_t_5;
   int __pyx_t_6;
+  int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -89742,7 +90467,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_2close(struct __pyx_obj_4lx
  *             raise XMLSyntaxError(u"no element found",
  *                                  xmlerror.XML_ERR_INTERNAL_ERROR, 0, 0)
  */
-  __pyx_t_1 = (!__pyx_v_self->_feed_parser_running);
+  __pyx_t_1 = ((!(__pyx_v_self->_feed_parser_running != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1197
@@ -89766,9 +90491,9 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_2close(struct __pyx_obj_4lx
     __Pyx_GOTREF(__pyx_t_3);
     __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_183));
-    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_183));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_183));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_184));
+    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_184));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_184));
     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_int_0);
@@ -89827,7 +90552,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_2close(struct __pyx_obj_4lx
  *             htmlparser.htmlParseChunk(pctxt, NULL, 0, 1)
  *         else:
  */
-  if (__pyx_v_self->__pyx_base._for_html) {
+  __pyx_t_1 = (__pyx_v_self->__pyx_base._for_html != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1205
  *         self._feed_parser_running = 0
@@ -89927,7 +90653,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_2close(struct __pyx_obj_4lx
  *         else:
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_result, ((PyObject*)__pyx_ptype_4lxml_5etree__Document)); 
-  if (__pyx_t_1) {
+  __pyx_t_7 = (__pyx_t_1 != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1214
  * 
@@ -90000,9 +90727,9 @@ static int __pyx_f_4lxml_5etree__htmlCtxtResetPush(xmlParserCtxt *__pyx_v_c_ctxt
  *         c_ctxt.spaceTab = <int*>tree.xmlMalloc(10 * sizeof(int))
  *         c_ctxt.spaceMax = 10
  */
-  __pyx_t_1 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20629);
+  __pyx_t_1 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20629) != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_ctxt->spaceTab == NULL);
+    __pyx_t_2 = ((__pyx_v_c_ctxt->spaceTab == NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -90046,7 +90773,8 @@ static int __pyx_f_4lxml_5etree__htmlCtxtResetPush(xmlParserCtxt *__pyx_v_c_ctxt
  *         return error
  * 
  */
-  if (__pyx_v_error) {
+  __pyx_t_3 = (__pyx_v_error != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1230
  *     error = xmlparser.xmlCtxtResetPush(c_ctxt, NULL, 0, NULL, c_encoding)
@@ -90095,9 +90823,9 @@ static int __pyx_f_4lxml_5etree__htmlCtxtResetPush(xmlParserCtxt *__pyx_v_c_ctxt
  *         return htmlparser.htmlParseChunk(c_ctxt, c_data, buffer_len, 0)
  *     return 0
  */
-  __pyx_t_3 = (__pyx_v_c_data != NULL);
+  __pyx_t_3 = ((__pyx_v_c_data != NULL) != 0);
   if (__pyx_t_3) {
-    __pyx_t_1 = (__pyx_v_buffer_len > 0);
+    __pyx_t_1 = ((__pyx_v_buffer_len > 0) != 0);
     __pyx_t_2 = __pyx_t_1;
   } else {
     __pyx_t_2 = __pyx_t_3;
@@ -90170,12 +90898,12 @@ static int __pyx_pw_4lxml_5etree_9XMLParser_1__init__(PyObject *__pyx_v_self, Py
  *                  ns_clean=False, recover=False, XMLSchema schema=None,
  */
     values[0] = ((PyObject *)Py_None);
-    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;
+    values[1] = __pyx_k_185;
+    values[2] = __pyx_k_186;
+    values[3] = __pyx_k_187;
+    values[4] = __pyx_k_188;
+    values[5] = __pyx_k_189;
+    values[6] = __pyx_k_190;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1299
  *     def __init__(self, *, encoding=None, attribute_defaults=False,
@@ -90185,12 +90913,12 @@ static int __pyx_pw_4lxml_5etree_9XMLParser_1__init__(PyObject *__pyx_v_self, Py
  *                  remove_comments=False, remove_pis=False, strip_cdata=True,
  */
     values[7] = (PyObject *)((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None);
-    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;
+    values[8] = __pyx_k_191;
+    values[9] = __pyx_k_192;
+    values[10] = __pyx_k_193;
+    values[11] = __pyx_k_194;
+    values[12] = __pyx_k_195;
+    values[13] = __pyx_k_196;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1302
  *                  huge_tree=False, remove_blank_text=False, resolve_entities=True,
@@ -90200,7 +90928,7 @@ static int __pyx_pw_4lxml_5etree_9XMLParser_1__init__(PyObject *__pyx_v_self, Py
  *         parse_options = _XML_DEFAULT_PARSE_OPTIONS
  */
     values[14] = ((PyObject *)Py_None);
-    values[15] = __pyx_k_196;
+    values[15] = __pyx_k_197;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -90360,7 +91088,8 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *         if ns_clean:
  */
     __pyx_t_1 = (((PyObject *)__pyx_v_schema) == Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1313
  *             parse_options = parse_options | xmlparser.XML_PARSE_DTDATTR
@@ -90384,8 +91113,8 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ns_clean); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1315
  *                 parse_options = parse_options | xmlparser.XML_PARSE_DTDLOAD
@@ -90406,8 +91135,8 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_recover); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1317
  *             parse_options = parse_options | xmlparser.XML_PARSE_NSCLEAN
@@ -90428,8 +91157,8 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_remove_blank_text); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1319
  *             parse_options = parse_options | xmlparser.XML_PARSE_RECOVER
@@ -90450,8 +91179,8 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_huge_tree); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1321
  *             parse_options = parse_options | xmlparser.XML_PARSE_NOBLANKS
@@ -90472,9 +91201,9 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_1);
-  if (__pyx_t_2) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_no_network); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((!__pyx_t_2) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1323
  *             parse_options = parse_options | xmlparser.XML_PARSE_HUGE
@@ -90495,9 +91224,9 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = (!__pyx_t_2);
-  if (__pyx_t_1) {
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_compact); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((!__pyx_t_1) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1325
  *             parse_options = parse_options ^ xmlparser.XML_PARSE_NONET
@@ -90518,9 +91247,9 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_1);
-  if (__pyx_t_2) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_resolve_entities); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((!__pyx_t_2) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1327
  *             parse_options = parse_options ^ xmlparser.XML_PARSE_COMPACT
@@ -90541,9 +91270,9 @@ static int __pyx_pf_4lxml_5etree_9XMLParser___init__(struct __pyx_obj_4lxml_5etr
  *             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 = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = (!__pyx_t_2);
-  if (__pyx_t_1) {
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_strip_cdata); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((!__pyx_t_1) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1329
  *             parse_options = parse_options ^ xmlparser.XML_PARSE_NOENT
@@ -90664,12 +91393,12 @@ static int __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__(PyObject *__pyx_v
  *                  ns_clean=False, recover=False, schema=None,
  */
     values[0] = ((PyObject *)Py_None);
-    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;
+    values[1] = __pyx_k_198;
+    values[2] = __pyx_k_199;
+    values[3] = __pyx_k_200;
+    values[4] = __pyx_k_201;
+    values[5] = __pyx_k_202;
+    values[6] = __pyx_k_203;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1352
  *     def __init__(self, *, encoding=None, attribute_defaults=False,
@@ -90679,12 +91408,12 @@ static int __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__(PyObject *__pyx_v
  *                  remove_comments=True, remove_pis=True, strip_cdata=True,
  */
     values[7] = ((PyObject *)Py_None);
-    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;
+    values[8] = __pyx_k_204;
+    values[9] = __pyx_k_205;
+    values[10] = __pyx_k_206;
+    values[11] = __pyx_k_207;
+    values[12] = __pyx_k_208;
+    values[13] = __pyx_k_209;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1355
  *                  huge_tree=False, remove_blank_text=False, resolve_entities=True,
@@ -90694,7 +91423,7 @@ static int __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__(PyObject *__pyx_v
  *                            attribute_defaults=attribute_defaults,
  */
     values[14] = ((PyObject *)Py_None);
-    values[15] = __pyx_k_209;
+    values[15] = __pyx_k_210;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -91022,6 +91751,7 @@ static PyObject *__pyx_pf_4lxml_5etree_42set_default_parser(CYTHON_UNUSED PyObje
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("set_default_parser", 0);
   __Pyx_INCREF((PyObject *)__pyx_v_parser);
 
@@ -91033,7 +91763,8 @@ static PyObject *__pyx_pf_4lxml_5etree_42set_default_parser(CYTHON_UNUSED PyObje
  *     __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1396
  *     """
@@ -91152,11 +91883,11 @@ static int __pyx_pw_4lxml_5etree_10HTMLParser_1__init__(PyObject *__pyx_v_self,
  *                  no_network=True, target=None, XMLSchema schema=None,
  */
     values[0] = ((PyObject *)Py_None);
-    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;
+    values[1] = __pyx_k_211;
+    values[2] = __pyx_k_212;
+    values[3] = __pyx_k_213;
+    values[4] = __pyx_k_214;
+    values[5] = __pyx_k_215;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1448
  *     def __init__(self, *, encoding=None, remove_blank_text=False,
@@ -91167,8 +91898,8 @@ static int __pyx_pw_4lxml_5etree_10HTMLParser_1__init__(PyObject *__pyx_v_self,
  */
     values[6] = ((PyObject *)Py_None);
     values[7] = (PyObject *)((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None);
-    values[8] = __pyx_k_215;
-    values[9] = __pyx_k_216;
+    values[8] = __pyx_k_216;
+    values[9] = __pyx_k_217;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -91281,7 +92012,7 @@ static int __pyx_pf_4lxml_5etree_10HTMLParser___init__(struct __pyx_obj_4lxml_5e
  *         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 = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_1);
+  __pyx_t_2 = ((!__pyx_t_1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1455
@@ -91304,7 +92035,7 @@ static int __pyx_pf_4lxml_5etree_10HTMLParser___init__(struct __pyx_obj_4lxml_5e
  *         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 = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = (!__pyx_t_2);
+  __pyx_t_1 = ((!__pyx_t_2) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1457
@@ -91327,7 +92058,7 @@ static int __pyx_pf_4lxml_5etree_10HTMLParser___init__(struct __pyx_obj_4lxml_5e
  * 
  */
   __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);
+  __pyx_t_2 = ((!__pyx_t_1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1459
@@ -91428,8 +92159,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
   xmlDoc *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   xmlDoc *__pyx_t_5;
   int __pyx_lineno = 0;
@@ -91446,7 +92177,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *     if not filename:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1477
  *     cdef Py_ssize_t c_len
@@ -91455,11 +92187,11 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *     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 = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -91471,9 +92203,9 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *         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 = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = (!__pyx_t_1);
-  if (__pyx_t_3) {
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_filename); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((!__pyx_t_2) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1479
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
@@ -91494,10 +92226,10 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *         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 = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_v_filename_utf = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_filename); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_v_filename_utf = __pyx_t_3;
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1482
  *     else:
@@ -91517,8 +92249,9 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *         c_len = python.PyUnicode_GET_DATA_SIZE(text)
  *         if c_len > limits.INT_MAX:
  */
-  __pyx_t_3 = PyUnicode_Check(__pyx_v_text); 
-  if (__pyx_t_3) {
+  __pyx_t_1 = PyUnicode_Check(__pyx_v_text); 
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1484
  *         c_filename = _cstr(filename_utf)
@@ -91536,8 +92269,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *             return (<_BaseParser>parser)._parseDocFromFilelike(
  *                 StringIO(text), filename)
  */
-    __pyx_t_3 = (__pyx_v_c_len > INT_MAX);
-    if (__pyx_t_3) {
+    __pyx_t_2 = ((__pyx_v_c_len > INT_MAX) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1487
  *         if c_len > limits.INT_MAX:
@@ -91546,14 +92279,14 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *         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 = 1487; __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[5]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_v_text);
-      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_text);
+      PyTuple_SET_ITEM(__pyx_t_3, 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 = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_StringIO, ((PyObject *)__pyx_t_3), 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_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 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 = 1486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __pyx_r = __pyx_t_5;
@@ -91592,8 +92325,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  *             return (<_BaseParser>parser)._parseDocFromFilelike(
  *                 BytesIO(text), filename)
  */
-    __pyx_t_3 = (__pyx_v_c_len > INT_MAX);
-    if (__pyx_t_3) {
+    __pyx_t_2 = ((__pyx_v_c_len > INT_MAX) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1493
  *         if c_len > limits.INT_MAX:
@@ -91607,11 +92340,11 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
       __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 = 1493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
+      __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree_BytesIO, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __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 = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__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_3, __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_3); __pyx_t_3 = 0;
       __pyx_r = __pyx_t_5;
       goto __pyx_L0;
       goto __pyx_L7;
@@ -91643,7 +92376,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._parseDoc", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
@@ -91666,8 +92399,9 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFile(PyObject *__pyx_v_filename
   xmlDoc *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  xmlDoc *__pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  xmlDoc *__pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -91682,7 +92416,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFile(PyObject *__pyx_v_filename
  *     return (<_BaseParser>parser)._parseDocFromFile(_cstr(filename8))
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1499
  * cdef xmlDoc* _parseDocFromFile(filename8, _BaseParser parser) except NULL:
@@ -91691,11 +92426,11 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFile(PyObject *__pyx_v_filename
  *     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 = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -91707,14 +92442,14 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFile(PyObject *__pyx_v_filename
  * 
  * 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 = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_r = __pyx_t_3;
+  __pyx_t_4 = ((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_4 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_r = __pyx_t_4;
   goto __pyx_L0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._parseDocFromFile", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -91735,8 +92470,9 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFilelike(PyObject *__pyx_v_sour
   xmlDoc *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  xmlDoc *__pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  xmlDoc *__pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -91751,7 +92487,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFilelike(PyObject *__pyx_v_sour
  *     return (<_BaseParser>parser)._parseDocFromFilelike(source, filename)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parser) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1505
  *                                    _BaseParser parser) except NULL:
@@ -91760,11 +92497,11 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFilelike(PyObject *__pyx_v_sour
  *     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 = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -91776,14 +92513,14 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFilelike(PyObject *__pyx_v_sour
  * 
  * 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 = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_r = __pyx_t_3;
+  __pyx_t_4 = ((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_4 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_r = __pyx_t_4;
   goto __pyx_L0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._parseDocFromFilelike", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -91826,7 +92563,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__newXMLDoc(void) {
  *         raise MemoryError()
  *     if result.encoding is NULL:
  */
-  __pyx_t_1 = (__pyx_v_result == NULL);
+  __pyx_t_1 = ((__pyx_v_result == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1512
@@ -91848,7 +92585,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__newXMLDoc(void) {
  *         result.encoding = tree.xmlStrdup(<unsigned char*>"UTF-8")
  *     __GLOBAL_PARSER_CONTEXT.initDocDict(result)
  */
-  __pyx_t_1 = (__pyx_v_result->encoding == NULL);
+  __pyx_t_1 = ((__pyx_v_result->encoding == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1514
@@ -91926,7 +92663,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__newHTMLDoc(void) {
  *         raise MemoryError()
  *     __GLOBAL_PARSER_CONTEXT.initDocDict(result)
  */
-  __pyx_t_1 = (__pyx_v_result == NULL);
+  __pyx_t_1 = ((__pyx_v_result == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1522
@@ -91995,7 +92732,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__copyDoc(xmlDoc *__pyx_v_c_doc, int __pyx_v_
  *         with nogil:
  *             result = tree.xmlCopyDoc(c_doc, recursive)
  */
-  if (__pyx_v_recursive) {
+  __pyx_t_1 = (__pyx_v_recursive != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1529
  *     cdef xmlDoc* result
@@ -92056,7 +92794,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__copyDoc(xmlDoc *__pyx_v_c_doc, int __pyx_v_
  *         raise MemoryError()
  *     __GLOBAL_PARSER_CONTEXT.initDocDict(result)
  */
-  __pyx_t_1 = (__pyx_v_result == NULL);
+  __pyx_t_1 = ((__pyx_v_result == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1534
@@ -92183,7 +92921,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__copyDocRoot(xmlDoc *__pyx_v_c_doc, xmlNode
  *         raise MemoryError()
  *     tree.xmlDocSetRootElement(result, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1547
@@ -92271,7 +93009,7 @@ static xmlNode *__pyx_f_4lxml_5etree__copyNodeToDoc(xmlNode *__pyx_v_c_node, xml
  *         raise MemoryError()
  *     _copyTail(c_node.next, c_root)
  */
-  __pyx_t_1 = (__pyx_v_c_root == NULL);
+  __pyx_t_1 = ((__pyx_v_c_root == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1557
@@ -92348,7 +93086,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
  *         # parse the file directly from the filesystem
  *         doc = _parseDocumentFromURL(_encodeFilename(source), parser)
  */
-  __pyx_t_1 = _isString(__pyx_v_source);
+  __pyx_t_1 = (_isString(__pyx_v_source) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1571
@@ -92374,7 +93112,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
  *             if doc._c_doc.URL is not NULL:
  */
     __pyx_t_1 = (__pyx_v_base_url != Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_4 = (__pyx_t_1 != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1574
  *         # fix base URL if requested
@@ -92396,8 +93135,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
  *                 tree.xmlFree(<char*>doc._c_doc.URL)
  *             doc._c_doc.URL = tree.xmlStrdup(_xcstr(base_url))
  */
-      __pyx_t_1 = (__pyx_v_doc->_c_doc->URL != NULL);
-      if (__pyx_t_1) {
+      __pyx_t_4 = ((__pyx_v_doc->_c_doc->URL != NULL) != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1576
  *             base_url = _encodeFilenameUTF8(base_url)
@@ -92445,7 +93184,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
  *         url = base_url
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_base_url != Py_None);
+  __pyx_t_4 = (__pyx_v_base_url != Py_None);
+  __pyx_t_1 = (__pyx_t_4 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1581
@@ -92483,11 +93223,11 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
  *         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 = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  if ((__pyx_t_1 != 0)) {
     __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;
+    __pyx_t_5 = (__pyx_t_4 != 0);
   } else {
-    __pyx_t_5 = __pyx_t_1;
+    __pyx_t_5 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_5) {
 
@@ -92554,7 +93294,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
  *             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 = 1592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_5) {
+  __pyx_t_1 = (__pyx_t_5 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1593
  *     # Support for file-like objects (urlgrabber.urlopen, ...)
@@ -92594,7 +93335,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
   __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 = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __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_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_218), ((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);
@@ -92686,8 +93427,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
   struct LxmlDocument *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   xmlDoc *__pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -92704,7 +93445,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *             raise ValueError(
  */
   __pyx_t_1 = PyUnicode_Check(__pyx_v_text); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1606
  *     cdef xmlDoc* c_doc
@@ -92713,8 +93455,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *             raise ValueError(
  *                 u"Unicode strings with encoding declaration are not supported. "
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__hasEncodingDeclaration(__pyx_v_text);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_f_4lxml_5etree__hasEncodingDeclaration(__pyx_v_text) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1607
  *     if isinstance(text, unicode):
@@ -92723,10 +93465,10 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *                 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_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_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_220), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __Pyx_Raise(__pyx_t_3, 0, 0, 0);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
@@ -92739,8 +93481,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *             text = (<unicode>text).encode('utf8')
  *     elif not isinstance(text, bytes):
  */
-    __pyx_t_1 = (__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_4lxml_5etree__UNICODE_ENCODING == NULL) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1612
  *         # pass native unicode only if libxml2 can handle it
@@ -92753,11 +93495,11 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
         {__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 = 1612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+      __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_text))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
       __Pyx_DECREF(__pyx_v_text);
-      __pyx_v_text = ((PyObject *)__pyx_t_2);
-      __pyx_t_2 = 0;
+      __pyx_v_text = ((PyObject *)__pyx_t_3);
+      __pyx_t_3 = 0;
       goto __pyx_L5;
     }
     __pyx_L5:;
@@ -92771,9 +93513,9 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *         raise ValueError, u"can only parse strings"
  *     if isinstance(url, unicode):
  */
-  __pyx_t_1 = PyBytes_Check(__pyx_v_text); 
-  __pyx_t_3 = (!__pyx_t_1);
-  if (__pyx_t_3) {
+  __pyx_t_2 = PyBytes_Check(__pyx_v_text); 
+  __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1614
  *             text = (<unicode>text).encode('utf8')
@@ -92782,7 +93524,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *     if isinstance(url, unicode):
  *         url = (<unicode>url).encode('utf8')
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_220), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_221), 0, 0);
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -92795,8 +93537,9 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *         url = (<unicode>url).encode('utf8')
  *     c_doc = _parseDoc(text, url, parser)
  */
-  __pyx_t_3 = PyUnicode_Check(__pyx_v_url); 
-  if (__pyx_t_3) {
+  __pyx_t_1 = PyUnicode_Check(__pyx_v_url); 
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1616
  *         raise ValueError, u"can only parse strings"
@@ -92809,11 +93552,11 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
       {__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 = 1616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = ((PyObject *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_url = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L6;
   }
   __pyx_L6:;
@@ -92836,16 +93579,16 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  * 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 = 1618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_r = ((struct LxmlDocument *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = ((struct LxmlDocument *)__pyx_t_3);
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = ((struct LxmlDocument *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._parseMemoryDocument", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -92869,8 +93612,9 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseFilelikeDocument(PyObject
   struct LxmlDocument *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  xmlDoc *__pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  xmlDoc *__pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -92885,7 +93629,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseFilelikeDocument(PyObject
  *     c_doc = _parseDocFromFilelike(source, url, parser)
  */
   __pyx_t_1 = PyUnicode_Check(__pyx_v_url); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1623
  *     cdef xmlDoc* c_doc
@@ -92898,11 +93643,11 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseFilelikeDocument(PyObject
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
       {__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 = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = ((PyObject *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_url = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -92913,8 +93658,8 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseFilelikeDocument(PyObject
  *     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 = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_doc = __pyx_t_3;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__parseDocFromFilelike(__pyx_v_source, __pyx_v_url, __pyx_v_parser); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1624; __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":1625
  *         url = (<unicode>url).encode('utf8')
@@ -92922,16 +93667,16 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseFilelikeDocument(PyObject
  *     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 = 1625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_r = ((struct LxmlDocument *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = ((struct LxmlDocument *)__pyx_t_3);
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = ((struct LxmlDocument *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._parseFilelikeDocument", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -93220,14 +93965,13 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
   int __pyx_t_2;
   startElementNsSAX2Func __pyx_t_3;
   startElementSAXFunc __pyx_t_4;
-  int __pyx_t_5;
-  endElementNsSAX2Func __pyx_t_6;
-  endElementSAXFunc __pyx_t_7;
-  charactersSAXFunc __pyx_t_8;
-  cdataBlockSAXFunc __pyx_t_9;
-  internalSubsetSAXFunc __pyx_t_10;
-  processingInstructionSAXFunc __pyx_t_11;
-  commentSAXFunc __pyx_t_12;
+  endElementNsSAX2Func __pyx_t_5;
+  endElementSAXFunc __pyx_t_6;
+  charactersSAXFunc __pyx_t_7;
+  cdataBlockSAXFunc __pyx_t_8;
+  internalSubsetSAXFunc __pyx_t_9;
+  processingInstructionSAXFunc __pyx_t_10;
+  commentSAXFunc __pyx_t_11;
   __Pyx_RefNannySetupContext("_initParserContext", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":52
@@ -93256,7 +94000,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             # propagate => keep orig callback
  *             self._origSaxStart = sax.startElementNs
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_START);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_START) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":56
@@ -93311,7 +94055,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             # intercept => overwrite orig callback
  *             if sax.initialized == xmlparser.XML_SAX2_MAGIC:
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_START);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_START) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":64
@@ -93321,8 +94065,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *                 sax.startElementNs = _handleSaxStart
  *             sax.startElement = _handleSaxStartNoNs
  */
-    __pyx_t_5 = (__pyx_v_sax->initialized == XML_SAX2_MAGIC);
-    if (__pyx_t_5) {
+    __pyx_t_2 = ((__pyx_v_sax->initialized == XML_SAX2_MAGIC) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":65
  *             # intercept => overwrite orig callback
@@ -93355,7 +94099,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             self._origSaxEnd = sax.endElementNs
  *             self._origSaxEndNoNs = sax.endElement
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_END);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_END) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":69
@@ -93365,8 +94109,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             self._origSaxEndNoNs = sax.endElement
  *         else:
  */
-    __pyx_t_6 = __pyx_v_sax->endElementNs;
-    __pyx_v_self->_origSaxEnd = __pyx_t_6;
+    __pyx_t_5 = __pyx_v_sax->endElementNs;
+    __pyx_v_self->_origSaxEnd = __pyx_t_5;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":70
  *         if self._target._sax_event_propagate & SAX_EVENT_END:
@@ -93375,8 +94119,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *         else:
  *             self._origSaxEnd = sax.endElementNs = NULL
  */
-    __pyx_t_7 = __pyx_v_sax->endElement;
-    __pyx_v_self->_origSaxEndNoNs = __pyx_t_7;
+    __pyx_t_6 = __pyx_v_sax->endElement;
+    __pyx_v_self->_origSaxEndNoNs = __pyx_t_6;
     goto __pyx_L6;
   }
   /*else*/ {
@@ -93410,7 +94154,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             if sax.initialized == xmlparser.XML_SAX2_MAGIC:
  *                 sax.endElementNs = _handleSaxEnd
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_END);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_END) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":75
@@ -93420,8 +94164,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *                 sax.endElementNs = _handleSaxEnd
  *             sax.endElement = _handleSaxEndNoNs
  */
-    __pyx_t_5 = (__pyx_v_sax->initialized == XML_SAX2_MAGIC);
-    if (__pyx_t_5) {
+    __pyx_t_2 = ((__pyx_v_sax->initialized == XML_SAX2_MAGIC) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":76
  *         if self._target._sax_event_filter & SAX_EVENT_END:
@@ -93454,7 +94198,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             self._origSaxData = sax.characters
  *             self._origSaxCData = sax.cdataBlock
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_DATA);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_DATA) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":80
@@ -93464,8 +94208,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             self._origSaxCData = sax.cdataBlock
  *         else:
  */
-    __pyx_t_8 = __pyx_v_sax->characters;
-    __pyx_v_self->_origSaxData = __pyx_t_8;
+    __pyx_t_7 = __pyx_v_sax->characters;
+    __pyx_v_self->_origSaxData = __pyx_t_7;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":81
  *         if self._target._sax_event_propagate & SAX_EVENT_DATA:
@@ -93474,8 +94218,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *         else:
  *             self._origSaxData = sax.characters = sax.cdataBlock = NULL
  */
-    __pyx_t_9 = __pyx_v_sax->cdataBlock;
-    __pyx_v_self->_origSaxCData = __pyx_t_9;
+    __pyx_t_8 = __pyx_v_sax->cdataBlock;
+    __pyx_v_self->_origSaxCData = __pyx_t_8;
     goto __pyx_L9;
   }
   /*else*/ {
@@ -93500,7 +94244,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             sax.characters = _handleSaxData
  *             sax.cdataBlock = _handleSaxCData
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_DATA);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_DATA) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":85
@@ -93531,8 +94275,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *         if self._target._sax_event_filter & SAX_EVENT_DOCTYPE:
  *             sax.internalSubset = _handleSaxDoctype
  */
-  __pyx_t_10 = __pyx_v_sax->internalSubset;
-  __pyx_v_self->_origSaxDoctype = __pyx_t_10;
+  __pyx_t_9 = __pyx_v_sax->internalSubset;
+  __pyx_v_self->_origSaxDoctype = __pyx_t_9;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":90
  *         # doctype propagation is always required for entity replacement
@@ -93541,7 +94285,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             sax.internalSubset = _handleSaxDoctype
  * 
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_DOCTYPE);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_DOCTYPE) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":91
@@ -93563,7 +94307,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             self._origSaxPi = sax.processingInstruction
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_PI);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_PI) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":94
@@ -93573,8 +94317,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *         else:
  *             self._origSaxPi = sax.processingInstruction = NULL
  */
-    __pyx_t_11 = __pyx_v_sax->processingInstruction;
-    __pyx_v_self->_origSaxPi = __pyx_t_11;
+    __pyx_t_10 = __pyx_v_sax->processingInstruction;
+    __pyx_v_self->_origSaxPi = __pyx_t_10;
     goto __pyx_L12;
   }
   /*else*/ {
@@ -93598,7 +94342,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             sax.processingInstruction = _handleSaxPI
  * 
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_PI);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_PI) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":98
@@ -93620,7 +94364,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             self._origSaxComment = sax.comment
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_COMMENT);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_propagate & __pyx_e_4lxml_5etree_SAX_EVENT_COMMENT) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":101
@@ -93630,8 +94374,8 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *         else:
  *             self._origSaxComment = sax.comment = NULL
  */
-    __pyx_t_12 = __pyx_v_sax->comment;
-    __pyx_v_self->_origSaxComment = __pyx_t_12;
+    __pyx_t_11 = __pyx_v_sax->comment;
+    __pyx_v_self->_origSaxComment = __pyx_t_11;
     goto __pyx_L14;
   }
   /*else*/ {
@@ -93655,7 +94399,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext(struct _
  *             sax.comment = _handleSaxComment
  * 
  */
-  __pyx_t_2 = (__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_COMMENT);
+  __pyx_t_2 = ((__pyx_v_self->_target->_sax_event_filter & __pyx_e_4lxml_5etree_SAX_EVENT_COMMENT) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":105
@@ -93711,7 +94455,7 @@ static void __pyx_f_4lxml_5etree_17_SaxParserContext__handleSaxException(struct
  *             c_ctxt.errNo = xmlerror.XML_ERR_INTERNAL_ERROR
  *         # stop parsing immediately
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->errNo == XML_ERR_OK);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->errNo == XML_ERR_OK) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":113
@@ -93810,7 +94554,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":130
@@ -93842,7 +94586,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *         context._origSaxStart(c_ctxt, c_localname, c_prefix, c_namespace,
  *                               c_nb_namespaces, c_namespaces, c_nb_attributes,
  */
-  __pyx_t_1 = (__pyx_v_context->_origSaxStart != NULL);
+  __pyx_t_1 = ((__pyx_v_context->_origSaxStart != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":135
@@ -93890,7 +94634,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *             # only add default attributes if we asked for them
  *             if c_ctxt.loadsubset & xmlparser.XML_COMPLETE_ATTRS == 0:
  */
-      __pyx_t_1 = (__pyx_v_c_nb_defaulted > 0);
+      __pyx_t_1 = ((__pyx_v_c_nb_defaulted > 0) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":140
@@ -93900,7 +94644,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *                 c_nb_attributes = c_nb_attributes - c_nb_defaulted
  *         if c_nb_attributes == 0:
  */
-        __pyx_t_1 = ((__pyx_v_c_ctxt->loadsubset & XML_COMPLETE_ATTRS) == 0);
+        __pyx_t_1 = (((__pyx_v_c_ctxt->loadsubset & XML_COMPLETE_ATTRS) == 0) != 0);
         if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":141
@@ -93925,7 +94669,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *             attrib = EMPTY_READ_ONLY_DICT
  *         else:
  */
-      __pyx_t_1 = (__pyx_v_c_nb_attributes == 0);
+      __pyx_t_1 = ((__pyx_v_c_nb_attributes == 0) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":143
@@ -93983,7 +94727,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *                     if python.IS_PYTHON3:
  *                         value = u''
  */
-          __pyx_t_1 = ((__pyx_v_c_attributes[3]) == NULL);
+          __pyx_t_1 = (((__pyx_v_c_attributes[3]) == NULL) != 0);
           if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":150
@@ -93993,7 +94737,8 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *                         value = u''
  *                     else:
  */
-            if (IS_PYTHON3) {
+            __pyx_t_1 = (IS_PYTHON3 != 0);
+            if (__pyx_t_1) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":151
  *                 if c_attributes[3] is NULL:
@@ -94068,7 +94813,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *             nsmap = EMPTY_READ_ONLY_DICT
  *         else:
  */
-      __pyx_t_1 = (__pyx_v_c_nb_namespaces == 0);
+      __pyx_t_1 = ((__pyx_v_c_nb_namespaces == 0) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":161
@@ -94113,7 +94858,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *                     prefix = None
  *                 else:
  */
-          __pyx_t_1 = ((__pyx_v_c_namespaces[0]) == NULL);
+          __pyx_t_1 = (((__pyx_v_c_namespaces[0]) == NULL) != 0);
           if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":166
@@ -94190,11 +94935,11 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *                 element._c_node.line = <short>c_ctxt.input.line
  */
       __pyx_t_1 = (((PyObject *)__pyx_v_element) != Py_None);
-      if (__pyx_t_1) {
-        __pyx_t_7 = (__pyx_v_c_ctxt->input != NULL);
+      if ((__pyx_t_1 != 0)) {
+        __pyx_t_7 = ((__pyx_v_c_ctxt->input != NULL) != 0);
         __pyx_t_8 = __pyx_t_7;
       } else {
-        __pyx_t_8 = __pyx_t_1;
+        __pyx_t_8 = (__pyx_t_1 != 0);
       }
       if (__pyx_t_8) {
 
@@ -94205,7 +94950,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *                 element._c_node.line = <short>c_ctxt.input.line
  *             else:
  */
-        __pyx_t_8 = (__pyx_v_c_ctxt->input->line < 65535);
+        __pyx_t_8 = ((__pyx_v_c_ctxt->input->line < 65535) != 0);
         if (__pyx_t_8) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":174
@@ -94353,7 +95098,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":187
@@ -94385,7 +95130,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *         context._origSaxStartNoNs(c_ctxt, c_name, c_attributes)
  *     try:
  */
-  __pyx_t_1 = (__pyx_v_context->_origSaxStartNoNs != NULL);
+  __pyx_t_1 = ((__pyx_v_context->_origSaxStartNoNs != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":190
@@ -94433,7 +95178,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *             attrib = EMPTY_READ_ONLY_DICT
  *         else:
  */
-      __pyx_t_1 = (__pyx_v_c_attributes == NULL);
+      __pyx_t_1 = ((__pyx_v_c_attributes == NULL) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":194
@@ -94469,7 +95214,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *                 if c_attributes[1] is NULL:
  */
         while (1) {
-          __pyx_t_1 = ((__pyx_v_c_attributes[0]) != NULL);
+          __pyx_t_1 = (((__pyx_v_c_attributes[0]) != NULL) != 0);
           if (!__pyx_t_1) break;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":198
@@ -94492,7 +95237,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *                     if python.IS_PYTHON3:
  *                         value = u''
  */
-          __pyx_t_1 = ((__pyx_v_c_attributes[1]) == NULL);
+          __pyx_t_1 = (((__pyx_v_c_attributes[1]) == NULL) != 0);
           if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":200
@@ -94502,7 +95247,8 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *                         value = u''
  *                     else:
  */
-            if (IS_PYTHON3) {
+            __pyx_t_1 = (IS_PYTHON3 != 0);
+            if (__pyx_t_1) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":201
  *                 if c_attributes[1] is NULL:
@@ -94594,11 +95340,11 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *                 element._c_node.line = <short>c_ctxt.input.line
  */
       __pyx_t_1 = (((PyObject *)__pyx_v_element) != Py_None);
-      if (__pyx_t_1) {
-        __pyx_t_7 = (__pyx_v_c_ctxt->input != NULL);
+      if ((__pyx_t_1 != 0)) {
+        __pyx_t_7 = ((__pyx_v_c_ctxt->input != NULL) != 0);
         __pyx_t_8 = __pyx_t_7;
       } else {
-        __pyx_t_8 = __pyx_t_1;
+        __pyx_t_8 = (__pyx_t_1 != 0);
       }
       if (__pyx_t_8) {
 
@@ -94609,7 +95355,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  *                 element._c_node.line = <short>c_ctxt.input.line
  *             else:
  */
-        __pyx_t_8 = (__pyx_v_c_ctxt->input->line < 65535);
+        __pyx_t_8 = ((__pyx_v_c_ctxt->input->line < 65535) != 0);
         if (__pyx_t_8) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":212
@@ -94750,7 +95496,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":224
@@ -94782,7 +95528,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
  *         context._origSaxEnd(c_ctxt, c_localname, c_prefix, c_namespace)
  *     try:
  */
-  __pyx_t_1 = (__pyx_v_context->_origSaxEnd != NULL);
+  __pyx_t_1 = ((__pyx_v_context->_origSaxEnd != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":227
@@ -94940,7 +95686,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":239
@@ -94972,7 +95718,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
  *         context._origSaxEndNoNs(c_ctxt, c_name)
  *     try:
  */
-  __pyx_t_1 = (__pyx_v_context->_origSaxEndNoNs != NULL);
+  __pyx_t_1 = ((__pyx_v_context->_origSaxEndNoNs != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":242
@@ -95123,9 +95869,9 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = __pyx_v_c_ctxt->disableSAX;
+    __pyx_t_2 = (__pyx_v_c_ctxt->disableSAX != 0);
   } else {
     __pyx_t_2 = __pyx_t_1;
   }
@@ -95160,7 +95906,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
  *         context._origSaxData(c_ctxt, c_data, data_len)
  *     try:
  */
-  __pyx_t_2 = (__pyx_v_context->_origSaxData != NULL);
+  __pyx_t_2 = ((__pyx_v_context->_origSaxData != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":256
@@ -95308,9 +96054,9 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = __pyx_v_c_ctxt->disableSAX;
+    __pyx_t_2 = (__pyx_v_c_ctxt->disableSAX != 0);
   } else {
     __pyx_t_2 = __pyx_t_1;
   }
@@ -95345,7 +96091,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
  *         context._origSaxCData(c_ctxt, c_data, data_len)
  *     try:
  */
-  __pyx_t_2 = (__pyx_v_context->_origSaxCData != NULL);
+  __pyx_t_2 = ((__pyx_v_context->_origSaxCData != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":271
@@ -95493,9 +96239,9 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = __pyx_v_c_ctxt->disableSAX;
+    __pyx_t_2 = (__pyx_v_c_ctxt->disableSAX != 0);
   } else {
     __pyx_t_2 = __pyx_t_1;
   }
@@ -95530,7 +96276,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
  *         context._origSaxDoctype(c_ctxt, c_name, c_public, c_system)
  *     try:
  */
-  __pyx_t_2 = (__pyx_v_context->_origSaxDoctype != NULL);
+  __pyx_t_2 = ((__pyx_v_context->_origSaxDoctype != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":287
@@ -95700,7 +96446,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":301
@@ -95732,7 +96478,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
  *         context._origSaxPi(c_ctxt, c_target, c_data)
  *     try:
  */
-  __pyx_t_1 = (__pyx_v_context->_origSaxPi != NULL);
+  __pyx_t_1 = ((__pyx_v_context->_origSaxPi != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":304
@@ -95893,7 +96639,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->_private == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":317
@@ -95925,7 +96671,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
  *         context._origSaxComment(c_ctxt, c_data)
  *     try:
  */
-  __pyx_t_1 = (__pyx_v_context->_origSaxComment != NULL);
+  __pyx_t_1 = ((__pyx_v_context->_origSaxComment != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":320
@@ -96230,7 +96976,8 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -96245,7 +96992,7 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_data);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = (PyList_GET_SIZE(__pyx_t_1) > 0);
+  __pyx_t_2 = ((PyList_GET_SIZE(__pyx_t_1) > 0) != 0);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
@@ -96257,7 +97004,8 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  *                 if self._in_tail:
  */
     __pyx_t_2 = (((PyObject *)__pyx_v_self->_last) != Py_None);
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_t_2 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":360
  *         if python.PyList_GET_SIZE(self._data) > 0:
@@ -96268,11 +97016,11 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  */
       __pyx_t_1 = ((PyObject *)__pyx_v_self->_data);
       __Pyx_INCREF(__pyx_t_1);
-      __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_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_25, __pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __pyx_v_text = __pyx_t_3;
-      __pyx_t_3 = 0;
+      __pyx_v_text = __pyx_t_4;
+      __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":361
  *             if self._last is not None:
@@ -96281,7 +97029,8 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  *                     assert self._last.tail is None, u"internal error (tail)"
  *                     self._last.tail = text
  */
-      if (__pyx_v_self->_in_tail) {
+      __pyx_t_3 = (__pyx_v_self->_in_tail != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":362
  *                 text = u"".join(self._data)
@@ -96291,12 +97040,12 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  *                 else:
  */
         #ifndef CYTHON_WITHOUT_ASSERTIONS
-        __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_221));
+        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_3 = (__pyx_t_4 == Py_None);
+        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        if (unlikely(!(__pyx_t_3 != 0))) {
+          PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_222));
           {__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #endif
@@ -96321,12 +97070,12 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  *             del self._data[:]
  */
         #ifndef CYTHON_WITHOUT_ASSERTIONS
-        __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_222));
+        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_3 = (__pyx_t_4 == Py_None);
+        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        if (unlikely(!(__pyx_t_3 != 0))) {
+          PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_223));
           {__pyx_filename = __pyx_f[12]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #endif
@@ -96375,7 +97124,7 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree.TreeBuilder._flush", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -96424,8 +97173,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_2close(struct __pyx_obj_4lx
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __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_223));
+  if (unlikely(!((PyList_GET_SIZE(__pyx_t_1) == 0) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_224));
     {__pyx_filename = __pyx_f[12]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -96440,8 +97189,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_2close(struct __pyx_obj_4lx
  */
   #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_224));
+  if (unlikely(!(__pyx_t_2 != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_225));
     {__pyx_filename = __pyx_f[12]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -96603,7 +97352,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_6start(struct __pyx_obj_4lx
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -96618,7 +97368,8 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_6start(struct __pyx_obj_4lx
  *         return self._handleSaxStart(tag, attrs, nsmap)
  */
   __pyx_t_1 = (__pyx_v_nsmap == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":396
  *         """
@@ -96642,16 +97393,16 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_6start(struct __pyx_obj_4lx
  *     def end(self, tag):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handleSaxStart(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_tag, __pyx_v_attrs, __pyx_v_nsmap); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handleSaxStart(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_tag, __pyx_v_attrs, __pyx_v_nsmap); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree.TreeBuilder.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -96738,7 +97489,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_8end(struct __pyx_obj_4lxml
     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_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_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_226), ((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));
@@ -96944,9 +97695,10 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
-  int __pyx_t_5;
+  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -96969,7 +97721,8 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
  *             if python.PyList_GET_SIZE(self._element_stack) > 0:
  */
   __pyx_t_2 = (__pyx_v_self->_factory != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":425
  *         self._flush()
@@ -96978,23 +97731,23 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
  *             if python.PyList_GET_SIZE(self._element_stack) > 0:
  *                 _appendChild(self._element_stack[-1], self._last)
  */
-    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 425; __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[12]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
     __Pyx_INCREF(__pyx_v_attrib);
-    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_attrib);
+    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_attrib);
     __Pyx_GIVEREF(__pyx_v_attrib);
-    __pyx_t_4 = PyObject_Call(__pyx_v_self->_factory, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    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 = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GIVEREF(__pyx_t_4);
+    __pyx_t_5 = PyObject_Call(__pyx_v_self->_factory, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GIVEREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_v_self->_last);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_5);
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":426
  *         if self._factory is not None:
@@ -97003,11 +97756,11 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
  *                 _appendChild(self._element_stack[-1], self._last)
  *         elif python.PyList_GET_SIZE(self._element_stack) > 0:
  */
-    __pyx_t_4 = ((PyObject *)__pyx_v_self->_element_stack);
-    __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_2 = (PyList_GET_SIZE(__pyx_t_4) > 0);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    if (__pyx_t_2) {
+    __pyx_t_5 = ((PyObject *)__pyx_v_self->_element_stack);
+    __Pyx_INCREF(__pyx_t_5);
+    __pyx_t_3 = ((PyList_GET_SIZE(__pyx_t_5) > 0) != 0);
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":427
  *             self._last = self._factory(tag, attrib)
@@ -97020,14 +97773,14 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
         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, 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);
-      __Pyx_INCREF(__pyx_t_3);
-      __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_4), ((struct LxmlElement *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __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_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_v_self->_last);
+      __Pyx_INCREF(__pyx_t_4);
+      __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_5), ((struct LxmlElement *)__pyx_t_4)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -97041,11 +97794,11 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
  *             self._last = _makeSubElement(
  *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
  */
-  __pyx_t_3 = ((PyObject *)__pyx_v_self->_element_stack);
-  __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_2 = (PyList_GET_SIZE(__pyx_t_3) > 0);
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_2) {
+  __pyx_t_4 = ((PyObject *)__pyx_v_self->_element_stack);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_3 = ((PyList_GET_SIZE(__pyx_t_4) > 0) != 0);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":430
  *         elif python.PyList_GET_SIZE(self._element_stack) > 0:
@@ -97058,12 +97811,12 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
       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, 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_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 = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    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 = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(((struct LxmlElement *)__pyx_t_4), __pyx_v_tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":429
  *                 _appendChild(self._element_stack[-1], self._last)
@@ -97072,11 +97825,11 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
  *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
  *         else:
  */
-    __Pyx_GIVEREF(__pyx_t_4);
+    __Pyx_GIVEREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_v_self->_last);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_5);
+    __pyx_t_5 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -97088,11 +97841,11 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
  *         self._element_stack.append(self._last)
  *         self._in_tail = 0
  */
-    __pyx_t_4 = ((PyObject *)__pyx_v_self->_parser);
-    __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v_tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_4), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_5 = ((PyObject *)__pyx_v_self->_parser);
+    __Pyx_INCREF(__pyx_t_5);
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v_tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_5), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":432
  *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
@@ -97101,11 +97854,11 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
  *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
  *         self._element_stack.append(self._last)
  */
-    __Pyx_GIVEREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_self->_last);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
   }
   __pyx_L3:;
 
@@ -97120,10 +97873,10 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
     {__pyx_filename = __pyx_f[12]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
-  __Pyx_INCREF(__pyx_t_3);
-  __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;
+  __pyx_t_4 = ((PyObject *)__pyx_v_self->_last);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_element_stack, __pyx_t_4); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 434; __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/saxparser.pxi":435
  *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
@@ -97149,8 +97902,8 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxStart", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -97342,7 +98095,7 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxPi(struct __pyx_ob
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_self->_element_stack);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = (PyList_GET_SIZE(__pyx_t_4) > 0);
+  __pyx_t_5 = ((PyList_GET_SIZE(__pyx_t_4) > 0) != 0);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   if (__pyx_t_5) {
 
@@ -97468,7 +98221,7 @@ static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxComment(struct __p
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_self->_element_stack);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = (PyList_GET_SIZE(__pyx_t_4) > 0);
+  __pyx_t_5 = ((PyList_GET_SIZE(__pyx_t_4) > 0) != 0);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   if (__pyx_t_5) {
 
@@ -97691,12 +98444,12 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
-  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_6;
   PyObject *__pyx_t_7 = NULL;
   PyObject *__pyx_t_8 = NULL;
   PyObject *__pyx_t_9 = NULL;
-  Py_ssize_t __pyx_t_10;
-  int __pyx_t_11;
+  PyObject *__pyx_t_10 = NULL;
+  Py_ssize_t __pyx_t_11;
   int __pyx_t_12;
   int __pyx_t_13;
   int __pyx_lineno = 0;
@@ -97759,7 +98512,8 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *         except AttributeError:
  */
       __pyx_t_5 = (__pyx_v_self->_target_start != Py_None);
-      if (__pyx_t_5) {
+      __pyx_t_6 = (__pyx_t_5 != 0);
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":31
  *             self._target_start = target.start
@@ -97783,10 +98537,10 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *                 if len(arguments[0]) > 3 or arguments[1] is not None:
  */
       {
-        __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
-        __Pyx_XGOTREF(__pyx_t_6);
+        __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/parsertarget.pxi":36
@@ -97801,11 +98555,11 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
           __Pyx_INCREF(__pyx_v_self->_target_start);
           PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->_target_start);
           __Pyx_GIVEREF(__pyx_v_self->_target_start);
-          __pyx_t_9 = PyObject_Call(__pyx_v_4lxml_5etree_inspect_getargspec, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
-          __Pyx_GOTREF(__pyx_t_9);
+          __pyx_t_10 = PyObject_Call(__pyx_v_4lxml_5etree_inspect_getargspec, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+          __Pyx_GOTREF(__pyx_t_10);
           __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-          __pyx_v_arguments = __pyx_t_9;
-          __pyx_t_9 = 0;
+          __pyx_v_arguments = __pyx_t_10;
+          __pyx_t_10 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":37
  *             try:
@@ -97814,19 +98568,19 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *                     self._start_takes_nsmap = 1
  *             except TypeError:
  */
-          __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, 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;
-            __pyx_t_12 = __pyx_t_11;
+          __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_arguments, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_10) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+          __Pyx_GOTREF(__pyx_t_10);
+          __pyx_t_11 = PyObject_Length(__pyx_t_10); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+          __pyx_t_6 = ((__pyx_t_11 > 3) != 0);
+          if (!__pyx_t_6) {
+            __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_arguments, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_10) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+            __Pyx_GOTREF(__pyx_t_10);
+            __pyx_t_5 = (__pyx_t_10 != Py_None);
+            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+            __pyx_t_12 = (__pyx_t_5 != 0);
           } else {
-            __pyx_t_12 = __pyx_t_5;
+            __pyx_t_12 = __pyx_t_6;
           }
           if (__pyx_t_12) {
 
@@ -97842,13 +98596,13 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
           }
           __pyx_L20:;
         }
-        __Pyx_XDECREF(__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_L19_try_end;
         __pyx_L12_error:;
         __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":39
  *                 if len(arguments[0]) > 3 or arguments[1] is not None:
@@ -97862,16 +98616,16 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
           PyErr_Restore(0,0,0);
           goto __pyx_L13_exception_handled;
         }
-        __Pyx_XGIVEREF(__pyx_t_6);
         __Pyx_XGIVEREF(__pyx_t_7);
         __Pyx_XGIVEREF(__pyx_t_8);
-        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
+        __Pyx_XGIVEREF(__pyx_t_9);
+        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
         goto __pyx_L5_except_error;
         __pyx_L13_exception_handled:;
-        __Pyx_XGIVEREF(__pyx_t_6);
         __Pyx_XGIVEREF(__pyx_t_7);
         __Pyx_XGIVEREF(__pyx_t_8);
-        __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
+        __Pyx_XGIVEREF(__pyx_t_9);
+        __Pyx_ExceptionReset(__pyx_t_7, __pyx_t_8, __pyx_t_9);
         __pyx_L19_try_end:;
       }
     }
@@ -97929,13 +98683,13 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *             if self._target_end is not None:
  *                 event_filter = event_filter | SAX_EVENT_END
  */
-      __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_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__end); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L21_error;}
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_GOTREF(__pyx_v_self->_target_end);
       __Pyx_DECREF(__pyx_v_self->_target_end);
-      __pyx_v_self->_target_end = __pyx_t_9;
-      __pyx_t_9 = 0;
+      __pyx_v_self->_target_end = __pyx_t_10;
+      __pyx_t_10 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":43
  *         try:
@@ -97945,7 +98699,8 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *         except AttributeError:
  */
       __pyx_t_12 = (__pyx_v_self->_target_end != Py_None);
-      if (__pyx_t_12) {
+      __pyx_t_6 = (__pyx_t_12 != 0);
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":44
  *             self._target_end = target.end
@@ -97965,7 +98720,7 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
     goto __pyx_L28_try_end;
     __pyx_L21_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":45
  *             if self._target_end is not None:
@@ -98013,13 +98768,13 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *             if self._target_data is not None:
  *                 event_filter = event_filter | SAX_EVENT_DATA
  */
-      __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_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__data); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L30_error;}
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_GOTREF(__pyx_v_self->_target_data);
       __Pyx_DECREF(__pyx_v_self->_target_data);
-      __pyx_v_self->_target_data = __pyx_t_9;
-      __pyx_t_9 = 0;
+      __pyx_v_self->_target_data = __pyx_t_10;
+      __pyx_t_10 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":49
  *         try:
@@ -98028,7 +98783,8 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *                 event_filter = event_filter | SAX_EVENT_DATA
  *         except AttributeError:
  */
-      __pyx_t_12 = (__pyx_v_self->_target_data != Py_None);
+      __pyx_t_6 = (__pyx_v_self->_target_data != Py_None);
+      __pyx_t_12 = (__pyx_t_6 != 0);
       if (__pyx_t_12) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":50
@@ -98049,7 +98805,7 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
     goto __pyx_L37_try_end;
     __pyx_L30_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":51
  *             if self._target_data is not None:
@@ -98097,13 +98853,13 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *             if self._target_doctype is not None:
  *                 event_filter = event_filter | SAX_EVENT_DOCTYPE
  */
-      __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_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__doctype); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L39_error;}
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_GOTREF(__pyx_v_self->_target_doctype);
       __Pyx_DECREF(__pyx_v_self->_target_doctype);
-      __pyx_v_self->_target_doctype = __pyx_t_9;
-      __pyx_t_9 = 0;
+      __pyx_v_self->_target_doctype = __pyx_t_10;
+      __pyx_t_10 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":55
  *         try:
@@ -98113,7 +98869,8 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *         except AttributeError:
  */
       __pyx_t_12 = (__pyx_v_self->_target_doctype != Py_None);
-      if (__pyx_t_12) {
+      __pyx_t_6 = (__pyx_t_12 != 0);
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":56
  *             self._target_doctype = target.doctype
@@ -98133,7 +98890,7 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
     goto __pyx_L46_try_end;
     __pyx_L39_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":57
  *             if self._target_doctype is not None:
@@ -98181,13 +98938,13 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *             if self._target_pi is not None:
  *                 event_filter = event_filter | SAX_EVENT_PI
  */
-      __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_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__pi); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L48_error;}
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_GOTREF(__pyx_v_self->_target_pi);
       __Pyx_DECREF(__pyx_v_self->_target_pi);
-      __pyx_v_self->_target_pi = __pyx_t_9;
-      __pyx_t_9 = 0;
+      __pyx_v_self->_target_pi = __pyx_t_10;
+      __pyx_t_10 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":61
  *         try:
@@ -98196,7 +98953,8 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *                 event_filter = event_filter | SAX_EVENT_PI
  *         except AttributeError:
  */
-      __pyx_t_12 = (__pyx_v_self->_target_pi != Py_None);
+      __pyx_t_6 = (__pyx_v_self->_target_pi != Py_None);
+      __pyx_t_12 = (__pyx_t_6 != 0);
       if (__pyx_t_12) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":62
@@ -98217,7 +98975,7 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
     goto __pyx_L55_try_end;
     __pyx_L48_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":63
  *             if self._target_pi is not None:
@@ -98265,13 +99023,13 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *             if self._target_comment is not None:
  *                 event_filter = event_filter | SAX_EVENT_COMMENT
  */
-      __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_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_target, __pyx_n_s__comment); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L57_error;}
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_GOTREF(__pyx_v_self->_target_comment);
       __Pyx_DECREF(__pyx_v_self->_target_comment);
-      __pyx_v_self->_target_comment = __pyx_t_9;
-      __pyx_t_9 = 0;
+      __pyx_v_self->_target_comment = __pyx_t_10;
+      __pyx_t_10 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":67
  *         try:
@@ -98281,7 +99039,8 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
  *         except AttributeError:
  */
       __pyx_t_12 = (__pyx_v_self->_target_comment != Py_None);
-      if (__pyx_t_12) {
+      __pyx_t_6 = (__pyx_t_12 != 0);
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":68
  *             self._target_comment = target.comment
@@ -98301,7 +99060,7 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
     goto __pyx_L64_try_end;
     __pyx_L57_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":69
  *             if self._target_comment is not None:
@@ -98341,7 +99100,7 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_10);
   __Pyx_AddTraceback("lxml.etree._PythonSaxParserTarget.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -98361,8 +99120,9 @@ static int __pyx_pf_4lxml_5etree_22_PythonSaxParserTarget___cinit__(struct __pyx
 static PyObject *__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxStart(struct __pyx_obj_4lxml_5etree__PythonSaxParserTarget *__pyx_v_self, PyObject *__pyx_v_tag, PyObject *__pyx_v_attrib, PyObject *__pyx_v_nsmap) {
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
+  int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -98375,7 +99135,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxStart(s
  *             return self._target_start(tag, attrib, nsmap)
  *         else:
  */
-  if (__pyx_v_self->_start_takes_nsmap) {
+  __pyx_t_1 = (__pyx_v_self->_start_takes_nsmap != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":75
  *     cdef _handleSaxStart(self, tag, attrib, nsmap):
@@ -98385,22 +99146,22 @@ static PyObject *__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxStart(s
  *             return self._target_start(tag, attrib)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 75; __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[13]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
     __Pyx_INCREF(__pyx_v_attrib);
-    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_attrib);
+    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_attrib);
     __Pyx_GIVEREF(__pyx_v_attrib);
     __Pyx_INCREF(__pyx_v_nsmap);
-    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_nsmap);
+    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_nsmap);
     __Pyx_GIVEREF(__pyx_v_nsmap);
-    __pyx_t_2 = PyObject_Call(__pyx_v_self->_target_start, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = PyObject_Call(__pyx_v_self->_target_start, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -98414,19 +99175,19 @@ static PyObject *__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxStart(s
  *     cdef _handleSaxEnd(self, tag):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 77; __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[13]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
     __Pyx_INCREF(__pyx_v_attrib);
-    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_attrib);
+    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_attrib);
     __Pyx_GIVEREF(__pyx_v_attrib);
-    __pyx_t_1 = PyObject_Call(__pyx_v_self->_target_start, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_r = __pyx_t_1;
-    __pyx_t_1 = 0;
+    __pyx_t_2 = PyObject_Call(__pyx_v_self->_target_start, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __pyx_r = __pyx_t_2;
+    __pyx_t_2 = 0;
     goto __pyx_L0;
   }
   __pyx_L3:;
@@ -98434,8 +99195,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxStart(s
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._PythonSaxParserTarget._handleSaxStart", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -98743,7 +99504,7 @@ static int __pyx_f_4lxml_5etree_20_TargetParserContext__setTarget(struct __pyx_o
  *             target = _PythonSaxParserTarget(target)
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_target, ((PyObject*)__pyx_ptype_4lxml_5etree__SaxParserTarget)); 
-  __pyx_t_2 = (!__pyx_t_1);
+  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
   if (!__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":104
@@ -98754,7 +99515,7 @@ static int __pyx_f_4lxml_5etree_20_TargetParserContext__setTarget(struct __pyx_o
  *         self._setSaxParserTarget(target)
  */
     __pyx_t_1 = PyObject_HasAttr(__pyx_v_target, ((PyObject *)__pyx_n_u____dict__)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   } else {
     __pyx_t_3 = __pyx_t_2;
   }
@@ -98906,7 +99667,7 @@ static void __pyx_f_4lxml_5etree_20_TargetParserContext__cleanupTargetParserCont
  *             if self._c_ctxt.myDoc is not result and \
  *                     self._c_ctxt.myDoc._private is NULL:
  */
-  __pyx_t_1 = (__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->myDoc != NULL);
+  __pyx_t_1 = ((__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->myDoc != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":117
@@ -98916,7 +99677,7 @@ static void __pyx_f_4lxml_5etree_20_TargetParserContext__cleanupTargetParserCont
  *                     self._c_ctxt.myDoc._private is NULL:
  *                 # no _Document proxy => orphen
  */
-    __pyx_t_1 = (__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->myDoc != __pyx_v_result);
+    __pyx_t_1 = ((__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->myDoc != __pyx_v_result) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":118
@@ -98926,7 +99687,7 @@ static void __pyx_f_4lxml_5etree_20_TargetParserContext__cleanupTargetParserCont
  *                 # no _Document proxy => orphen
  *                 tree.xmlFreeDoc(self._c_ctxt.myDoc)
  */
-      __pyx_t_2 = (__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->myDoc->_private == NULL);
+      __pyx_t_2 = ((__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->myDoc->_private == NULL) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
@@ -99024,7 +99785,7 @@ static PyObject *__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResult(
  *                 self._cleanupTargetParserContext(result)
  *                 self._raise_if_stored()
  */
-      __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__TargetParserContext *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._has_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_self));
+      __pyx_t_4 = (((struct __pyx_vtabstruct_4lxml_5etree__TargetParserContext *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._has_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_self)) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":129
@@ -99055,9 +99816,9 @@ static PyObject *__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResult(
  *                 _raiseParseError(self._c_ctxt, filename, self._error_log)
  *         except:
  */
-      __pyx_t_4 = (!__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->wellFormed);
+      __pyx_t_4 = ((!(__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->wellFormed != 0)) != 0);
       if (__pyx_t_4) {
-        __pyx_t_6 = (!__pyx_v_recover);
+        __pyx_t_6 = ((!(__pyx_v_recover != 0)) != 0);
         __pyx_t_7 = __pyx_t_6;
       } else {
         __pyx_t_7 = __pyx_t_4;
@@ -99107,7 +99868,8 @@ static PyObject *__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResult(
  *                 self._python_target.close()
  *                 raise
  */
-      if (IS_PYTHON3) {
+      __pyx_t_7 = (IS_PYTHON3 != 0);
+      if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":135
  *         except:
@@ -99327,9 +100089,9 @@ static xmlDoc *__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResultDoc
  *             # no _Document proxy => orphen
  *             tree.xmlFreeDoc(result)
  */
-  __pyx_t_1 = (__pyx_v_result != NULL);
+  __pyx_t_1 = ((__pyx_v_result != NULL) != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_result->_private == NULL);
+    __pyx_t_2 = ((__pyx_v_result->_private == NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -99387,9 +100149,9 @@ static xmlDoc *__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResultDoc
  *                 _raiseParseError(self._c_ctxt, filename, self._error_log)
  *         except:
  */
-      __pyx_t_3 = (!__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->wellFormed);
+      __pyx_t_3 = ((!(__pyx_v_self->__pyx_base.__pyx_base._c_ctxt->wellFormed != 0)) != 0);
       if (__pyx_t_3) {
-        __pyx_t_1 = (!__pyx_v_recover);
+        __pyx_t_1 = ((!(__pyx_v_recover != 0)) != 0);
         __pyx_t_2 = __pyx_t_1;
       } else {
         __pyx_t_2 = __pyx_t_3;
@@ -99439,7 +100201,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResultDoc
  *                 self._python_target.close()
  *                 raise
  */
-      if (IS_PYTHON3) {
+      __pyx_t_2 = (IS_PYTHON3 != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":159
  *         except:
@@ -99637,8 +100400,9 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -99653,7 +100417,8 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
  *     method = method.lower()
  */
   __pyx_t_1 = (__pyx_v_method == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":14
  * cdef int _findOutputMethod(method) except -1:
@@ -99675,14 +100440,14 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
  *     if method == "xml":
  *         return OUTPUT_METHOD_XML
  */
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_method, __pyx_n_s__lower); 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);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_v_method);
-  __pyx_v_method = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_v_method = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":16
  *         return OUTPUT_METHOD_XML
@@ -99691,10 +100456,10 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
  *         return OUTPUT_METHOD_XML
  *     if method == "html":
  */
-  __pyx_t_3 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__xml), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_1) {
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__xml), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":17
  *     method = method.lower()
@@ -99716,10 +100481,10 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
  *         return OUTPUT_METHOD_HTML
  *     if method == "text":
  */
-  __pyx_t_3 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__html), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_1) {
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__html), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":19
  *         return OUTPUT_METHOD_XML
@@ -99741,10 +100506,10 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
  *         return OUTPUT_METHOD_TEXT
  *     raise ValueError(u"unknown output method %r" % method)
  */
-  __pyx_t_3 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__text), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_1) {
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__text), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":21
  *         return OUTPUT_METHOD_HTML
@@ -99766,25 +100531,25 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
  * 
  * cdef _textToString(xmlNode* c_node, encoding, bint with_tail):
  */
-  __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);
-  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[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_227), __pyx_v_method); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __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;
+  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
+  __pyx_t_4 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+  __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._findOutputMethod", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -99815,8 +100580,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
   int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
-  char *__pyx_t_7;
+  char *__pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -99839,7 +100603,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *         raise MemoryError()
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_buffer == NULL);
+  __pyx_t_1 = ((__pyx_v_c_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":33
@@ -99884,7 +100648,8 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *             c_text_node = _textNodeOrSkip(c_node.next)
  *             while c_text_node is not NULL:
  */
-        if (__pyx_v_with_tail) {
+        __pyx_t_1 = (__pyx_v_with_tail != 0);
+        if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":38
  *         error_result = tree.xmlNodeBufGetContent(c_buffer, c_node)
@@ -99903,7 +100668,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *                 c_text_node = _textNodeOrSkip(c_text_node.next)
  */
           while (1) {
-            __pyx_t_1 = (__pyx_v_c_text_node != NULL);
+            __pyx_t_1 = ((__pyx_v_c_text_node != NULL) != 0);
             if (!__pyx_t_1) break;
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":40
@@ -99959,9 +100724,9 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *         tree.xmlBufferFree(c_buffer)
  *         raise SerialisationError, u"Error during serialisation (out of memory?)"
  */
-  __pyx_t_1 = (__pyx_v_error_result < 0);
+  __pyx_t_1 = ((__pyx_v_error_result < 0) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_text == NULL);
+    __pyx_t_2 = ((__pyx_v_c_text == NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -99986,7 +100751,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
     __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_227), 0, 0);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_228), 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;
@@ -100019,7 +100784,8 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *         elif encoding is not None:
  */
     __pyx_t_3 = (__pyx_v_encoding == __pyx_v_4lxml_5etree__unicode);
-    if (__pyx_t_3) {
+    __pyx_t_1 = (__pyx_t_3 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":51
  *         needs_conversion = 0
@@ -100039,7 +100805,8 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *             # Python prefers lower case encoding names
  *             encoding = encoding.lower()
  */
-    __pyx_t_3 = (__pyx_v_encoding != Py_None);
+    __pyx_t_1 = (__pyx_v_encoding != Py_None);
+    __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":54
@@ -100071,7 +100838,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
       __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_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_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_kp_u_229), 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);
@@ -100079,7 +100846,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
         __pyx_t_2 = ((int)__pyx_t_3);
       }
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_3 = __pyx_t_2;
+      __pyx_t_3 = (__pyx_t_2 != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":56
@@ -100101,8 +100868,8 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *                         # will raise a decode error below
  *                         needs_conversion = 1
  */
-          __pyx_t_6 = __pyx_f_4lxml_5etree_isutf8(__pyx_v_c_text);
-          if (__pyx_t_6) {
+          __pyx_t_3 = (__pyx_f_4lxml_5etree_isutf8(__pyx_v_c_text) != 0);
+          if (__pyx_t_3) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":59
  *                     if isutf8(c_text):
@@ -100143,7 +100910,8 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *             text = python.PyUnicode_DecodeUTF8(
  *                 <const_char*>c_text, tree.xmlBufferLength(c_buffer), 'strict')
  */
-    if (__pyx_v_needs_conversion) {
+    __pyx_t_3 = (__pyx_v_needs_conversion != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":65
  *         if needs_conversion:
@@ -100165,7 +100933,8 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *                 text = python.PyUnicode_AsEncodedString(
  */
       __pyx_t_3 = (__pyx_v_encoding != __pyx_v_4lxml_5etree__unicode);
-      if (__pyx_t_3) {
+      __pyx_t_2 = (__pyx_t_3 != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":67
  *                 <const_char*>c_text, tree.xmlBufferLength(c_buffer), 'strict')
@@ -100187,8 +100956,8 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  *         else:
  *             text = (<unsigned char*>c_text)[:tree.xmlBufferLength(c_buffer)]
  */
-        __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_t_6 = __Pyx_PyObject_AsString(__pyx_v_encoding); if (unlikely((!__pyx_t_6) && 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_6, __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);
         __pyx_v_text = __pyx_t_5;
@@ -100298,8 +101067,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
   xmlBuf *__pyx_t_7;
@@ -100318,7 +101087,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *     _assertValidNode(element)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_element) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":92
  *     cdef int error_result
@@ -100342,7 +101112,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *     c_method = _findOutputMethod(method)
  *     if c_method == OUTPUT_METHOD_TEXT:
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":94
  *         return None
@@ -100351,8 +101121,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         return _textToString(element._c_node, encoding, with_tail)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_method = __pyx_t_2;
+  __pyx_t_3 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_method = __pyx_t_3;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":95
  *     _assertValidNode(element)
@@ -100361,8 +101131,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         return _textToString(element._c_node, encoding, with_tail)
  *     if encoding is None or encoding is _unicode:
  */
-  __pyx_t_1 = (__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":96
  *     c_method = _findOutputMethod(method)
@@ -100372,10 +101142,10 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         c_enc = NULL
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_t_4 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_r = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L4;
   }
@@ -100388,12 +101158,12 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         c_enc = NULL
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_encoding == Py_None);
-  if (!__pyx_t_1) {
-    __pyx_t_4 = (__pyx_v_encoding == __pyx_v_4lxml_5etree__unicode);
-    __pyx_t_5 = __pyx_t_4;
+  __pyx_t_2 = (__pyx_v_encoding == Py_None);
+  if (!(__pyx_t_2 != 0)) {
+    __pyx_t_1 = (__pyx_v_encoding == __pyx_v_4lxml_5etree__unicode);
+    __pyx_t_5 = (__pyx_t_1 != 0);
   } else {
-    __pyx_t_5 = __pyx_t_1;
+    __pyx_t_5 = (__pyx_t_2 != 0);
   }
   if (__pyx_t_5) {
 
@@ -100416,11 +101186,11 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         c_enc = _cstr(encoding)
  *     if doctype is None:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_encoding = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":101
  *     else:
@@ -100441,7 +101211,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *     else:
  */
   __pyx_t_5 = (__pyx_v_doctype == Py_None);
-  if (__pyx_t_5) {
+  __pyx_t_2 = (__pyx_t_5 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":103
  *         c_enc = _cstr(encoding)
@@ -100462,11 +101233,11 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         c_doctype = _xcstr(doctype)
  *     # it is necessary to *and* find the encoding handler *and* use
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_v_doctype);
-    __pyx_v_doctype = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_doctype = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":106
  *     else:
@@ -100495,14 +101266,14 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         if encoding is not None:
  *             encoding = encoding.decode('UTF-8')
  */
-  __pyx_t_5 = (__pyx_v_enchandler == NULL);
-  if (__pyx_t_5) {
-    __pyx_t_1 = (__pyx_v_c_enc != NULL);
-    __pyx_t_4 = __pyx_t_1;
+  __pyx_t_2 = ((__pyx_v_enchandler == NULL) != 0);
+  if (__pyx_t_2) {
+    __pyx_t_5 = ((__pyx_v_c_enc != NULL) != 0);
+    __pyx_t_1 = __pyx_t_5;
   } else {
-    __pyx_t_4 = __pyx_t_5;
+    __pyx_t_1 = __pyx_t_2;
   }
-  if (__pyx_t_4) {
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":111
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)
@@ -100511,8 +101282,9 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *             encoding = encoding.decode('UTF-8')
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  */
-    __pyx_t_4 = (__pyx_v_encoding != Py_None);
-    if (__pyx_t_4) {
+    __pyx_t_1 = (__pyx_v_encoding != Py_None);
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":112
  *     if enchandler is NULL and c_enc is not NULL:
@@ -100521,11 +101293,11 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  */
-      __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_229), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_230), 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_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_v_encoding);
       __pyx_v_encoding = __pyx_t_6;
       __pyx_t_6 = 0;
@@ -100540,7 +101312,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  *     if c_buffer is NULL:
  */
-    __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_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_178), __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;
@@ -100565,8 +101337,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         tree.xmlCharEncCloseFunc(enchandler)
  *         raise MemoryError()
  */
-  __pyx_t_4 = (__pyx_v_c_buffer == NULL);
-  if (__pyx_t_4) {
+  __pyx_t_2 = ((__pyx_v_c_buffer == NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":116
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
@@ -100628,8 +101400,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *             c_result_buffer = c_buffer.conv
  *         else:
  */
-        __pyx_t_4 = (__pyx_v_c_buffer->conv != NULL);
-        if (__pyx_t_4) {
+        __pyx_t_2 = ((__pyx_v_c_buffer->conv != NULL) != 0);
+        if (__pyx_t_2) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":125
  *         tree.xmlOutputBufferFlush(c_buffer)
@@ -100678,8 +101450,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *     if error_result != xmlerror.XML_ERR_OK:
  *         tree.xmlOutputBufferClose(c_buffer)
  */
-  __pyx_t_2 = __pyx_v_c_buffer->error;
-  __pyx_v_error_result = __pyx_t_2;
+  __pyx_t_3 = __pyx_v_c_buffer->error;
+  __pyx_v_error_result = __pyx_t_3;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":130
  * 
@@ -100688,8 +101460,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         tree.xmlOutputBufferClose(c_buffer)
  *         _raiseSerialisationError(error_result)
  */
-  __pyx_t_4 = (__pyx_v_error_result != XML_ERR_OK);
-  if (__pyx_t_4) {
+  __pyx_t_2 = ((__pyx_v_error_result != XML_ERR_OK) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":131
  *     error_result = c_buffer.error
@@ -100730,8 +101502,9 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *             result = (<unsigned char*>tree.xmlBufContent(
  *                 c_result_buffer))[:tree.xmlBufUse(c_result_buffer)].decode('UTF-8')
  */
-    __pyx_t_4 = (__pyx_v_encoding == __pyx_v_4lxml_5etree__unicode);
-    if (__pyx_t_4) {
+    __pyx_t_2 = (__pyx_v_encoding == __pyx_v_4lxml_5etree__unicode);
+    __pyx_t_1 = (__pyx_t_2 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":137
  *         if encoding is _unicode:
@@ -100779,7 +101552,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
     __pyx_why = 0; goto __pyx_L17;
     __pyx_L16: {
       __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
       __pyx_exc_lineno = __pyx_lineno;
@@ -100806,8 +101579,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         _raiseSerialisationError(error_result)
  *     return result
  */
-  __pyx_t_4 = (__pyx_v_error_result < 0);
-  if (__pyx_t_4) {
+  __pyx_t_1 = ((__pyx_v_error_result < 0) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":144
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
@@ -100838,7 +101611,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._tostring", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
@@ -100870,11 +101643,11 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  xmlDoc *__pyx_t_4;
-  xmlChar **__pyx_t_5;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  xmlDoc *__pyx_t_5;
   xmlChar **__pyx_t_6;
-  int __pyx_t_7;
+  xmlChar **__pyx_t_7;
   int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -100907,7 +101680,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *         doc = (<_Element>element_or_tree)._doc
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_element_or_tree, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":157
  * 
@@ -100916,7 +101690,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *         doc = (<_Element>element_or_tree)._doc
  *         c_doc = _plainFakeRootDoc(doc._c_doc, (<_Element>element_or_tree)._c_node, 0)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_element_or_tree)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_element_or_tree)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":158
  *     if isinstance(element_or_tree, _Element):
@@ -100925,10 +101699,10 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *         c_doc = _plainFakeRootDoc(doc._c_doc, (<_Element>element_or_tree)._c_node, 0)
  *     else:
  */
-    __pyx_t_3 = ((PyObject *)((struct LxmlElement *)__pyx_v_element_or_tree)->_doc);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)((struct LxmlElement *)__pyx_v_element_or_tree)->_doc);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":159
  *         _assertValidNode(<_Element>element_or_tree)
@@ -100937,8 +101711,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *     else:
  *         doc = _documentOrRaise(element_or_tree)
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__plainFakeRootDoc(__pyx_v_doc->_c_doc, ((struct LxmlElement *)__pyx_v_element_or_tree)->_c_node, 0); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_doc = __pyx_t_4;
+    __pyx_t_5 = __pyx_f_4lxml_5etree__plainFakeRootDoc(__pyx_v_doc->_c_doc, ((struct LxmlElement *)__pyx_v_element_or_tree)->_c_node, 0); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_doc = __pyx_t_5;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -100950,10 +101724,10 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *         _assertValidDoc(doc)
  *         c_doc = doc._c_doc
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":162
  *     else:
@@ -100962,7 +101736,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *         c_doc = doc._c_doc
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":163
  *         doc = _documentOrRaise(element_or_tree)
@@ -100971,8 +101745,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  * 
  *     c_inclusive_ns_prefixes = _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes) if inclusive_ns_prefixes else NULL
  */
-    __pyx_t_4 = __pyx_v_doc->_c_doc;
-    __pyx_v_c_doc = __pyx_t_4;
+    __pyx_t_5 = __pyx_v_doc->_c_doc;
+    __pyx_v_c_doc = __pyx_t_5;
   }
   __pyx_L3:;
 
@@ -100983,14 +101757,14 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *     try:
  *          with nogil:
  */
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
-    __pyx_t_6 = __pyx_f_4lxml_5etree__convert_ns_prefixes(__pyx_v_c_doc->dict, __pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = __pyx_t_6;
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_2) {
+    __pyx_t_7 = __pyx_f_4lxml_5etree__convert_ns_prefixes(__pyx_v_c_doc->dict, __pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_t_7;
   } else {
-    __pyx_t_5 = NULL;
+    __pyx_t_6 = NULL;
   }
-  __pyx_v_c_inclusive_ns_prefixes = __pyx_t_5;
+  __pyx_v_c_inclusive_ns_prefixes = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":166
  * 
@@ -101057,8 +101831,8 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *             python.PyMem_Free(c_inclusive_ns_prefixes)
  * 
  */
-    __pyx_t_1 = (__pyx_v_c_inclusive_ns_prefixes != NULL);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_c_inclusive_ns_prefixes != NULL) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":174
  *          _destroyFakeDoc(doc._c_doc, c_doc)
@@ -101080,12 +101854,12 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *         if c_buffer is not NULL:
  *             tree.xmlFree(c_buffer)
  */
-  __pyx_t_1 = (__pyx_v_byte_count < 0);
-  if (!__pyx_t_1) {
-    __pyx_t_7 = (__pyx_v_c_buffer == NULL);
-    __pyx_t_8 = __pyx_t_7;
-  } else {
+  __pyx_t_2 = ((__pyx_v_byte_count < 0) != 0);
+  if (!__pyx_t_2) {
+    __pyx_t_1 = ((__pyx_v_c_buffer == NULL) != 0);
     __pyx_t_8 = __pyx_t_1;
+  } else {
+    __pyx_t_8 = __pyx_t_2;
   }
   if (__pyx_t_8) {
 
@@ -101096,7 +101870,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *             tree.xmlFree(c_buffer)
  *         raise C14NError, u"C14N failed"
  */
-    __pyx_t_8 = (__pyx_v_c_buffer != NULL);
+    __pyx_t_8 = ((__pyx_v_c_buffer != NULL) != 0);
     if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":178
@@ -101118,10 +101892,10 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *     try:
  *         result = c_buffer[:byte_count]
  */
-    __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_230), 0, 0);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__C14NError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_231), 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L11;
   }
@@ -101143,10 +101917,10 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  *     finally:
  *         tree.xmlFree(c_buffer)
  */
-    __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;
+    __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_c_buffer) + 0, __pyx_v_byte_count - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L14;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+    __pyx_v_result = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
   }
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":183
@@ -101164,7 +101938,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     __pyx_why = 0; goto __pyx_L15;
     __pyx_L14: {
       __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
       __pyx_exc_lineno = __pyx_lineno;
       goto __pyx_L15;
@@ -101198,7 +101972,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._tostringC14N", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -101225,6 +101999,7 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -101237,7 +102012,7 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
  *         raise MemoryError()
  *     message = ErrorTypes._getName(error_result)
  */
-  __pyx_t_1 = (__pyx_v_error_result == XML_ERR_NO_MEMORY);
+  __pyx_t_1 = ((__pyx_v_error_result == XML_ERR_NO_MEMORY) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":188
@@ -101286,7 +102061,8 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
  *     raise SerialisationError, message
  */
   __pyx_t_1 = (__pyx_v_message == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_5 = (__pyx_t_1 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":191
  *     message = ErrorTypes._getName(error_result)
@@ -101297,7 +102073,7 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_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_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_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_232), __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);
@@ -101399,11 +102175,11 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         _writeDeclarationToBuffer(c_buffer, c_doc.version, encoding, standalone)
  *     if c_doctype:
  */
-  if (__pyx_v_write_xml_declaration) {
-    __pyx_t_2 = (__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_XML);
+  if ((__pyx_v_write_xml_declaration != 0)) {
+    __pyx_t_2 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_XML) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_v_write_xml_declaration;
+    __pyx_t_3 = (__pyx_v_write_xml_declaration != 0);
   }
   if (__pyx_t_3) {
 
@@ -101448,11 +102224,11 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         if c_doctype is NULL:
  *             _writeDtdToBuffer(c_buffer, c_doc, c_node.name, encoding)
  */
-  if (__pyx_v_write_complete_document) {
-    __pyx_t_3 = (!__pyx_v_c_buffer->error);
+  if ((__pyx_v_write_complete_document != 0)) {
+    __pyx_t_3 = ((!(__pyx_v_c_buffer->error != 0)) != 0);
     __pyx_t_2 = __pyx_t_3;
   } else {
-    __pyx_t_2 = __pyx_v_write_complete_document;
+    __pyx_t_2 = (__pyx_v_write_complete_document != 0);
   }
   if (__pyx_t_2) {
 
@@ -101463,7 +102239,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *             _writeDtdToBuffer(c_buffer, c_doc, c_node.name, encoding)
  *         _writePrevSiblings(c_buffer, c_node, encoding, pretty_print)
  */
-    __pyx_t_2 = (__pyx_v_c_doctype == NULL);
+    __pyx_t_2 = ((__pyx_v_c_doctype == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":218
@@ -101506,9 +102282,9 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         # copy the node and add namespaces from parents
  *         # this is required to make libxml write them
  */
-  __pyx_t_2 = (!(__pyx_v_c_node->parent != 0));
+  __pyx_t_2 = ((!(__pyx_v_c_node->parent != 0)) != 0);
   if (!__pyx_t_2) {
-    __pyx_t_3 = (__pyx_v_c_node->parent->type != XML_DOCUMENT_NODE);
+    __pyx_t_3 = ((__pyx_v_c_node->parent->type != XML_DOCUMENT_NODE) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -101531,7 +102307,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY
  *             return
  */
-    __pyx_t_4 = (!(__pyx_v_c_nsdecl_node != 0));
+    __pyx_t_4 = ((!(__pyx_v_c_nsdecl_node != 0)) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":227
@@ -101604,7 +102380,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         tree.htmlNodeDumpFormatOutput(
  *             c_buffer, c_doc, c_nsdecl_node, encoding, pretty_print)
  */
-  __pyx_t_4 = (__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_HTML);
+  __pyx_t_4 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_HTML) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":238
@@ -101637,7 +102413,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         # clean up
  *         c_nsdecl_node.children = c_nsdecl_node.last = NULL
  */
-  __pyx_t_4 = (__pyx_v_c_nsdecl_node != __pyx_v_c_node);
+  __pyx_t_4 = ((__pyx_v_c_nsdecl_node != __pyx_v_c_node) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":245
@@ -101669,7 +102445,8 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         return
  * 
  */
-  if (__pyx_v_c_buffer->error) {
+  __pyx_t_4 = (__pyx_v_c_buffer->error != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":249
  * 
@@ -101690,7 +102467,8 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         _writeTail(c_buffer, c_node, encoding, pretty_print)
  *     if write_complete_document:
  */
-  if (__pyx_v_with_tail) {
+  __pyx_t_4 = (__pyx_v_with_tail != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":253
  *     # write tail, trailing comments, etc.
@@ -101711,7 +102489,8 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         _writeNextSiblings(c_buffer, c_node, encoding, pretty_print)
  *     if pretty_print:
  */
-  if (__pyx_v_write_complete_document) {
+  __pyx_t_4 = (__pyx_v_write_complete_document != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":255
  *         _writeTail(c_buffer, c_node, encoding, pretty_print)
@@ -101732,7 +102511,8 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  *         tree.xmlOutputBufferWrite(c_buffer, 1, "\n")
  * 
  */
-  if (__pyx_v_pretty_print) {
+  __pyx_t_4 = (__pyx_v_pretty_print != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":257
  *         _writeNextSiblings(c_buffer, c_node, encoding, pretty_print)
@@ -101767,7 +102547,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  *         version = <unsigned char*>"1.0"
  *     tree.xmlOutputBufferWrite(c_buffer, 15, "<?xml version='")
  */
-  __pyx_t_1 = (__pyx_v_version == NULL);
+  __pyx_t_1 = ((__pyx_v_version == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":263
@@ -101777,7 +102557,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  *     tree.xmlOutputBufferWrite(c_buffer, 15, "<?xml version='")
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
  */
-    __pyx_v_version = ((unsigned char *)((unsigned char *)__pyx_k_232));
+    __pyx_v_version = ((unsigned char *)((unsigned char *)__pyx_k_233));
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -101789,7 +102569,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
  *     tree.xmlOutputBufferWrite(c_buffer, 12, "' encoding='")
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 15, __pyx_k_233);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 15, __pyx_k_234);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":265
  *         version = <unsigned char*>"1.0"
@@ -101807,7 +102587,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  *     tree.xmlOutputBufferWriteString(c_buffer, encoding)
  *     if standalone == 0:
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 12, __pyx_k_234);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 12, __pyx_k_235);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":267
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
@@ -101843,7 +102623,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  *     elif standalone == 1:
  *         tree.xmlOutputBufferWrite(c_buffer, 21, "' standalone='yes'?>\n")
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 20, __pyx_k_235);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 20, __pyx_k_236);
     break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":270
@@ -101862,7 +102642,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  *     else:
  *         tree.xmlOutputBufferWrite(c_buffer, 4, "'?>\n")
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 21, __pyx_k_236);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 21, __pyx_k_237);
     break;
     default:
 
@@ -101873,7 +102653,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  * 
  * cdef void _writeDtdToBuffer(tree.xmlOutputBuffer* c_buffer,
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k_237);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k_238);
     break;
   }
 
@@ -101917,9 +102697,9 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         return
  *     if tree.xmlStrcmp(c_root_name, c_dtd.name) != 0:
  */
-  __pyx_t_2 = (!(__pyx_v_c_dtd != 0));
+  __pyx_t_2 = ((!(__pyx_v_c_dtd != 0)) != 0);
   if (!__pyx_t_2) {
-    __pyx_t_3 = (!(__pyx_v_c_dtd->name != 0));
+    __pyx_t_3 = ((!(__pyx_v_c_dtd->name != 0)) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -101945,7 +102725,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 10, "<!DOCTYPE ")
  */
-  __pyx_t_4 = (xmlStrcmp(__pyx_v_c_root_name, __pyx_v_c_dtd->name) != 0);
+  __pyx_t_4 = ((xmlStrcmp(__pyx_v_c_root_name, __pyx_v_c_dtd->name) != 0) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":284
@@ -101967,7 +102747,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *     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_238);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 10, __pyx_k_239);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":286
  *         return
@@ -101986,7 +102766,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' PUBLIC "')
  */
   if ((__pyx_v_c_dtd->SystemID != 0)) {
-    __pyx_t_4 = ((__pyx_v_c_dtd->SystemID[0]) != '\x00');
+    __pyx_t_4 = (((__pyx_v_c_dtd->SystemID[0]) != '\x00') != 0);
     __pyx_t_2 = __pyx_t_4;
   } else {
     __pyx_t_2 = (__pyx_v_c_dtd->SystemID != 0);
@@ -102000,9 +102780,9 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' PUBLIC "')
  *             tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.ExternalID)
  */
-    __pyx_t_2 = (__pyx_v_c_dtd->ExternalID != NULL);
+    __pyx_t_2 = ((__pyx_v_c_dtd->ExternalID != NULL) != 0);
     if (__pyx_t_2) {
-      __pyx_t_4 = ((__pyx_v_c_dtd->ExternalID[0]) != '\x00');
+      __pyx_t_4 = (((__pyx_v_c_dtd->ExternalID[0]) != '\x00') != 0);
       __pyx_t_3 = __pyx_t_4;
     } else {
       __pyx_t_3 = __pyx_t_2;
@@ -102016,7 +102796,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *             tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.ExternalID)
  *             tree.xmlOutputBufferWrite(c_buffer, 3, '" "')
  */
-      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_239);
+      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_240);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":290
  *         if c_dtd.ExternalID != NULL and c_dtd.ExternalID[0] != c'\0':
@@ -102034,7 +102814,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         else:
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' SYSTEM "')
  */
-      xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_240);
+      xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_241);
       goto __pyx_L6;
     }
     /*else*/ {
@@ -102046,7 +102826,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.SystemID)
  *         tree.xmlOutputBufferWrite(c_buffer, 1, '"')
  */
-      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_241);
+      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_242);
     }
     __pyx_L6:;
 
@@ -102066,7 +102846,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *     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_242);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_243);
     goto __pyx_L5;
   }
   __pyx_L5:;
@@ -102078,9 +102858,9 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *            not c_dtd.attributes and not c_dtd.notations and \
  *            not c_dtd.pentities:
  */
-  __pyx_t_3 = (!(__pyx_v_c_dtd->entities != 0));
+  __pyx_t_3 = ((!(__pyx_v_c_dtd->entities != 0)) != 0);
   if (__pyx_t_3) {
-    __pyx_t_2 = (!(__pyx_v_c_dtd->elements != 0));
+    __pyx_t_2 = ((!(__pyx_v_c_dtd->elements != 0)) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":297
@@ -102090,9 +102870,9 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *            not c_dtd.pentities:
  *         tree.xmlOutputBufferWrite(c_buffer, 2, '>\n')
  */
-      __pyx_t_4 = (!(__pyx_v_c_dtd->attributes != 0));
+      __pyx_t_4 = ((!(__pyx_v_c_dtd->attributes != 0)) != 0);
       if (__pyx_t_4) {
-        __pyx_t_5 = (!(__pyx_v_c_dtd->notations != 0));
+        __pyx_t_5 = ((!(__pyx_v_c_dtd->notations != 0)) != 0);
         if (__pyx_t_5) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":298
@@ -102102,7 +102882,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         tree.xmlOutputBufferWrite(c_buffer, 2, '>\n')
  *         return
  */
-          __pyx_t_6 = (!(__pyx_v_c_dtd->pentities != 0));
+          __pyx_t_6 = ((!(__pyx_v_c_dtd->pentities != 0)) != 0);
           __pyx_t_7 = __pyx_t_6;
         } else {
           __pyx_t_7 = __pyx_t_5;
@@ -102128,7 +102908,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 3, ' [\n')
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k_243);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k_244);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":300
  *            not c_dtd.pentities:
@@ -102149,7 +102929,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *     if c_dtd.notations and not c_buffer.error:
  *         c_buf = tree.xmlBufferCreate()
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_244);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_245);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":302
  *         return
@@ -102159,7 +102939,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *         if not c_buf:
  */
   if ((__pyx_v_c_dtd->notations != 0)) {
-    __pyx_t_2 = (!__pyx_v_c_buffer->error);
+    __pyx_t_2 = ((!(__pyx_v_c_buffer->error != 0)) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = (__pyx_v_c_dtd->notations != 0);
@@ -102182,7 +102962,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY
  *             return
  */
-    __pyx_t_3 = (!(__pyx_v_c_buf != 0));
+    __pyx_t_3 = ((!(__pyx_v_c_buf != 0)) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":305
@@ -102255,7 +103035,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
   while (1) {
     if ((__pyx_v_c_node != 0)) {
-      __pyx_t_3 = (!__pyx_v_c_buffer->error);
+      __pyx_t_3 = ((!(__pyx_v_c_buffer->error != 0)) != 0);
       __pyx_t_2 = __pyx_t_3;
     } else {
       __pyx_t_2 = (__pyx_v_c_node != 0);
@@ -102289,7 +103069,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  * 
  * cdef void _writeTail(tree.xmlOutputBuffer* c_buffer, xmlNode* c_node,
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_245);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_246);
 
   __pyx_L0:;
 }
@@ -102327,9 +103107,9 @@ static void __pyx_f_4lxml_5etree__writeTail(xmlOutputBuffer *__pyx_v_c_buffer, x
  */
   while (1) {
     if ((__pyx_v_c_node != 0)) {
-      __pyx_t_2 = (__pyx_v_c_node->type == XML_TEXT_NODE);
+      __pyx_t_2 = ((__pyx_v_c_node->type == XML_TEXT_NODE) != 0);
       if (__pyx_t_2) {
-        __pyx_t_3 = (!__pyx_v_c_buffer->error);
+        __pyx_t_3 = ((!(__pyx_v_c_buffer->error != 0)) != 0);
         __pyx_t_4 = __pyx_t_3;
       } else {
         __pyx_t_4 = __pyx_t_2;
@@ -102385,7 +103165,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  *     # we are at a root node, so add PI and comment siblings
  */
   if ((__pyx_v_c_node->parent != 0)) {
-    __pyx_t_1 = _isElement(__pyx_v_c_node->parent);
+    __pyx_t_1 = (_isElement(__pyx_v_c_node->parent) != 0);
     __pyx_t_2 = __pyx_t_1;
   } else {
     __pyx_t_2 = (__pyx_v_c_node->parent != 0);
@@ -102430,7 +103210,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  *              c_sibling.prev.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.prev
  */
-      __pyx_t_2 = (__pyx_v_c_sibling->prev->type == XML_PI_NODE);
+      __pyx_t_2 = ((__pyx_v_c_sibling->prev->type == XML_PI_NODE) != 0);
       if (!__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":336
@@ -102440,7 +103220,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  *         c_sibling = c_sibling.prev
  *     while c_sibling is not c_node and not c_buffer.error:
  */
-        __pyx_t_1 = (__pyx_v_c_sibling->prev->type == XML_COMMENT_NODE);
+        __pyx_t_1 = ((__pyx_v_c_sibling->prev->type == XML_COMMENT_NODE) != 0);
         __pyx_t_3 = __pyx_t_1;
       } else {
         __pyx_t_3 = __pyx_t_2;
@@ -102470,9 +103250,9 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  *                                pretty_print, encoding)
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_sibling != __pyx_v_c_node);
+    __pyx_t_2 = ((__pyx_v_c_sibling != __pyx_v_c_node) != 0);
     if (__pyx_t_2) {
-      __pyx_t_3 = (!__pyx_v_c_buffer->error);
+      __pyx_t_3 = ((!(__pyx_v_c_buffer->error != 0)) != 0);
       __pyx_t_1 = __pyx_t_3;
     } else {
       __pyx_t_1 = __pyx_t_2;
@@ -102495,7 +103275,8 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  *             tree.xmlOutputBufferWriteString(c_buffer, "\n")
  *         c_sibling = c_sibling.next
  */
-    if (__pyx_v_pretty_print) {
+    __pyx_t_1 = (__pyx_v_pretty_print != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":342
  *                                pretty_print, encoding)
@@ -102547,7 +103328,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
  *     # we are at a root node, so add PI and comment siblings
  */
   if ((__pyx_v_c_node->parent != 0)) {
-    __pyx_t_1 = _isElement(__pyx_v_c_node->parent);
+    __pyx_t_1 = (_isElement(__pyx_v_c_node->parent) != 0);
     __pyx_t_2 = __pyx_t_1;
   } else {
     __pyx_t_2 = (__pyx_v_c_node->parent != 0);
@@ -102584,7 +103365,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
  *              c_sibling.type == tree.XML_COMMENT_NODE):
  */
   while (1) {
-    __pyx_t_2 = (!__pyx_v_c_buffer->error);
+    __pyx_t_2 = ((!(__pyx_v_c_buffer->error != 0)) != 0);
     if (__pyx_t_2) {
       if ((__pyx_v_c_sibling != 0)) {
 
@@ -102595,7 +103376,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
  *              c_sibling.type == tree.XML_COMMENT_NODE):
  *         if pretty_print:
  */
-        __pyx_t_1 = (__pyx_v_c_sibling->type == XML_PI_NODE);
+        __pyx_t_1 = ((__pyx_v_c_sibling->type == XML_PI_NODE) != 0);
         if (!__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":354
@@ -102605,7 +103386,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
  *         if pretty_print:
  *             tree.xmlOutputBufferWriteString(c_buffer, "\n")
  */
-          __pyx_t_4 = (__pyx_v_c_sibling->type == XML_COMMENT_NODE);
+          __pyx_t_4 = ((__pyx_v_c_sibling->type == XML_COMMENT_NODE) != 0);
           __pyx_t_5 = __pyx_t_4;
         } else {
           __pyx_t_5 = __pyx_t_1;
@@ -102627,7 +103408,8 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
  *             tree.xmlOutputBufferWriteString(c_buffer, "\n")
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
  */
-    if (__pyx_v_pretty_print) {
+    __pyx_t_5 = (__pyx_v_pretty_print != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":356
  *              c_sibling.type == tree.XML_COMMENT_NODE):
@@ -102846,7 +103628,8 @@ static int __pyx_pf_4lxml_5etree_15_FilelikeWriter___cinit__(struct __pyx_obj_4l
  *         else:
  */
   __pyx_t_4 = (__pyx_v_exc_context == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_1 = (__pyx_t_4 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":378
  *         self._filelike = filelike
@@ -102945,7 +103728,7 @@ static xmlOutputBuffer *__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuff
  *             raise IOError, u"Could not create I/O writer context."
  *         return c_buffer
  */
-  __pyx_t_1 = (__pyx_v_c_buffer == NULL);
+  __pyx_t_1 = ((__pyx_v_c_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":390
@@ -102955,7 +103738,7 @@ static xmlOutputBuffer *__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuff
  *         return c_buffer
  * 
  */
-    __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_246), 0, 0);
+    __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_247), 0, 0);
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -102997,9 +103780,10 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
+  PyObject *__pyx_t_8 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -103027,7 +103811,8 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  *             py_buffer = <bytes>c_buffer[:size]
  */
       __pyx_t_4 = (__pyx_v_self->_filelike == Py_None);
-      if (__pyx_t_4) {
+      __pyx_t_5 = (__pyx_t_4 != 0);
+      if (__pyx_t_5) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":396
  *         try:
@@ -103036,7 +103821,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  *             py_buffer = <bytes>c_buffer[:size]
  *             self._filelike.write(py_buffer)
  */
-        __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_247), 0, 0);
+        __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_248), 0, 0);
         {__pyx_filename = __pyx_f[6]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         goto __pyx_L11;
       }
@@ -103049,11 +103834,11 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  *             self._filelike.write(py_buffer)
  *             return size
  */
-      __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);
-      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+      __pyx_t_6 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_buffer + 0, __pyx_v_size - 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+      __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_6)));
+      __pyx_v_py_buffer = ((PyObject*)__pyx_t_6);
+      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":398
  *                 raise IOError, u"File is already closed"
@@ -103062,18 +103847,18 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  *             return size
  *         except:
  */
-      __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_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_filelike, __pyx_n_s__write); 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);
+      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(((PyObject *)__pyx_v_py_buffer));
-      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_py_buffer));
+      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_py_buffer));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_py_buffer));
-      __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-      __Pyx_GOTREF(__pyx_t_7);
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":399
  *             py_buffer = <bytes>c_buffer[:size]
@@ -103096,9 +103881,9 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
     goto __pyx_L0;
     __pyx_L3_error:;
-    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__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;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":400
  *             self._filelike.write(py_buffer)
@@ -103109,10 +103894,10 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._FilelikeWriter.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_GOTREF(__pyx_t_5);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":401
  *             return size
@@ -103131,13 +103916,13 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  *     cdef int close(self):
  */
       __pyx_r = -1;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L6_except_return;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       goto __pyx_L4_exception_handled;
     }
     __pyx_L5_except_error:;
@@ -103163,9 +103948,9 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_WriteUnraisable("lxml.etree._FilelikeWriter.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -103189,9 +103974,10 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
+  PyObject *__pyx_t_8 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -103219,7 +104005,8 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
  *             # we should not close the file here as we didn't open it
  */
       __pyx_t_4 = (__pyx_v_self->_close_filelike != Py_None);
-      if (__pyx_t_4) {
+      __pyx_t_5 = (__pyx_t_4 != 0);
+      if (__pyx_t_5) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":407
  *         try:
@@ -103228,9 +104015,9 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
  *             # we should not close the file here as we didn't open it
  *             self._filelike = None
  */
-        __pyx_t_5 = PyObject_Call(__pyx_v_self->_close_filelike, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-        __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+        __pyx_t_6 = PyObject_Call(__pyx_v_self->_close_filelike, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __Pyx_GOTREF(__pyx_t_6);
+        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         goto __pyx_L11;
       }
       __pyx_L11:;
@@ -103269,7 +104056,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
     __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3);
     goto __pyx_L0;
     __pyx_L3_error:;
-    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":411
  *             self._filelike = None
@@ -103280,10 +104067,10 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._FilelikeWriter.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
+      __Pyx_GOTREF(__pyx_t_8);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":412
  *             return 0
@@ -103302,13 +104089,13 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
  * cdef int _writeFilelikeWriter(void* ctxt, char* c_buffer, int length):
  */
       __pyx_r = -1;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L6_except_return;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L4_exception_handled;
     }
     __pyx_L5_except_error:;
@@ -103334,9 +104121,9 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_WriteUnraisable("lxml.etree._FilelikeWriter.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -103425,10 +104212,11 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -103464,7 +104252,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *     else:
  */
   __pyx_t_1 = (__pyx_v_encoding == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":433
  *     cdef int error_result
@@ -103485,11 +104274,11 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         c_enc = _cstr(encoding)
  *     if doctype is None:
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_encoding = __pyx_t_3;
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":436
  *     else:
@@ -103509,7 +104298,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         c_doctype = NULL
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_doctype == Py_None);
+  __pyx_t_2 = (__pyx_v_doctype == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":438
@@ -103531,11 +104321,11 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         c_doctype = _xcstr(doctype)
  *     c_method = _findOutputMethod(method)
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_doctype);
-    __pyx_v_doctype = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_doctype = __pyx_t_3;
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":441
  *     else:
@@ -103555,8 +104345,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         data = _textToString(element._c_node, encoding, with_tail)
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_method = __pyx_t_3;
+  __pyx_t_4 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_method = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":443
  *         c_doctype = _xcstr(doctype)
@@ -103565,7 +104355,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         data = _textToString(element._c_node, encoding, with_tail)
  *         if compression:
  */
-  __pyx_t_1 = (__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT);
+  __pyx_t_1 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":444
@@ -103575,10 +104365,10 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         if compression:
  *             bytes_out = BytesIO()
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_v_data = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_v_data = __pyx_t_3;
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":445
  *     if c_method == OUTPUT_METHOD_TEXT:
@@ -103587,7 +104377,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             bytes_out = BytesIO()
  *             gzip_file = gzip.GzipFile(
  */
-    if (__pyx_v_compression) {
+    __pyx_t_1 = (__pyx_v_compression != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":446
  *         data = _textToString(element._c_node, encoding, with_tail)
@@ -103596,10 +104387,10 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             gzip_file = gzip.GzipFile(
  *                 fileobj=bytes_out, mode='wb', compresslevel=compression)
  */
-      __pyx_t_2 = PyObject_Call(__pyx_v_4lxml_5etree_BytesIO, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_v_bytes_out = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree_BytesIO, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_v_bytes_out = __pyx_t_3;
+      __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":447
  *         if compression:
@@ -103608,10 +104399,10 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *                 fileobj=bytes_out, mode='wb', compresslevel=compression)
  *             try:
  */
-      __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));
+      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_gzip, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":448
  *             bytes_out = BytesIO()
@@ -103620,18 +104411,18 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             try:
  *                 gzip_file.write(data)
  */
-      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__fileobj), __pyx_v_bytes_out) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_n_s__wb)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_5 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__compresslevel), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-      __pyx_v_gzip_file = __pyx_t_5;
-      __pyx_t_5 = 0;
+      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__fileobj), __pyx_v_bytes_out) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_n_s__wb)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__compresslevel), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+      __pyx_v_gzip_file = __pyx_t_6;
+      __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":449
  *             gzip_file = gzip.GzipFile(
@@ -103649,18 +104440,18 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             finally:
  *                 gzip_file.close()
  */
-        __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_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
+        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_5 = PyTuple_New(1); 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);
         __Pyx_INCREF(__pyx_v_data);
-        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_data);
+        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_data);
         __Pyx_GIVEREF(__pyx_v_data);
-        __pyx_t_2 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+        __pyx_t_3 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       }
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":452
@@ -103678,20 +104469,20 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
         __pyx_why = 0; goto __pyx_L9;
         __pyx_L8: {
           __pyx_why = 4;
+          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
           __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
           __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
           __pyx_exc_lineno = __pyx_lineno;
           goto __pyx_L9;
         }
         __pyx_L9:;
-        __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);
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L10_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 = 452; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+        __Pyx_GOTREF(__pyx_t_5);
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         goto __pyx_L11;
         __pyx_L10_error:;
         if (__pyx_why == 4) {
@@ -103734,7 +104525,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             filename8 = _encodeFilename(f)
  *             f = open(filename8, 'wb')
  */
-    __pyx_t_1 = _isString(__pyx_v_f);
+    __pyx_t_1 = (_isString(__pyx_v_f) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":455
@@ -103744,10 +104535,10 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             f = open(filename8, 'wb')
  *             try:
  */
-      __pyx_t_4 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
-      __pyx_v_filename8 = __pyx_t_4;
-      __pyx_t_4 = 0;
+      __pyx_t_5 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_v_filename8 = __pyx_t_5;
+      __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":456
  *         if _isString(f):
@@ -103756,20 +104547,20 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             try:
  *                 f.write(data)
  */
-      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v_filename8);
-      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename8);
+      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_filename8);
       __Pyx_GIVEREF(__pyx_v_filename8);
       __Pyx_INCREF(((PyObject *)__pyx_n_s__wb));
-      PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_n_s__wb));
+      PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_n_s__wb));
       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__wb));
-      __pyx_t_2 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+      __pyx_t_3 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_v_f);
-      __pyx_v_f = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_f = __pyx_t_3;
+      __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":457
  *             filename8 = _encodeFilename(f)
@@ -103787,18 +104578,18 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             finally:
  *                 f.close()
  */
-        __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);
+        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
+        __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_data);
-        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_data);
+        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_data);
         __Pyx_GIVEREF(__pyx_v_data);
-        __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
-        __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+        __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
+        __Pyx_GOTREF(__pyx_t_6);
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       }
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":460
@@ -103816,20 +104607,20 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
         __pyx_why = 0; goto __pyx_L15;
         __pyx_L14: {
           __pyx_why = 4;
-          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
-          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
+          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
           __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
+          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
           __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
           __pyx_exc_lineno = __pyx_lineno;
           goto __pyx_L15;
         }
         __pyx_L15:;
-        __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_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__close); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
+        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); 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);
+        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         goto __pyx_L17;
         __pyx_L16_error:;
         if (__pyx_why == 4) {
@@ -103861,18 +104652,18 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         return
  * 
  */
-      __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_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); 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_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_v_data);
-      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_data);
+      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
       __Pyx_GIVEREF(__pyx_v_data);
-      __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     }
     __pyx_L12:;
 
@@ -103897,12 +104688,12 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *     if writer is None:
  *         state = python.PyEval_SaveThread()
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__create_output_buffer(__pyx_v_f, __pyx_v_c_enc, __pyx_v_compression, (&__pyx_v_c_buffer)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__FilelikeWriter))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__create_output_buffer(__pyx_v_f, __pyx_v_c_enc, __pyx_v_compression, (&__pyx_v_c_buffer)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 465; __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__FilelikeWriter))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_v_writer));
-  __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":466
  * 
@@ -103912,7 +104703,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  * 
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_writer) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":467
  *     writer = _create_output_buffer(f, c_enc, compression, &c_buffer)
@@ -103942,8 +104734,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *     if error_result == xmlerror.XML_ERR_OK:
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  */
-  __pyx_t_3 = __pyx_v_c_buffer->error;
-  __pyx_v_error_result = __pyx_t_3;
+  __pyx_t_4 = __pyx_v_c_buffer->error;
+  __pyx_v_error_result = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":473
  *                        pretty_print, with_tail, standalone)
@@ -103952,8 +104744,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  *         if error_result > 0:
  */
-  __pyx_t_1 = (__pyx_v_error_result == XML_ERR_OK);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_error_result == XML_ERR_OK) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":474
  *     error_result = c_buffer.error
@@ -103971,8 +104763,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *             error_result = xmlerror.XML_ERR_OK
  *     else:
  */
-    __pyx_t_1 = (__pyx_v_error_result > 0);
-    if (__pyx_t_1) {
+    __pyx_t_2 = ((__pyx_v_error_result > 0) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":476
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
@@ -104007,7 +104799,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         python.PyEval_RestoreThread(state)
  *     else:
  */
-  __pyx_t_1 = (((PyObject *)__pyx_v_writer) == Py_None);
+  __pyx_t_2 = (((PyObject *)__pyx_v_writer) == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":480
@@ -104029,7 +104822,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *     if error_result != xmlerror.XML_ERR_OK:
  *         _raiseSerialisationError(error_result)
  */
-    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L21:;
 
@@ -104040,7 +104833,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  *         _raiseSerialisationError(error_result)
  * 
  */
-  __pyx_t_1 = (__pyx_v_error_result != XML_ERR_OK);
+  __pyx_t_1 = ((__pyx_v_error_result != XML_ERR_OK) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":484
@@ -104050,9 +104843,9 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  * 
  * cdef _create_output_buffer(f, const_char* c_enc, int compression,
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L22;
   }
   __pyx_L22:;
@@ -104060,9 +104853,9 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._tofilelike", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -104101,8 +104894,9 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  xmlOutputBuffer *__pyx_t_8;
-  const char *__pyx_t_9;
+  int __pyx_t_8;
+  xmlOutputBuffer *__pyx_t_9;
+  const char *__pyx_t_10;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -104124,7 +104918,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *         raise LookupError(u"unknown encoding: '%s'" %
  *                           c_enc.decode(u'UTF-8') if c_enc is not NULL else u'')
  */
-  __pyx_t_1 = (__pyx_v_enchandler == NULL);
+  __pyx_t_1 = ((__pyx_v_enchandler == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":493
@@ -104134,7 +104928,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *     try:
  *         if _isString(f):
  */
-    if ((__pyx_v_c_enc != NULL)) {
+    if (((__pyx_v_c_enc != NULL) != 0)) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":492
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)
@@ -104145,7 +104939,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  */
       __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_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_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_178), ((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);
@@ -104190,7 +104984,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *             filename8 = _encodeFilename(f)
  *             c_buffer = tree.xmlOutputBufferCreateFilename(
  */
-      __pyx_t_1 = _isString(__pyx_v_f);
+      __pyx_t_1 = (_isString(__pyx_v_f) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":496
@@ -104221,7 +105015,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *                 return python.PyErr_SetFromErrno(IOError) # raises IOError
  *             writer = None
  */
-        __pyx_t_1 = (__pyx_v_c_buffer == NULL);
+        __pyx_t_1 = ((__pyx_v_c_buffer == NULL) != 0);
         if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":500
@@ -104261,7 +105055,8 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *             c_buffer = writer._createOutputBuffer(enchandler)
  */
       __pyx_t_1 = PyObject_HasAttr(__pyx_v_f, ((PyObject *)__pyx_n_s__write)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
-      if (__pyx_t_1) {
+      __pyx_t_8 = (__pyx_t_1 != 0);
+      if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":503
  *             writer = None
@@ -104295,8 +105090,8 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *         else:
  *             raise TypeError(
  */
-        __pyx_t_8 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, __pyx_v_enchandler); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
-        __pyx_v_c_buffer = __pyx_t_8;
+        __pyx_t_9 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, __pyx_v_enchandler); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_v_c_buffer = __pyx_t_9;
         goto __pyx_L12;
       }
       /*else*/ {
@@ -104308,10 +105103,10 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *     except:
  *         tree.xmlCharEncCloseFunc(enchandler)
  */
-        __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_t_10 = _fqtypename(__pyx_v_f);
+        __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_10, 0, strlen(__pyx_t_10), 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_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_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_249), ((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;}
@@ -104738,17 +105533,17 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
   int __pyx_t_3;
   xmlChar **__pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
-  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_6;
   PyObject *__pyx_t_7 = NULL;
-  xmlOutputBuffer *__pyx_t_8;
-  PyObject *__pyx_t_9 = NULL;
-  int __pyx_t_10;
-  PyObject *__pyx_t_11 = NULL;
+  PyObject *__pyx_t_8 = NULL;
+  xmlOutputBuffer *__pyx_t_9;
+  PyObject *__pyx_t_10 = NULL;
+  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_t_16;
+  PyObject *__pyx_t_16 = NULL;
   const char *__pyx_t_17;
   Py_ssize_t __pyx_t_18;
   int __pyx_lineno = 0;
@@ -104852,7 +105647,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *             filename8 = _encodeFilename(f)
  *             c_filename = _cstr(filename8)
  */
-    __pyx_t_3 = _isString(__pyx_v_f);
+    __pyx_t_3 = (_isString(__pyx_v_f) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":553
@@ -104924,7 +105719,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *             c_buffer = writer._createOutputBuffer(NULL)
  */
     __pyx_t_3 = PyObject_HasAttr(__pyx_v_f, ((PyObject *)__pyx_n_s__write)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L4;}
-    if (__pyx_t_3) {
+    __pyx_t_6 = (__pyx_t_3 != 0);
+    if (__pyx_t_6) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":560
  *                     with_comments, c_filename, compression)
@@ -104938,19 +105734,19 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
       __Pyx_INCREF(__pyx_v_f);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_f);
       __Pyx_GIVEREF(__pyx_v_f);
-      __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
-      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
-      __pyx_t_7 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
-      __Pyx_GOTREF(__pyx_t_7);
-      if (PyDict_SetItem(__pyx_t_6, ((PyObject *)__pyx_n_s__compression), __pyx_t_7) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FilelikeWriter)), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
-      __Pyx_GOTREF(__pyx_t_7);
+      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_7));
+      __pyx_t_8 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __Pyx_GOTREF(__pyx_t_8);
+      if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__compression), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_8 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FilelikeWriter)), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_v_writer));
-      __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_7);
-      __pyx_t_7 = 0;
+      __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_8);
+      __pyx_t_8 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":561
  *         elif hasattr(f, 'write'):
@@ -104959,8 +105755,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *             with writer.error_log:
  *                 bytes_count = c14n.xmlC14NDocSaveTo(
  */
-      __pyx_t_8 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, NULL); if (unlikely(__pyx_t_8 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L4;}
-      __pyx_v_c_buffer = __pyx_t_8;
+      __pyx_t_9 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, NULL); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_v_c_buffer = __pyx_t_9;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":562
  *             writer   = _FilelikeWriter(f, compression=compression)
@@ -104970,15 +105766,15 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  */
       /*with:*/ {
-        __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;}
+        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_writer->error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+        __Pyx_GOTREF(__pyx_t_10);
+        __pyx_t_11 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_writer->error_log); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
         /*try:*/ {
           {
-            __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_12, &__pyx_t_13);
-            __Pyx_XGOTREF(__pyx_t_11);
+            __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
             __Pyx_XGOTREF(__pyx_t_12);
             __Pyx_XGOTREF(__pyx_t_13);
+            __Pyx_XGOTREF(__pyx_t_14);
             /*try:*/ {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":565
@@ -104999,13 +105795,13 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
               __pyx_v_error = xmlOutputBufferClose(__pyx_v_c_buffer);
             }
-            __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
             __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
             __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
+            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
             goto __pyx_L21_try_end;
             __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-            __Pyx_XDECREF(__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;
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":562
  *             writer   = _FilelikeWriter(f, compression=compression)
@@ -105016,73 +105812,73 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
             /*except:*/ {
               __Pyx_AddTraceback("lxml.etree._tofilelikeC14N", __pyx_clineno, __pyx_lineno, __pyx_filename);
-              if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              __Pyx_GOTREF(__pyx_t_8);
               __Pyx_GOTREF(__pyx_t_7);
-              __Pyx_GOTREF(__pyx_t_6);
               __Pyx_GOTREF(__pyx_t_5);
-              __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
-              __Pyx_GOTREF(__pyx_t_14);
+              __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              __Pyx_GOTREF(__pyx_t_15);
+              __Pyx_INCREF(__pyx_t_8);
+              PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8);
+              __Pyx_GIVEREF(__pyx_t_8);
               __Pyx_INCREF(__pyx_t_7);
-              PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7);
+              PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_7);
               __Pyx_GIVEREF(__pyx_t_7);
-              __Pyx_INCREF(__pyx_t_6);
-              PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_6);
-              __Pyx_GIVEREF(__pyx_t_6);
               __Pyx_INCREF(__pyx_t_5);
-              PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_5);
+              PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_5);
               __Pyx_GIVEREF(__pyx_t_5);
-              __pyx_t_15 = PyObject_Call(__pyx_t_9, __pyx_t_14, NULL);
-              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
-              if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
-              __Pyx_GOTREF(__pyx_t_15);
-              __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_15);
-              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
-              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_t_16 = PyObject_Call(__pyx_t_10, __pyx_t_15, NULL);
+              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              __Pyx_GOTREF(__pyx_t_16);
+              __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_16);
+              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+              if (__pyx_t_6 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              __pyx_t_3 = ((!(__pyx_t_6 != 0)) != 0);
+              if (__pyx_t_3) {
+                __Pyx_GIVEREF(__pyx_t_8);
                 __Pyx_GIVEREF(__pyx_t_7);
-                __Pyx_GIVEREF(__pyx_t_6);
                 __Pyx_GIVEREF(__pyx_t_5);
-                __Pyx_ErrRestore(__pyx_t_7, __pyx_t_6, __pyx_t_5);
-                __pyx_t_7 = 0; __pyx_t_6 = 0; __pyx_t_5 = 0; 
+                __Pyx_ErrRestore(__pyx_t_8, __pyx_t_7, __pyx_t_5);
+                __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_5 = 0; 
                 {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
                 goto __pyx_L24;
               }
               __pyx_L24:;
-              __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
+              __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
+              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
               __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
               __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
               goto __pyx_L15_exception_handled;
             }
             __pyx_L16_except_error:;
-            __Pyx_XGIVEREF(__pyx_t_11);
             __Pyx_XGIVEREF(__pyx_t_12);
             __Pyx_XGIVEREF(__pyx_t_13);
-            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
+            __Pyx_XGIVEREF(__pyx_t_14);
+            __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
             goto __pyx_L4;
             __pyx_L15_exception_handled:;
-            __Pyx_XGIVEREF(__pyx_t_11);
             __Pyx_XGIVEREF(__pyx_t_12);
             __Pyx_XGIVEREF(__pyx_t_13);
-            __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_12, __pyx_t_13);
+            __Pyx_XGIVEREF(__pyx_t_14);
+            __Pyx_ExceptionReset(__pyx_t_12, __pyx_t_13, __pyx_t_14);
             __pyx_L21_try_end:;
           }
         }
         /*finally:*/ {
-          if (__pyx_t_9) {
-            __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 (__pyx_t_16 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+          if (__pyx_t_10) {
+            __pyx_t_14 = PyObject_Call(__pyx_t_10, __pyx_k_tuple_250, NULL);
+            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+            if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+            __Pyx_GOTREF(__pyx_t_14);
+            __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_14);
+            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+            if (__pyx_t_3 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
           }
         }
         goto __pyx_L25;
         __pyx_L10_error:;
-        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         goto __pyx_L4;
         __pyx_L25:;
       }
@@ -105094,8 +105890,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *                 error = bytes_count
  *         else:
  */
-      __pyx_t_16 = (__pyx_v_bytes_count < 0);
-      if (__pyx_t_16) {
+      __pyx_t_3 = ((__pyx_v_bytes_count < 0) != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":568
  *                 error = tree.xmlOutputBufferClose(c_buffer)
@@ -105122,19 +105918,19 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
       __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_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_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_249), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_7));
       __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;}
       __Pyx_GOTREF(__pyx_t_5);
-      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_6));
-      __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
-      __pyx_t_6 = 0;
-      __pyx_t_6 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
-      __Pyx_GOTREF(__pyx_t_6);
+      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_7));
+      __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
+      __pyx_t_7 = 0;
+      __pyx_t_7 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_Raise(__pyx_t_6, 0, 0, 0);
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_Raise(__pyx_t_7, 0, 0, 0);
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
     }
     __pyx_L6:;
@@ -105155,10 +105951,10 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     __pyx_why = 0; goto __pyx_L5;
     __pyx_L4: {
       __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
-      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
+      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
       __pyx_exc_lineno = __pyx_lineno;
       goto __pyx_L5;
@@ -105173,8 +105969,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *             python.PyMem_Free(c_inclusive_ns_prefixes)
  * 
  */
-    __pyx_t_16 = (__pyx_v_c_inclusive_ns_prefixes != NULL);
-    if (__pyx_t_16) {
+    __pyx_t_3 = ((__pyx_v_c_inclusive_ns_prefixes != NULL) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":575
  *         _destroyFakeDoc(c_base_doc, c_doc)
@@ -105206,8 +106002,9 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *         writer._exc_context._raise_if_stored()
  * 
  */
-  __pyx_t_16 = (((PyObject *)__pyx_v_writer) != Py_None);
-  if (__pyx_t_16) {
+  __pyx_t_3 = (((PyObject *)__pyx_v_writer) != Py_None);
+  __pyx_t_6 = (__pyx_t_3 != 0);
+  if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":578
  * 
@@ -105216,7 +106013,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  * 
  *     if error < 0:
  */
-    __pyx_t_10 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_11 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L29;
   }
   __pyx_L29:;
@@ -105228,8 +106025,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *         message = u"C14N failed"
  *         if writer is not None:
  */
-  __pyx_t_16 = (__pyx_v_error < 0);
-  if (__pyx_t_16) {
+  __pyx_t_6 = ((__pyx_v_error < 0) != 0);
+  if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":581
  * 
@@ -105238,8 +106035,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *         if writer is not None:
  *             errors = writer.error_log
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_230));
-    __pyx_v_message = ((PyObject *)__pyx_kp_u_230);
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_231));
+    __pyx_v_message = ((PyObject *)__pyx_kp_u_231);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":582
  *     if error < 0:
@@ -105248,8 +106045,9 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *             errors = writer.error_log
  *             if len(errors):
  */
-    __pyx_t_16 = (((PyObject *)__pyx_v_writer) != Py_None);
-    if (__pyx_t_16) {
+    __pyx_t_6 = (((PyObject *)__pyx_v_writer) != Py_None);
+    __pyx_t_3 = (__pyx_t_6 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":583
  *         message = u"C14N failed"
@@ -105258,10 +106056,10 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *             if len(errors):
  *                 message = errors[0].message
  */
-      __pyx_t_6 = ((PyObject *)__pyx_v_writer->error_log);
-      __Pyx_INCREF(__pyx_t_6);
-      __pyx_v_errors = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_6);
-      __pyx_t_6 = 0;
+      __pyx_t_7 = ((PyObject *)__pyx_v_writer->error_log);
+      __Pyx_INCREF(__pyx_t_7);
+      __pyx_v_errors = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_7);
+      __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":584
  *         if writer is not None:
@@ -105271,7 +106069,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *         raise C14NError(message)
  */
       __pyx_t_18 = PyObject_Length(((PyObject *)__pyx_v_errors)); if (unlikely(__pyx_t_18 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      if (__pyx_t_18) {
+      __pyx_t_3 = (__pyx_t_18 != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":585
  *             errors = writer.error_log
@@ -105280,11 +106079,11 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *         raise C14NError(message)
  * 
  */
-        __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 = __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_t_7 = __Pyx_GetItemInt(((PyObject *)__pyx_v_errors), 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_7) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_7);
+        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __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_t_7); __pyx_t_7 = 0;
         __Pyx_DECREF(__pyx_v_message);
         __pyx_v_message = __pyx_t_5;
         __pyx_t_5 = 0;
@@ -105304,17 +106103,17 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
     __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);
+    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
     __Pyx_INCREF(__pyx_v_message);
-    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_message);
+    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_message);
     __Pyx_GIVEREF(__pyx_v_message);
-    __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_7);
+    __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __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_6)); __pyx_t_6 = 0;
-    __Pyx_Raise(__pyx_t_7, 0, 0, 0);
-    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+    __Pyx_Raise(__pyx_t_8, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L30;
   }
@@ -105324,9 +106123,9 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_5);
-  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
-  __Pyx_XDECREF(__pyx_t_14);
+  __Pyx_XDECREF(__pyx_t_8);
+  __Pyx_XDECREF(__pyx_t_15);
   __Pyx_AddTraceback("lxml.etree._tofilelikeC14N", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -105535,7 +106334,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_2__enter__(struct __pyx_obj_4lxm
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_1 = (__pyx_v_self->output_file != Py_None);
-  if (unlikely(!__pyx_t_1)) {
+  if (unlikely(!(__pyx_t_1 != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -105688,8 +106487,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -105703,7 +106503,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
  *             raise_on_error = exc_type is None
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->writer) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":630
  *     def __exit__(self, exc_type, exc_val, exc_tb):
@@ -105712,17 +106513,17 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
  *             raise_on_error = exc_type is None
  *             old_writer._close(raise_on_error)
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_self->writer);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_3 = Py_None;
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->writer);
     __Pyx_INCREF(__pyx_t_3);
-    __pyx_v_old_writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)__pyx_t_2);
-    __pyx_t_2 = 0;
-    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_t_4 = Py_None;
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_v_old_writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)__pyx_t_3);
+    __pyx_t_3 = 0;
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_self->writer);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->writer));
-    __pyx_v_self->writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_self->writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":631
  *         if self.writer is not None:
@@ -105731,11 +106532,11 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
  *             old_writer._close(raise_on_error)
  * 
  */
-    __pyx_t_1 = (__pyx_v_exc_type == Py_None);
-    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_v_raise_on_error = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_t_2 = (__pyx_v_exc_type == Py_None);
+    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_v_raise_on_error = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":632
  *             old_writer, self.writer = self.writer, None
@@ -105744,10 +106545,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
  * 
  * cdef enum _IncrementalFileWriterStatus:
  */
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_raise_on_error); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(__pyx_v_old_writer, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 632; __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_PyObject_IsTrue(__pyx_v_raise_on_error); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(__pyx_v_old_writer, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -105755,8 +106556,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree.xmlfile.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -105853,7 +106654,8 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  char *__pyx_t_3;
+  int __pyx_t_3;
+  char *__pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -105892,7 +106694,8 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
  *         self._encoding = encoding
  */
   __pyx_t_2 = (__pyx_v_encoding == ((PyObject*)Py_None));
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":655
  *         self._element_stack = []
@@ -105928,13 +106731,13 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
  *         self._target = _create_output_buffer(outfile, self._c_encoding, compresslevel, &self._c_out)
  * 
  */
-  __pyx_t_2 = (__pyx_v_encoding != ((PyObject*)Py_None));
-  if (__pyx_t_2) {
-    __pyx_t_3 = PyBytes_AS_STRING(((PyObject *)__pyx_v_encoding));
+  __pyx_t_3 = (__pyx_v_encoding != ((PyObject*)Py_None));
+  if ((__pyx_t_3 != 0)) {
+    __pyx_t_4 = PyBytes_AS_STRING(((PyObject *)__pyx_v_encoding));
   } else {
-    __pyx_t_3 = NULL;
+    __pyx_t_4 = NULL;
   }
-  __pyx_v_self->_c_encoding = __pyx_t_3;
+  __pyx_v_self->_c_encoding = __pyx_t_4;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":658
  *         self._encoding = encoding
@@ -105992,7 +106795,7 @@ static void __pyx_pf_4lxml_5etree_22_IncrementalFileWriter_2__dealloc__(struct _
  *             tree.xmlOutputBufferClose(self._c_out)
  * 
  */
-  __pyx_t_1 = (__pyx_v_self->_c_out != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_c_out != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":662
@@ -106103,7 +106906,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   const xmlChar *__pyx_t_4;
-  long __pyx_t_5;
+  int __pyx_t_5;
+  long __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -106119,7 +106923,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  *         cdef int c_standalone
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_out != NULL))) {
+  if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -106132,7 +106936,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  *             raise LxmlSyntaxError("XML declaration already written")
  *         version = _utf8orNone(version)
  */
-  __pyx_t_1 = (__pyx_v_self->_status >= __pyx_e_4lxml_5etree_WRITER_DECL_WRITTEN);
+  __pyx_t_1 = ((__pyx_v_self->_status >= __pyx_e_4lxml_5etree_WRITER_DECL_WRITTEN) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":673
@@ -106144,7 +106948,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  */
     __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_251), 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_252), 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);
@@ -106175,7 +106979,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  *         if standalone is None:
  */
   __pyx_t_1 = (__pyx_v_version != Py_None);
-  if (__pyx_t_1) {
+  if ((__pyx_t_1 != 0)) {
     __pyx_t_4 = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_version);
   } else {
     __pyx_t_4 = NULL;
@@ -106203,7 +107007,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  *         else:
  */
   __pyx_t_1 = (__pyx_v_standalone == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_5 = (__pyx_t_1 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":678
  *         doctype = _utf8orNone(doctype)
@@ -106224,13 +107029,13 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  *         _writeDeclarationToBuffer(self._c_out, c_version, self._c_encoding, c_standalone)
  *         if doctype is not None:
  */
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_1) {
-      __pyx_t_5 = 1;
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_5) {
+      __pyx_t_6 = 1;
     } else {
-      __pyx_t_5 = 0;
+      __pyx_t_6 = 0;
     }
-    __pyx_v_c_standalone = __pyx_t_5;
+    __pyx_v_c_standalone = __pyx_t_6;
   }
   __pyx_L4:;
 
@@ -106250,7 +107055,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  *             _writeDoctype(self._c_out, _xcstr(doctype))
  *             self._status = WRITER_DTD_WRITTEN
  */
-  __pyx_t_1 = (__pyx_v_doctype != Py_None);
+  __pyx_t_5 = (__pyx_v_doctype != Py_None);
+  __pyx_t_1 = (__pyx_t_5 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":683
@@ -106335,8 +107141,9 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -106351,7 +107158,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  *             return
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_out != NULL))) {
+  if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -106365,7 +107172,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  *         if self._status >= WRITER_DTD_WRITTEN:
  */
   __pyx_t_1 = (__pyx_v_doctype == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":696
  *         assert self._c_out is not NULL
@@ -106388,8 +107196,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  *             raise LxmlSyntaxError("DOCTYPE already written or cannot write it here")
  *         doctype = _utf8(doctype)
  */
-  __pyx_t_1 = (__pyx_v_self->_status >= __pyx_e_4lxml_5etree_WRITER_DTD_WRITTEN);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_self->_status >= __pyx_e_4lxml_5etree_WRITER_DTD_WRITTEN) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":698
  *             return
@@ -106398,13 +107206,13 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  *         doctype = _utf8(doctype)
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  */
-    __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_253), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __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 = 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);
+    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_254), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -106417,11 +107225,11 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  *         self._status = WRITER_DTD_WRITTEN
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_v_doctype);
-  __pyx_v_doctype = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_v_doctype = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":700
  *             raise LxmlSyntaxError("DOCTYPE already written or cannot write it here")
@@ -106448,15 +107256,15 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  * 
  *     def element(self, tag, attrib=None, nsmap=None, **_extra):
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_4 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._IncrementalFileWriter.write_doctype", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -106590,7 +107398,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
  *         if attrib is not None:
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_out != NULL))) {
+  if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -106616,7 +107424,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
  *                 attrib = attrib.items()
  */
   __pyx_t_2 = (__pyx_v_attrib != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":712
  *         attributes = []
@@ -106627,15 +107436,16 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
  */
     __Pyx_INCREF(__pyx_v_attrib);
     __pyx_t_1 = __pyx_v_attrib;
-    __pyx_t_2 = PyDict_Check(__pyx_t_1); 
-    if (!__pyx_t_2) {
-      __pyx_t_3 = __Pyx_TypeCheck(__pyx_t_1, ((PyObject*)__pyx_ptype_4lxml_5etree__Attrib)); 
-      __pyx_t_4 = __pyx_t_3;
-    } else {
+    __pyx_t_3 = PyDict_Check(__pyx_t_1); 
+    if (!__pyx_t_3) {
+      __pyx_t_2 = __Pyx_TypeCheck(__pyx_t_1, ((PyObject*)__pyx_ptype_4lxml_5etree__Attrib)); 
       __pyx_t_4 = __pyx_t_2;
+    } else {
+      __pyx_t_4 = __pyx_t_3;
     }
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    if (__pyx_t_4) {
+    __pyx_t_3 = (__pyx_t_4 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":713
  *         if attrib is not None:
@@ -106762,7 +107572,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
  *                     ns, name = _getNsTag(name)
  *                     attributes.append((ns, name, _utf8(value)))
  */
-      __pyx_t_4 = (__Pyx_PyDict_Contains(__pyx_v_name, ((PyObject *)__pyx_v__extra), Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = (__Pyx_PyDict_Contains(__pyx_v_name, ((PyObject *)__pyx_v__extra), Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = (__pyx_t_3 != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":716
@@ -107123,7 +107934,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
  *                     _prefixValidOrRaise(prefix)
  */
       __pyx_t_4 = (__pyx_v_prefix != Py_None);
-      if (__pyx_t_4) {
+      __pyx_t_3 = (__pyx_t_4 != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":726
  *             for prefix, ns in nsmap.items():
@@ -107303,7 +108115,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  Py_ssize_t __pyx_t_2;
+  int __pyx_t_2;
+  Py_ssize_t __pyx_t_3;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -107317,7 +108130,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
  *             tree.xmlOutputBufferWrite(self._c_out, 1, ':')
  */
   __pyx_t_1 = (__pyx_v_prefix != ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":734
  *     cdef _write_qname(self, bytes name, bytes prefix):
@@ -107330,8 +108144,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_prefix)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, __pyx_t_2, PyBytes_AS_STRING(((PyObject *)__pyx_v_prefix)));
+    __pyx_t_3 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_prefix)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, __pyx_t_3, PyBytes_AS_STRING(((PyObject *)__pyx_v_prefix)));
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":735
  *         if prefix is not None:
@@ -107340,7 +108154,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
  *         tree.xmlOutputBufferWrite(self._c_out, len(name), _cstr(name))
  * 
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_254);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_255);
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -107356,8 +108170,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_name)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, __pyx_t_2, PyBytes_AS_STRING(((PyObject *)__pyx_v_name)));
+  __pyx_t_3 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_name)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, __pyx_t_3, PyBytes_AS_STRING(((PyObject *)__pyx_v_name)));
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -107408,7 +108222,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  *             raise LxmlSyntaxError("cannot append trailing element to complete XML document")
  *         ns, name, attributes, nsmap = element_config
  */
-  __pyx_t_1 = (__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT);
+  __pyx_t_1 = ((__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":740
@@ -107420,7 +108234,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  */
     __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_256), 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_257), 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);
@@ -107594,7 +108408,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  *         self._write_qname(name, prefix)
  *         self._write_attributes_and_namespaces(
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_257);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_258);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":745
  *         prefix = self._find_prefix(ns, flat_namespace_map, new_namespaces)
@@ -107630,7 +108444,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  *         self._handle_error(self._c_out.error)
  * 
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_258);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_259);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":749
  *             attributes, flat_namespace_map, new_namespaces)
@@ -108099,7 +108913,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  *             tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(value), NULL)
  *             tree.xmlOutputBufferWrite(self._c_out, 1, '"')
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_259);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_260);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":773
  *             self._write_qname(name, prefix)
@@ -108117,7 +108931,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  * 
  *     cdef _write_end_element(self, element_config):
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_242);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_243);
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -108174,7 +108988,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  *             raise LxmlSyntaxError("not in an element")
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
  */
-  __pyx_t_1 = (__pyx_v_self->_status != __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT);
+  __pyx_t_1 = ((__pyx_v_self->_status != __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":778
@@ -108186,7 +109000,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  */
     __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_261), 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_262), 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);
@@ -108212,10 +109026,10 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
     }
     __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_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_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 2, NULL, NULL, &__pyx_k_slice_263, 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_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_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_element_config, 0, 2, NULL, NULL, &__pyx_k_slice_264, 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;
@@ -108237,7 +109051,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  */
     __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_265), 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_266), 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);
@@ -108256,7 +109070,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  */
   __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_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_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_3, 1, 3, NULL, NULL, &__pyx_k_slice_267, 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))) {
@@ -108322,7 +109136,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  *         self._write_qname(name, prefix)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_267);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_268);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":784
  *         name, prefix = self._element_stack.pop()[1:3]
@@ -108344,7 +109158,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  * 
  *         if not self._element_stack:
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_258);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_259);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":787
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
@@ -108354,7 +109168,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
  *         self._handle_error(self._c_out.error)
  */
   __pyx_t_6 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
-  __pyx_t_4 = (!__pyx_t_6);
+  __pyx_t_4 = ((!__pyx_t_6) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":788
@@ -108412,9 +109226,10 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -108428,7 +109243,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  *         if href in flat_namespaces_map:
  */
   __pyx_t_1 = (__pyx_v_href == ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":793
  *     cdef _find_prefix(self, bytes href, dict flat_namespaces_map, list new_namespaces):
@@ -108456,7 +109272,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_v_href), ((PyObject *)__pyx_v_flat_namespaces_map), Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_v_href), ((PyObject *)__pyx_v_flat_namespaces_map), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":795
@@ -108471,10 +109288,10 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
       {__pyx_filename = __pyx_f[6]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_flat_namespaces_map), ((PyObject *)__pyx_v_href)); if (!__pyx_t_2) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_flat_namespaces_map), ((PyObject *)__pyx_v_href)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L4;
   }
@@ -108491,10 +109308,10 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
     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 = __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;
+  __pyx_t_3 = __Pyx_PyDict_Values(__pyx_v_flat_namespaces_map); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_prefixes = __pyx_t_3;
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":798
  *         # need to create a new prefix
@@ -108523,14 +109340,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  *             if prefix not in prefixes:
  *                 new_namespaces.append((b'xmlns', prefix, href))
  */
-    __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_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_60), __pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(((PyObject *)__pyx_t_3))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
     __Pyx_XDECREF(((PyObject *)__pyx_v_prefix));
-    __pyx_v_prefix = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_v_prefix = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":801
  *         while True:
@@ -108540,7 +109357,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  *                 flat_namespaces_map[href] = prefix
  */
     __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_v_prefix), __pyx_v_prefixes, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":802
  *             prefix = _utf8('ns%d' % i)
@@ -108553,19 +109371,19 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
         {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __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[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(((PyObject *)__pyx_n_b__xmlns));
-      PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_b__xmlns));
+      PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_n_b__xmlns));
       __Pyx_GIVEREF(((PyObject *)__pyx_n_b__xmlns));
       __Pyx_INCREF(((PyObject *)__pyx_v_prefix));
-      PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_prefix));
+      PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_prefix));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_prefix));
       __Pyx_INCREF(((PyObject *)__pyx_v_href));
-      PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_href));
+      PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_href));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_href));
-      __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;
+      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":803
  *             if prefix not in prefixes:
@@ -108602,18 +109420,18 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  * 
  *     cdef _collect_namespaces(self, dict nsmap):
  */
-    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_v_i);
-    __pyx_v_i = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_i = __pyx_t_4;
+    __pyx_t_4 = 0;
   }
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._IncrementalFileWriter._find_prefix", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -108649,6 +109467,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
   int __pyx_t_7;
   int __pyx_t_8;
   int __pyx_t_9;
+  int __pyx_t_10;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -108725,7 +109544,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
  *             else:
  */
     __pyx_t_8 = (__pyx_v_prefix == Py_None);
-    if (__pyx_t_8) {
+    __pyx_t_9 = (__pyx_t_8 != 0);
+    if (__pyx_t_9) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":813
  *             flat_namespaces_map[ns] = prefix
@@ -108745,7 +109565,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
       __Pyx_INCREF(__pyx_v_ns);
       PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_ns);
       __Pyx_GIVEREF(__pyx_v_ns);
-      __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_t_10 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_10 == -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;
     }
@@ -108769,7 +109589,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
       __Pyx_INCREF(__pyx_v_ns);
       PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_ns);
       __Pyx_GIVEREF(__pyx_v_ns);
-      __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_t_10 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_10 == -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:;
@@ -108783,8 +109603,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
  *             for ns, prefix in (<dict>self._element_stack[-1][-1]).iteritems():
  *                 if flat_namespaces_map.get(ns) is None:
  */
-  __pyx_t_8 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
-  if (__pyx_t_8) {
+  __pyx_t_9 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
+  if (__pyx_t_9) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":818
  *         # merge in flat namespace map of parent
@@ -108835,8 +109655,9 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
  */
       __pyx_t_5 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_flat_namespaces_map), __pyx_v_ns, Py_None); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_8 = (__pyx_t_5 == Py_None);
+      __pyx_t_9 = (__pyx_t_5 == Py_None);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_8 = (__pyx_t_9 != 0);
       if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":821
@@ -109001,7 +109822,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  *             if _isString(content):
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_out != NULL))) {
+  if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
     {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -109033,7 +109854,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  *                 if self._status != WRITER_IN_ELEMENT:
  *                     if self._status > WRITER_IN_ELEMENT or content.strip():
  */
-    __pyx_t_4 = _isString(__pyx_v_content);
+    __pyx_t_4 = (_isString(__pyx_v_content) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":832
@@ -109043,7 +109864,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  *                     if self._status > WRITER_IN_ELEMENT or content.strip():
  *                         raise LxmlSyntaxError("not in an element")
  */
-      __pyx_t_4 = (__pyx_v_self->_status != __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT);
+      __pyx_t_4 = ((__pyx_v_self->_status != __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":833
@@ -109077,7 +109898,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  */
           __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_268), 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_269), 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);
@@ -109143,7 +109964,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  *                     raise LxmlSyntaxError("cannot append trailing element to complete XML document")
  *                 _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
  */
-      __pyx_t_7 = (__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT);
+      __pyx_t_7 = ((__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":839
@@ -109155,7 +109976,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  */
         __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_269), 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_270), 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);
@@ -109181,7 +110002,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  *                     if not self._element_stack:
  *                         self._status = WRITER_FINISHED
  */
-      __pyx_t_7 = (((struct LxmlElement *)__pyx_v_content)->_c_node->type == XML_ELEMENT_NODE);
+      __pyx_t_7 = ((((struct LxmlElement *)__pyx_v_content)->_c_node->type == XML_ELEMENT_NODE) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":844
@@ -109192,7 +110013,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  *             else:
  */
         __pyx_t_7 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
-        __pyx_t_4 = (!__pyx_t_7);
+        __pyx_t_4 = ((!__pyx_t_7) != 0);
         if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":845
@@ -109220,7 +110041,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  *             self._handle_error(self._c_out.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_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_271), ((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);
@@ -109293,7 +110114,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  *             if self._status < WRITER_IN_ELEMENT:
  *                 raise LxmlSyntaxError("no content written")
  */
-  if (__pyx_v_raise_on_error) {
+  __pyx_t_1 = (__pyx_v_raise_on_error != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":852
  *     cdef _close(self, bint raise_on_error):
@@ -109302,7 +110124,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  *                 raise LxmlSyntaxError("no content written")
  *             if self._element_stack:
  */
-    __pyx_t_1 = (__pyx_v_self->_status < __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT);
+    __pyx_t_1 = ((__pyx_v_self->_status < __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":853
@@ -109314,7 +110136,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  */
       __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_272), 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_273), 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);
@@ -109343,7 +110165,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  */
       __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_274), 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_275), 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);
@@ -109373,7 +110195,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  *             error_result = tree.xmlOutputBufferClose(self._c_out)
  *             if error_result > 0:
  */
-  __pyx_t_1 = (__pyx_v_error_result == XML_ERR_OK);
+  __pyx_t_1 = ((__pyx_v_error_result == XML_ERR_OK) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":858
@@ -109392,7 +110214,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  *                 error_result = xmlerror.XML_ERR_OK
  *         else:
  */
-    __pyx_t_1 = (__pyx_v_error_result > 0);
+    __pyx_t_1 = ((__pyx_v_error_result > 0) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":860
@@ -109437,7 +110259,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  *             self._handle_error(error_result)
  * 
  */
-  if (__pyx_v_raise_on_error) {
+  __pyx_t_1 = (__pyx_v_raise_on_error != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":865
  *         self._c_out = NULL
@@ -109479,7 +110302,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -109492,7 +110316,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
  *             if self._writer is not None:
  *                 self._writer._exc_context._raise_if_stored()
  */
-  __pyx_t_1 = (__pyx_v_error_result != XML_ERR_OK);
+  __pyx_t_1 = ((__pyx_v_error_result != XML_ERR_OK) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":869
@@ -109506,7 +110330,8 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = (__pyx_t_2 != Py_None);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    if (__pyx_t_1) {
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":870
  *         if error_result != xmlerror.XML_ERR_OK:
@@ -109517,16 +110342,16 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
  */
       __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 = __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_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___exc_context); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __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_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __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;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __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 = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -109538,9 +110363,9 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
  * 
  * @cython.final
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_4 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -109549,7 +110374,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._IncrementalFileWriter._handle_error", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -109962,7 +110787,7 @@ static int __pyx_f_4lxml_5etree__buildIterparseEventFilter(PyObject *__pyx_v_eve
  *             event_filter |= ITERPARSE_FILTER_START_NS
  *         elif event == u'end-ns':
  */
-    __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_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 = 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) {
@@ -109985,7 +110810,7 @@ static int __pyx_f_4lxml_5etree__buildIterparseEventFilter(PyObject *__pyx_v_eve
  *             event_filter |= ITERPARSE_FILTER_END_NS
  *         elif event == u'comment':
  */
-    __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_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_277), 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) {
@@ -110055,7 +110880,7 @@ static int __pyx_f_4lxml_5etree__buildIterparseEventFilter(PyObject *__pyx_v_eve
  *     return event_filter
  * 
  */
-      __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_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_278), __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;
@@ -110132,7 +110957,7 @@ static int __pyx_f_4lxml_5etree__countNsDefs(xmlNode *__pyx_v_c_node) {
  *         c_ns = c_ns.next
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_ns != NULL);
+    __pyx_t_2 = ((__pyx_v_c_ns != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":39
@@ -110223,7 +111048,7 @@ static int __pyx_f_4lxml_5etree__appendStartNsEvents(xmlNode *__pyx_v_c_node, Py
  *                     funicode(c_ns.href))
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_ns != NULL);
+    __pyx_t_2 = ((__pyx_v_c_ns != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":49
@@ -110233,7 +111058,7 @@ static int __pyx_f_4lxml_5etree__appendStartNsEvents(xmlNode *__pyx_v_c_node, Py
  *                     funicode(c_ns.href))
  *         event_list.append( (u"start-ns", ns_tuple) )
  */
-    if ((__pyx_v_c_ns->prefix != NULL)) {
+    if (((__pyx_v_c_ns->prefix != NULL) != 0)) {
       __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_ns->prefix); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_3 = __pyx_t_4;
@@ -110277,9 +111102,9 @@ static int __pyx_f_4lxml_5etree__appendStartNsEvents(xmlNode *__pyx_v_c_node, Py
     }
     __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_275));
-    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_u_275));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_275));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_276));
+    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_u_276));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_276));
     __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));
@@ -110446,8 +111271,7 @@ static void __pyx_f_4lxml_5etree_17_IterparseContext__initParserContext(struct _
   endElementNsSAX2Func __pyx_t_7;
   endElementSAXFunc __pyx_t_8;
   commentSAXFunc __pyx_t_9;
-  int __pyx_t_10;
-  processingInstructionSAXFunc __pyx_t_11;
+  processingInstructionSAXFunc __pyx_t_10;
   __Pyx_RefNannySetupContext("_initParserContext", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":85
@@ -110525,7 +111349,7 @@ static void __pyx_f_4lxml_5etree_17_IterparseContext__initParserContext(struct _
  *             sax.startElementNs = <xmlparser.startElementNsSAX2Func>_iterparseSaxStart
  *             sax.startElement = <xmlparser.startElementSAXFunc>_iterparseSaxStartNoNs
  */
-    __pyx_t_6 = (__pyx_v_self->_event_filter & ((__pyx_e_4lxml_5etree_ITERPARSE_FILTER_START | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS) | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS));
+    __pyx_t_6 = ((__pyx_v_self->_event_filter & ((__pyx_e_4lxml_5etree_ITERPARSE_FILTER_START | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS) | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS)) != 0);
   } else {
     __pyx_t_6 = __pyx_t_5;
   }
@@ -110589,7 +111413,7 @@ static void __pyx_f_4lxml_5etree_17_IterparseContext__initParserContext(struct _
  *             sax.endElementNs = <xmlparser.endElementNsSAX2Func>_iterparseSaxEnd
  *             sax.endElement = <xmlparser.endElementSAXFunc>_iterparseSaxEndNoNs
  */
-    __pyx_t_5 = (__pyx_v_self->_event_filter & (__pyx_e_4lxml_5etree_ITERPARSE_FILTER_END | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS));
+    __pyx_t_5 = ((__pyx_v_self->_event_filter & (__pyx_e_4lxml_5etree_ITERPARSE_FILTER_END | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS)) != 0);
   } else {
     __pyx_t_5 = __pyx_t_6;
   }
@@ -110633,8 +111457,8 @@ static void __pyx_f_4lxml_5etree_17_IterparseContext__initParserContext(struct _
  *             sax.comment = <xmlparser.commentSAXFunc>_iterparseSaxComment
  * 
  */
-  __pyx_t_10 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_COMMENT);
-  if (__pyx_t_10) {
+  __pyx_t_5 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_COMMENT) != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":110
  *         self._origSaxComment = sax.comment
@@ -110655,8 +111479,8 @@ static void __pyx_f_4lxml_5etree_17_IterparseContext__initParserContext(struct _
  *         if self._event_filter & ITERPARSE_FILTER_PI:
  *             sax.processingInstruction = <xmlparser.processingInstructionSAXFunc>_iterparseSaxPI
  */
-  __pyx_t_11 = __pyx_v_sax->processingInstruction;
-  __pyx_v_self->_origSaxPI = __pyx_t_11;
+  __pyx_t_10 = __pyx_v_sax->processingInstruction;
+  __pyx_v_self->_origSaxPI = __pyx_t_10;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":113
  * 
@@ -110665,8 +111489,8 @@ static void __pyx_f_4lxml_5etree_17_IterparseContext__initParserContext(struct _
  *             sax.processingInstruction = <xmlparser.processingInstructionSAXFunc>_iterparseSaxPI
  * 
  */
-  __pyx_t_10 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_PI);
-  if (__pyx_t_10) {
+  __pyx_t_5 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_PI) != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":114
  *         self._origSaxPI = sax.processingInstruction
@@ -110799,7 +111623,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startDocument(struct __pyx_o
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
   int __pyx_t_3;
-  struct __pyx_opt_args_4lxml_5etree_16_MultiTagMatcher_cacheTags __pyx_t_4;
+  int __pyx_t_4;
+  struct __pyx_opt_args_4lxml_5etree_16_MultiTagMatcher_cacheTags __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -110828,7 +111653,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startDocument(struct __pyx_o
  *         return 0
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_self->_matcher) != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":126
  *         self._doc = _documentFactory(c_doc, None)
@@ -110839,9 +111665,9 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startDocument(struct __pyx_o
  */
     __pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_4.__pyx_n = 1;
-    __pyx_t_4.force_into_dict = 1;
-    __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), &__pyx_t_4); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5.__pyx_n = 1;
+    __pyx_t_5.force_into_dict = 1;
+    __pyx_t_4 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), &__pyx_t_5); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     goto __pyx_L3;
   }
@@ -110886,8 +111712,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
   int __pyx_t_3;
   int __pyx_t_4;
   int __pyx_t_5;
-  int __pyx_t_6;
-  PyObject *__pyx_t_7 = NULL;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -110909,7 +111734,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  *             ns_count = _appendStartNsEvents(c_node, self._events)
  *         elif self._event_filter & ITERPARSE_FILTER_END_NS:
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":133
@@ -110933,7 +111758,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  *             ns_count = _countNsDefs(c_node)
  *         if self._event_filter & ITERPARSE_FILTER_END_NS:
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":135
@@ -110955,7 +111780,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  *             self._ns_stack.append(ns_count)
  *         if self._root is None:
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":137
@@ -110984,7 +111809,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  *             self._root = self._doc.getroot()
  *         if self._matcher is None or self._matcher.matches(c_node):
  */
-  __pyx_t_4 = (((PyObject *)__pyx_v_self->_root) == Py_None);
+  __pyx_t_1 = (((PyObject *)__pyx_v_self->_root) == Py_None);
+  __pyx_t_4 = (__pyx_t_1 != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":139
@@ -111014,13 +111840,13 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  *             if self._event_filter & ITERPARSE_FILTER_END:
  */
   __pyx_t_4 = (((PyObject *)__pyx_v_self->_matcher) == Py_None);
-  if (!__pyx_t_4) {
-    __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node);
-    __pyx_t_6 = __pyx_t_5;
+  if (!(__pyx_t_4 != 0)) {
+    __pyx_t_1 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node) != 0);
+    __pyx_t_5 = __pyx_t_1;
   } else {
-    __pyx_t_6 = __pyx_t_4;
+    __pyx_t_5 = (__pyx_t_4 != 0);
   }
-  if (__pyx_t_6) {
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":141
  *             self._root = self._doc.getroot()
@@ -111031,11 +111857,11 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  */
     __pyx_t_2 = ((PyObject *)__pyx_v_self->_doc);
     __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_7);
+    __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_v_node = ((struct LxmlElement *)__pyx_t_7);
-    __pyx_t_7 = 0;
+    __pyx_v_node = ((struct LxmlElement *)__pyx_t_6);
+    __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":142
  *         if self._matcher is None or self._matcher.matches(c_node):
@@ -111044,8 +111870,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  *                 self._node_stack.append(node)
  *             if self._event_filter & ITERPARSE_FILTER_START:
  */
-    __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END);
-    if (__pyx_t_1) {
+    __pyx_t_5 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":143
  *             node = _elementFactory(self._doc, c_node)
@@ -111070,8 +111896,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
  *                 self._events.append( (u"start", node) )
  *         return 0
  */
-    __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START);
-    if (__pyx_t_1) {
+    __pyx_t_5 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":145
  *                 self._node_stack.append(node)
@@ -111084,16 +111910,16 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
         {__pyx_filename = __pyx_f[14]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 145; __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[14]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_INCREF(((PyObject *)__pyx_n_u__start));
-      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_u__start));
+      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_n_u__start));
       __Pyx_GIVEREF(((PyObject *)__pyx_n_u__start));
       __Pyx_INCREF(((PyObject *)__pyx_v_node));
-      PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_node));
+      PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_node));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_node));
-      __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;
+      __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_6)); 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_6)); __pyx_t_6 = 0;
       goto __pyx_L8;
     }
     __pyx_L8:;
@@ -111115,7 +111941,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_startNode(struct __pyx_obj_4
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._IterparseContext.startNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -111142,9 +111968,9 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
   int __pyx_t_1;
   int __pyx_t_2;
   int __pyx_t_3;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_6;
   int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -111158,7 +111984,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *             if self._matcher is None or self._matcher.matches(c_node):
  *                 if self._event_filter & (ITERPARSE_FILTER_START |
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":152
@@ -111168,14 +111994,14 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                 if self._event_filter & (ITERPARSE_FILTER_START |
  *                                          ITERPARSE_FILTER_START_NS |
  */
-    __pyx_t_2 = (((PyObject *)__pyx_v_self->_matcher) == Py_None);
-    if (!__pyx_t_2) {
-      __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node);
-      __pyx_t_4 = __pyx_t_3;
+    __pyx_t_1 = (((PyObject *)__pyx_v_self->_matcher) == Py_None);
+    if (!(__pyx_t_1 != 0)) {
+      __pyx_t_2 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node) != 0);
+      __pyx_t_3 = __pyx_t_2;
     } else {
-      __pyx_t_4 = __pyx_t_2;
+      __pyx_t_3 = (__pyx_t_1 != 0);
     }
-    if (__pyx_t_4) {
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":155
  *                 if self._event_filter & (ITERPARSE_FILTER_START |
@@ -111184,8 +112010,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                     node = self._node_stack.pop()
  *                 else:
  */
-      __pyx_t_1 = (__pyx_v_self->_event_filter & ((__pyx_e_4lxml_5etree_ITERPARSE_FILTER_START | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS) | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS));
-      if (__pyx_t_1) {
+      __pyx_t_3 = ((__pyx_v_self->_event_filter & ((__pyx_e_4lxml_5etree_ITERPARSE_FILTER_START | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS) | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS)) != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":156
  *                                          ITERPARSE_FILTER_START_NS |
@@ -111194,10 +112020,10 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                 else:
  *                     if self._root is None:
  */
-        __pyx_t_5 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->_node_stack)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_5);
-        __pyx_v_node = __pyx_t_5;
-        __pyx_t_5 = 0;
+        __pyx_t_4 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->_node_stack)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_v_node = __pyx_t_4;
+        __pyx_t_4 = 0;
         goto __pyx_L5;
       }
       /*else*/ {
@@ -111209,8 +112035,9 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                         self._root = self._doc.getroot()
  *                     node = _elementFactory(self._doc, c_node)
  */
-        __pyx_t_4 = (((PyObject *)__pyx_v_self->_root) == Py_None);
-        if (__pyx_t_4) {
+        __pyx_t_3 = (((PyObject *)__pyx_v_self->_root) == Py_None);
+        __pyx_t_1 = (__pyx_t_3 != 0);
+        if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":159
  *                 else:
@@ -111219,14 +112046,14 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                     node = _elementFactory(self._doc, c_node)
  *                 self._events.append( (u"end", node) )
  */
-          __pyx_t_5 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_doc); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 159; __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_5etree__Element))))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GIVEREF(__pyx_t_5);
+          __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 159; __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[14]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GIVEREF(__pyx_t_4);
           __Pyx_GOTREF(__pyx_v_self->_root);
           __Pyx_DECREF(((PyObject *)__pyx_v_self->_root));
-          __pyx_v_self->_root = ((struct LxmlElement *)__pyx_t_5);
-          __pyx_t_5 = 0;
+          __pyx_v_self->_root = ((struct LxmlElement *)__pyx_t_4);
+          __pyx_t_4 = 0;
           goto __pyx_L6;
         }
         __pyx_L6:;
@@ -111238,13 +112065,13 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                 self._events.append( (u"end", node) )
  * 
  */
-        __pyx_t_5 = ((PyObject *)__pyx_v_self->_doc);
-        __Pyx_INCREF(__pyx_t_5);
-        __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_6);
-        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __pyx_v_node = __pyx_t_6;
-        __pyx_t_6 = 0;
+        __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
+        __Pyx_INCREF(__pyx_t_4);
+        __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
+        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        __pyx_v_node = __pyx_t_5;
+        __pyx_t_5 = 0;
       }
       __pyx_L5:;
 
@@ -111259,16 +112086,16 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
         {__pyx_filename = __pyx_f[14]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(((PyObject *)__pyx_n_u__end));
-      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_n_u__end));
+      PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_n_u__end));
       __Pyx_GIVEREF(((PyObject *)__pyx_n_u__end));
       __Pyx_INCREF(__pyx_v_node);
-      PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_node);
+      PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_node);
       __Pyx_GIVEREF(__pyx_v_node);
-      __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;
+      __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 = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -111283,7 +112110,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *             ns_count = self._ns_stack.pop()
  *             if ns_count > 0:
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":164
@@ -111293,11 +112120,11 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *             if ns_count > 0:
  *                 event = (u"end-ns", None)
  */
-    __pyx_t_6 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->_ns_stack)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_t_6); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_v_ns_count = __pyx_t_1;
+    __pyx_t_5 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->_ns_stack)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_5); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __pyx_v_ns_count = __pyx_t_7;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":165
  *         if self._event_filter & ITERPARSE_FILTER_END_NS:
@@ -111306,8 +112133,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                 event = (u"end-ns", None)
  *                 for i from 0 <= i < ns_count:
  */
-    __pyx_t_4 = (__pyx_v_ns_count > 0);
-    if (__pyx_t_4) {
+    __pyx_t_1 = ((__pyx_v_ns_count > 0) != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":166
  *             ns_count = self._ns_stack.pop()
@@ -111316,8 +112143,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                 for i from 0 <= i < ns_count:
  *                     self._events.append(event)
  */
-      __Pyx_INCREF(((PyObject *)__pyx_k_tuple_278));
-      __pyx_v_event = __pyx_k_tuple_278;
+      __Pyx_INCREF(((PyObject *)__pyx_k_tuple_279));
+      __pyx_v_event = __pyx_k_tuple_279;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":167
  *             if ns_count > 0:
@@ -111326,8 +112153,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                     self._events.append(event)
  *         return 0
  */
-      __pyx_t_1 = __pyx_v_ns_count;
-      for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) {
+      __pyx_t_7 = __pyx_v_ns_count;
+      for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_7; __pyx_v_i++) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":168
  *                 event = (u"end-ns", None)
@@ -111340,7 +112167,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
           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 = __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;}
+        __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_v_event)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       goto __pyx_L8;
     }
@@ -111362,8 +112189,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
-  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._IterparseContext.endNode", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -111387,8 +112214,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   int __pyx_t_6;
@@ -111405,7 +112232,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
  *             if root is not None and root._c_node.type == tree.XML_ELEMENT_NODE:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_root) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":174
  *         cdef _Element root
@@ -111414,11 +112242,11 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
  *             if root is not None and root._c_node.type == tree.XML_ELEMENT_NODE:
  *                 self._root = root
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_doc); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    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 = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_root = ((struct LxmlElement *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 174; __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[14]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_root = ((struct LxmlElement *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":175
  *         if self._root is None:
@@ -111427,12 +112255,12 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
  *                 self._root = root
  *         node = _elementFactory(self._doc, c_node)
  */
-    __pyx_t_1 = (((PyObject *)__pyx_v_root) != Py_None);
-    if (__pyx_t_1) {
-      __pyx_t_3 = (__pyx_v_root->_c_node->type == XML_ELEMENT_NODE);
-      __pyx_t_4 = __pyx_t_3;
-    } else {
+    __pyx_t_2 = (((PyObject *)__pyx_v_root) != Py_None);
+    if ((__pyx_t_2 != 0)) {
+      __pyx_t_1 = ((__pyx_v_root->_c_node->type == XML_ELEMENT_NODE) != 0);
       __pyx_t_4 = __pyx_t_1;
+    } else {
+      __pyx_t_4 = (__pyx_t_2 != 0);
     }
     if (__pyx_t_4) {
 
@@ -111462,11 +112290,11 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
  *         self._events.append( (event, node) )
  *         return 0
  */
-  __pyx_t_2 = ((PyObject *)__pyx_v_self->_doc);
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_v_self->_doc);
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_v_node = ((struct LxmlElement *)__pyx_t_5);
   __pyx_t_5 = 0;
 
@@ -111505,7 +112333,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._IterparseContext.pushEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
@@ -111538,10 +112366,10 @@ static void __pyx_f_4lxml_5etree_17_IterparseContext__assureDocGetsFreed(struct
  *             tree.xmlFreeDoc(self._c_ctxt.myDoc)
  *             self._c_ctxt.myDoc = NULL
  */
-  __pyx_t_1 = (__pyx_v_self->__pyx_base._c_ctxt->myDoc != NULL);
+  __pyx_t_1 = ((__pyx_v_self->__pyx_base._c_ctxt->myDoc != NULL) != 0);
   if (__pyx_t_1) {
     __pyx_t_2 = (((PyObject *)__pyx_v_self->_doc) == Py_None);
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
@@ -111644,7 +112472,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartDocument(struct __py
  *             context._c_ctxt.errNo = xmlerror.XML_ERR_INTERNAL_ERROR
  *         context._c_ctxt.disableSAX = 1
  */
-      __pyx_t_8 = (__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK);
+      __pyx_t_8 = ((__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK) != 0);
       if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":193
@@ -111719,10 +112547,10 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartEvent(struct __pyx_o
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  int __pyx_t_8;
+  PyObject *__pyx_t_8 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -111749,7 +112577,8 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartEvent(struct __pyx_o
  *             _fixHtmlDictNodeNames(context._c_ctxt.dict, c_node)
  *         context.startNode(c_node)
  */
-      if (__pyx_v_context->__pyx_base._c_ctxt->html) {
+      __pyx_t_4 = (__pyx_v_context->__pyx_base._c_ctxt->html != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":201
  *     try:
@@ -111770,7 +112599,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartEvent(struct __pyx_o
  *     except:
  *         if context._c_ctxt.errNo == xmlerror.XML_ERR_OK:
  */
-      __pyx_t_4 = __pyx_f_4lxml_5etree_17_IterparseContext_startNode(__pyx_v_context, __pyx_v_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_17_IterparseContext_startNode(__pyx_v_context, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     }
     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -111787,10 +112616,10 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartEvent(struct __pyx_o
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._pushSaxStartEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
+      __Pyx_GOTREF(__pyx_t_8);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":204
  *         context.startNode(c_node)
@@ -111799,8 +112628,8 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartEvent(struct __pyx_o
  *             context._c_ctxt.errNo = xmlerror.XML_ERR_INTERNAL_ERROR
  *         context._c_ctxt.disableSAX = 1
  */
-      __pyx_t_8 = (__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK);
-      if (__pyx_t_8) {
+      __pyx_t_4 = ((__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK) != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":205
  *     except:
@@ -111831,9 +112660,9 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartEvent(struct __pyx_o
  * cdef inline void _pushSaxEndEvent(_IterparseContext context,
  */
       ((struct __pyx_vtabstruct_4lxml_5etree__IterparseContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.__pyx_base._store_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_context));
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L4_exception_handled;
     }
     __pyx_L5_except_error:;
@@ -111852,9 +112681,9 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxStartEvent(struct __pyx_o
 
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_WriteUnraisable("lxml.etree._pushSaxStartEvent", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_L0:;
   __Pyx_RefNannyFinishContext();
@@ -111933,7 +112762,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxEndEvent(struct __pyx_obj
  *             context._c_ctxt.errNo = xmlerror.XML_ERR_INTERNAL_ERROR
  *         context._c_ctxt.disableSAX = 1
  */
-      __pyx_t_8 = (__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK);
+      __pyx_t_8 = ((__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK) != 0);
       if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":215
@@ -112067,7 +112896,7 @@ static CYTHON_INLINE void __pyx_f_4lxml_5etree__pushSaxEvent(struct __pyx_obj_4l
  *             context._c_ctxt.errNo = xmlerror.XML_ERR_INTERNAL_ERROR
  *         context._c_ctxt.disableSAX = 1
  */
-      __pyx_t_8 = (__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK);
+      __pyx_t_8 = ((__pyx_v_context->__pyx_base._c_ctxt->errNo == XML_ERR_OK) != 0);
       if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":225
@@ -112182,7 +113011,7 @@ static void __pyx_f_4lxml_5etree__iterparseSaxStartDocument(void *__pyx_v_ctxt)
  */
   if ((__pyx_v_c_ctxt->myDoc != 0)) {
     if ((__pyx_v_c_ctxt->dict != 0)) {
-      __pyx_t_1 = (!(__pyx_v_c_ctxt->myDoc->dict != 0));
+      __pyx_t_1 = ((!(__pyx_v_c_ctxt->myDoc->dict != 0)) != 0);
       __pyx_t_2 = __pyx_t_1;
     } else {
       __pyx_t_2 = (__pyx_v_c_ctxt->dict != 0);
@@ -112508,7 +113337,7 @@ static void __pyx_f_4lxml_5etree__iterparseSaxComment(void *__pyx_v_ctxt, const
  *         _pushSaxEvent(context, u"comment", c_node)
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_node != NULL);
+  __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":288
@@ -112587,7 +113416,7 @@ static void __pyx_f_4lxml_5etree__iterparseSaxPI(void *__pyx_v_ctxt, const xmlCh
  *         _pushSaxEvent(context, u"pi", c_node)
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_node != NULL);
+  __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":299
@@ -112627,7 +113456,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__iterparseFindLastNode(xmlPar
  *         return c_ctxt.myDoc.intSubset.last
  *     elif c_ctxt.inSubset == 2:
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->inSubset == 1);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->inSubset == 1) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":304
@@ -112649,7 +113478,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__iterparseFindLastNode(xmlPar
  *         return c_ctxt.myDoc.extSubset.last
  *     elif c_ctxt.node is NULL:
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->inSubset == 2);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->inSubset == 2) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":306
@@ -112671,7 +113500,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__iterparseFindLastNode(xmlPar
  *         return c_ctxt.myDoc.last
  *     elif c_ctxt.node.type == tree.XML_ELEMENT_NODE:
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":308
@@ -112693,7 +113522,7 @@ static CYTHON_INLINE xmlNode *__pyx_f_4lxml_5etree__iterparseFindLastNode(xmlPar
  *         return c_ctxt.node.last
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":310
@@ -112764,18 +113593,18 @@ static int __pyx_pw_4lxml_5etree_9iterparse_1__init__(PyObject *__pyx_v_self, Py
  *                  attribute_defaults=False, dtd_validation=False,
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
  */
-    values[1] = ((PyObject *)__pyx_k_tuple_279);
+    values[1] = ((PyObject *)__pyx_k_tuple_280);
     values[2] = ((PyObject *)Py_None);
-    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;
+    values[3] = __pyx_k_281;
+    values[4] = __pyx_k_282;
+    values[5] = __pyx_k_283;
+    values[6] = __pyx_k_284;
+    values[7] = __pyx_k_285;
+    values[8] = __pyx_k_286;
+    values[9] = __pyx_k_287;
+    values[10] = __pyx_k_288;
+    values[11] = __pyx_k_289;
+    values[12] = __pyx_k_290;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":372
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
@@ -112785,8 +113614,8 @@ static int __pyx_pw_4lxml_5etree_9iterparse_1__init__(PyObject *__pyx_v_self, Py
  *         cdef _IterparseContext context
  */
     values[13] = ((PyObject *)Py_None);
-    values[14] = __pyx_k_290;
-    values[15] = __pyx_k_291;
+    values[14] = __pyx_k_291;
+    values[15] = __pyx_k_292;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":373
  *                  compact=True, resolve_entities=True, remove_comments=False,
@@ -112910,7 +113739,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *             if not python.IS_PYTHON3:
  */
   __pyx_t_1 = PyObject_HasAttr(__pyx_v_source, ((PyObject *)__pyx_n_s__read)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_1);
+  __pyx_t_2 = ((!(__pyx_t_1 != 0)) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":378
@@ -112932,7 +113761,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *                 source = filename
  *             source = open(source, 'rb')
  */
-    __pyx_t_2 = (!IS_PYTHON3);
+    __pyx_t_2 = ((!(IS_PYTHON3 != 0)) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":380
@@ -113102,11 +113931,11 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  * 
  *         self._events = events
  */
-      __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_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_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_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_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_277), 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;
@@ -113291,7 +114120,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *         if not compact:
  */
   __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_no_network); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_8);
+  __pyx_t_2 = ((!__pyx_t_8) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":410
@@ -113314,7 +114143,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *         if not resolve_entities:
  */
   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compact); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_8 = (!__pyx_t_2);
+  __pyx_t_8 = ((!__pyx_t_2) != 0);
   if (__pyx_t_8) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":412
@@ -113337,7 +114166,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *         if not strip_cdata:
  */
   __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_v_resolve_entities); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_8);
+  __pyx_t_2 = ((!__pyx_t_8) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":414
@@ -113360,7 +114189,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  * 
  */
   __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_strip_cdata); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_8 = (!__pyx_t_2);
+  __pyx_t_8 = ((!__pyx_t_2) != 0);
   if (__pyx_t_8) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":416
@@ -113439,7 +114268,8 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *             self._parse_chunk = htmlparser.htmlParseChunk
  *         else:
  */
-  if (__pyx_v_self->__pyx_base._for_html) {
+  __pyx_t_8 = (__pyx_v_self->__pyx_base._for_html != 0);
+  if (__pyx_t_8) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":423
  * 
@@ -113496,7 +114326,8 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *                 error = _htmlCtxtResetPush(
  */
   __pyx_t_8 = (__pyx_v_self->__pyx_base._default_encoding != Py_None);
-  if (__pyx_t_8) {
+  __pyx_t_2 = (__pyx_t_8 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":431
  * 
@@ -113505,7 +114336,8 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *                 error = _htmlCtxtResetPush(
  *                     context._c_ctxt, NULL, 0,
  */
-    if (__pyx_v_self->__pyx_base._for_html) {
+    __pyx_t_2 = (__pyx_v_self->__pyx_base._for_html != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":434
  *                 error = _htmlCtxtResetPush(
@@ -113755,11 +114587,11 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__close_source(struct __pyx_obj_
  *         try:
  */
   __pyx_t_1 = (__pyx_v_self->_source == Py_None);
-  if (!__pyx_t_1) {
-    __pyx_t_2 = (!__pyx_v_self->_close_source_after_read);
+  if (!(__pyx_t_1 != 0)) {
+    __pyx_t_2 = ((!(__pyx_v_self->_close_source_after_read != 0)) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -113904,7 +114736,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__close_source(struct __pyx_obj_
  * 
  */
   __pyx_t_3 = (__pyx_v_close != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":469
  *             self._source = None
@@ -113969,7 +114802,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9iterparse_2copy(CYTHON_UNUSED struct __p
  * 
  *     def __iter__(self):
  */
-  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_292), 0, 0);
+  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_293), 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);
@@ -114094,7 +114927,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9iterparse_6__next__(struct __pyx_obj_4lx
     {__pyx_filename = __pyx_f[14]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_2 = PyList_GET_SIZE(((PyObject *)__pyx_v_events)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = (__pyx_t_2 <= __pyx_v_context->_event_index);
+  __pyx_t_3 = ((__pyx_t_2 <= __pyx_v_context->_event_index) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":481
@@ -114128,7 +114961,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9iterparse_6__next__(struct __pyx_obj_4lx
  *             if not events:
  */
     __pyx_t_3 = (__pyx_v_self->_source != Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_4 = (__pyx_t_3 != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":484
  *             context._event_index = 0
@@ -114151,9 +114985,9 @@ static PyObject *__pyx_pf_4lxml_5etree_9iterparse_6__next__(struct __pyx_obj_4lx
  *                 self.root = context._root
  *                 raise StopIteration
  */
-    __pyx_t_3 = (((PyObject *)__pyx_v_events) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_events)) != 0);
-    __pyx_t_4 = (!__pyx_t_3);
-    if (__pyx_t_4) {
+    __pyx_t_4 = (((PyObject *)__pyx_v_events) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_events)) != 0);
+    __pyx_t_3 = ((!__pyx_t_4) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":486
  *                 self._read_more_events(context)
@@ -114322,7 +115156,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  */
   while (1) {
     __pyx_t_3 = (((PyObject *)__pyx_v_events) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_events)) != 0);
-    __pyx_t_4 = (!__pyx_t_3);
+    __pyx_t_4 = ((!__pyx_t_3) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":502
@@ -114332,7 +115166,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                 data = self._source.read(__ITERPARSE_CHUNK_SIZE)
  *                 if not isinstance(data, bytes):
  */
-    __pyx_t_4 = (__pyx_v_c_stream == NULL);
+    __pyx_t_4 = ((__pyx_v_c_stream == NULL) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":503
@@ -114344,7 +115178,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  */
       __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_293), 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_294), 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);
@@ -114359,7 +115193,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                     raise TypeError("reading file objects must return bytes objects")
  */
       __pyx_t_4 = PyBytes_Check(__pyx_v_data); 
-      __pyx_t_3 = (!__pyx_t_4);
+      __pyx_t_3 = ((!(__pyx_t_4 != 0)) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":505
@@ -114380,7 +115214,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                 c_data_len = python.PyBytes_GET_SIZE(data)
  *                 c_data = _cstr(data)
  */
-        __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_t_5 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_296), 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;
@@ -114436,7 +115270,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                         NULL, __ITERPARSE_CHUNK_SIZE)
  */
       __pyx_t_3 = (__pyx_v_self->_buffer == Py_None);
-      if (__pyx_t_3) {
+      __pyx_t_4 = (__pyx_t_3 != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":514
  *                 if self._buffer is None:
@@ -114506,8 +115341,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                         if stdio.ferror(c_stream):
  *                             error = 1
  */
-            __pyx_t_3 = (__pyx_v_c_data_len < 32768);
-            if (__pyx_t_3) {
+            __pyx_t_4 = ((__pyx_v_c_data_len < 32768) != 0);
+            if (__pyx_t_4) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":520
  *                         c_data, 1, __ITERPARSE_CHUNK_SIZE, c_stream)
@@ -114516,8 +115351,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                             error = 1
  *                         elif stdio.feof(c_stream):
  */
-              __pyx_t_6 = ferror(__pyx_v_c_stream);
-              if (__pyx_t_6) {
+              __pyx_t_4 = (ferror(__pyx_v_c_stream) != 0);
+              if (__pyx_t_4) {
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":521
  *                     if c_data_len < __ITERPARSE_CHUNK_SIZE:
@@ -114537,8 +115372,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                             done = 1
  *                 if not error:
  */
-              __pyx_t_6 = feof(__pyx_v_c_stream);
-              if (__pyx_t_6) {
+              __pyx_t_4 = (feof(__pyx_v_c_stream) != 0);
+              if (__pyx_t_4) {
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":523
  *                             error = 1
@@ -114577,8 +115412,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                     error = self._parse_chunk(
  *                         pctxt, c_data, c_data_len, done)
  */
-      __pyx_t_3 = (!__pyx_v_error);
-      if (__pyx_t_3) {
+      __pyx_t_4 = ((!(__pyx_v_error != 0)) != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":526
  *                 if not error:
@@ -114601,12 +115436,12 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                 self._close_source()
  *                 self._buffer = None
  */
-    if (!__pyx_v_error) {
-      __pyx_t_3 = __pyx_v_done;
+    if (!(__pyx_v_error != 0)) {
+      __pyx_t_4 = (__pyx_v_done != 0);
     } else {
-      __pyx_t_3 = __pyx_v_error;
+      __pyx_t_4 = (__pyx_v_error != 0);
     }
-    if (__pyx_t_3) {
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":528
  *                         pctxt, c_data, c_data_len, done)
@@ -114653,14 +115488,14 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *             error = not context._validator.isvalid()
  *         if error:
  */
-  __pyx_t_3 = (!__pyx_v_error);
-  if (__pyx_t_3) {
-    __pyx_t_4 = (((PyObject *)__pyx_v_context->__pyx_base._validator) != Py_None);
-    __pyx_t_7 = __pyx_t_4;
+  __pyx_t_4 = ((!(__pyx_v_error != 0)) != 0);
+  if (__pyx_t_4) {
+    __pyx_t_3 = (((PyObject *)__pyx_v_context->__pyx_base._validator) != Py_None);
+    __pyx_t_6 = (__pyx_t_3 != 0);
   } else {
-    __pyx_t_7 = __pyx_t_3;
+    __pyx_t_6 = __pyx_t_4;
   }
-  if (__pyx_t_7) {
+  if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":533
  * 
@@ -114669,7 +115504,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *         if error:
  *             del events[:]
  */
-    __pyx_v_error = (!__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid(__pyx_v_context->__pyx_base._validator));
+    __pyx_v_error = (!(__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid(__pyx_v_context->__pyx_base._validator) != 0));
     goto __pyx_L17;
   }
   __pyx_L17:;
@@ -114681,7 +115516,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *             del events[:]
  *             context._assureDocGetsFreed()
  */
-  if (__pyx_v_error) {
+  __pyx_t_6 = (__pyx_v_error != 0);
+  if (__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":535
  *             error = not context._validator.isvalid()
@@ -114717,7 +115553,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
     __Pyx_INCREF(__pyx_t_5);
     __pyx_t_2 = ((PyObject *)__pyx_v_context->__pyx_base._error_log);
     __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_6 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_pctxt, __pyx_t_5, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_2)); if (unlikely(__pyx_t_6 == 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree__raiseParseError(__pyx_v_pctxt, __pyx_t_5, ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_2)); if (unlikely(__pyx_t_7 == 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L18;
@@ -114797,7 +115633,7 @@ static int __pyx_pw_4lxml_5etree_8iterwalk_1__init__(PyObject *__pyx_v_self, PyO
  *         cdef _Element root
  *         cdef int ns_count
  */
-    values[1] = ((PyObject *)__pyx_k_tuple_296);
+    values[1] = ((PyObject *)__pyx_k_tuple_297);
     values[2] = ((PyObject *)Py_None);
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
@@ -115002,7 +115838,8 @@ static int __pyx_pf_4lxml_5etree_8iterwalk___init__(struct __pyx_obj_4lxml_5etre
  *             self._index = 0
  *             ns_count = self._start_node(root)
  */
-  if (__pyx_v_self->_event_filter) {
+  __pyx_t_5 = (__pyx_v_self->_event_filter != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":567
  * 
@@ -115181,7 +116018,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *             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_297), 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_298), 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;
@@ -115198,11 +116035,11 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *             self._matcher.cacheTags(node._doc)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_matcher) != Py_None);
-  if (__pyx_t_1) {
-    __pyx_t_3 = (__pyx_v_self->_index >= 0);
+  if ((__pyx_t_1 != 0)) {
+    __pyx_t_3 = ((__pyx_v_self->_index >= 0) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
-    __pyx_t_4 = __pyx_t_1;
+    __pyx_t_4 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_4) {
 
@@ -115249,7 +116086,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  * 
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_self->_index >= 0);
+    __pyx_t_4 = ((__pyx_v_self->_index >= 0) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":589
@@ -115289,7 +116126,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *                 # try children
  *                 next_node = _elementFactory(node._doc, c_child)
  */
-    __pyx_t_4 = (__pyx_v_c_child != NULL);
+    __pyx_t_4 = ((__pyx_v_c_child != NULL) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":594
@@ -115331,7 +116168,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  */
       while (1) {
         __pyx_t_4 = (((PyObject *)__pyx_v_next_node) == Py_None);
-        if (!__pyx_t_4) break;
+        __pyx_t_1 = (__pyx_t_4 != 0);
+        if (!__pyx_t_1) break;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":600
  *                 while next_node is None:
@@ -115362,8 +116200,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *                         break
  *                     next_node = node.getnext()
  */
-        __pyx_t_4 = (__pyx_v_self->_index < 0);
-        if (__pyx_t_4) {
+        __pyx_t_1 = ((__pyx_v_self->_index < 0) != 0);
+        if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":603
  *                     node = self._end_node()
@@ -115405,7 +116243,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *                 if self._event_filter & (ITERPARSE_FILTER_START |
  *                                          ITERPARSE_FILTER_START_NS):
  */
-    __pyx_t_4 = (((PyObject *)__pyx_v_next_node) != Py_None);
+    __pyx_t_1 = (((PyObject *)__pyx_v_next_node) != Py_None);
+    __pyx_t_4 = (__pyx_t_1 != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":607
@@ -115415,8 +116254,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *                     ns_count = self._start_node(next_node)
  *                 elif self._event_filter & ITERPARSE_FILTER_END_NS:
  */
-      __pyx_t_6 = (__pyx_v_self->_event_filter & (__pyx_e_4lxml_5etree_ITERPARSE_FILTER_START | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS));
-      if (__pyx_t_6) {
+      __pyx_t_4 = ((__pyx_v_self->_event_filter & (__pyx_e_4lxml_5etree_ITERPARSE_FILTER_START | __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS)) != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":608
  *                 if self._event_filter & (ITERPARSE_FILTER_START |
@@ -115436,8 +116275,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *                     ns_count = _countNsDefs(next_node._c_node)
  *                 self._node_stack.append( (next_node, ns_count) )
  */
-      __pyx_t_6 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS);
-      if (__pyx_t_6) {
+      __pyx_t_4 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS) != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":610
  *                     ns_count = self._start_node(next_node)
@@ -115505,7 +116344,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  * 
  */
       __Pyx_XDECREF(__pyx_r);
-      __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_t_5 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_299), 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;
@@ -115557,7 +116396,6 @@ static int __pyx_f_4lxml_5etree_8iterwalk__start_node(struct __pyx_obj_4lxml_5et
   int __pyx_t_3;
   int __pyx_t_4;
   int __pyx_t_5;
-  int __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -115570,7 +116408,7 @@ static int __pyx_f_4lxml_5etree_8iterwalk__start_node(struct __pyx_obj_4lxml_5et
  *             ns_count = _appendStartNsEvents(node._c_node, self._events)
  *         elif self._event_filter & ITERPARSE_FILTER_END_NS:
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START_NS) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":620
@@ -115594,7 +116432,7 @@ static int __pyx_f_4lxml_5etree_8iterwalk__start_node(struct __pyx_obj_4lxml_5et
  *             ns_count = _countNsDefs(node._c_node)
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":622
@@ -115627,7 +116465,7 @@ static int __pyx_f_4lxml_5etree_8iterwalk__start_node(struct __pyx_obj_4lxml_5et
  *             if self._matcher is None or self._matcher.matches(node._c_node):
  *                 self._events.append( (u"start", node) )
  */
-  __pyx_t_1 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START);
+  __pyx_t_1 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_START) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":626
@@ -115637,14 +116475,14 @@ static int __pyx_f_4lxml_5etree_8iterwalk__start_node(struct __pyx_obj_4lxml_5et
  *                 self._events.append( (u"start", node) )
  *         return ns_count
  */
-    __pyx_t_3 = (((PyObject *)__pyx_v_self->_matcher) == Py_None);
-    if (!__pyx_t_3) {
-      __pyx_t_4 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_node->_c_node);
-      __pyx_t_5 = __pyx_t_4;
+    __pyx_t_1 = (((PyObject *)__pyx_v_self->_matcher) == Py_None);
+    if (!(__pyx_t_1 != 0)) {
+      __pyx_t_3 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_node->_c_node) != 0);
+      __pyx_t_4 = __pyx_t_3;
     } else {
-      __pyx_t_5 = __pyx_t_3;
+      __pyx_t_4 = (__pyx_t_1 != 0);
     }
-    if (__pyx_t_5) {
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":627
  *         if self._event_filter & ITERPARSE_FILTER_START:
@@ -115665,7 +116503,7 @@ static int __pyx_f_4lxml_5etree_8iterwalk__start_node(struct __pyx_obj_4lxml_5et
       __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 = __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_t_5 = __Pyx_PyList_Append(__pyx_v_self->_events, ((PyObject *)__pyx_t_2)); if (unlikely(__pyx_t_5 == -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;
     }
@@ -115799,8 +116637,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree_8iterwalk__end_node(struct __pyx
  *             if self._matcher is None or self._matcher.matches(node._c_node):
  *                 self._events.append( (u"end", node) )
  */
-  __pyx_t_6 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END);
-  if (__pyx_t_6) {
+  __pyx_t_7 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END) != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":635
  *         node, ns_count = self._node_stack.pop()
@@ -115810,11 +116648,11 @@ static struct LxmlElement *__pyx_f_4lxml_5etree_8iterwalk__end_node(struct __pyx
  *         if self._event_filter & ITERPARSE_FILTER_END_NS:
  */
     __pyx_t_7 = (((PyObject *)__pyx_v_self->_matcher) == Py_None);
-    if (!__pyx_t_7) {
-      __pyx_t_8 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_node->_c_node);
+    if (!(__pyx_t_7 != 0)) {
+      __pyx_t_8 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_node->_c_node) != 0);
       __pyx_t_9 = __pyx_t_8;
     } else {
-      __pyx_t_9 = __pyx_t_7;
+      __pyx_t_9 = (__pyx_t_7 != 0);
     }
     if (__pyx_t_9) {
 
@@ -115853,8 +116691,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree_8iterwalk__end_node(struct __pyx
  *             event = (u"end-ns", None)
  *             for i from 0 <= i < ns_count:
  */
-  __pyx_t_6 = (__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS);
-  if (__pyx_t_6) {
+  __pyx_t_9 = ((__pyx_v_self->_event_filter & __pyx_e_4lxml_5etree_ITERPARSE_FILTER_END_NS) != 0);
+  if (__pyx_t_9) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":638
  *                 self._events.append( (u"end", node) )
@@ -115863,8 +116701,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree_8iterwalk__end_node(struct __pyx
  *             for i from 0 <= i < ns_count:
  *                 self._events.append(event)
  */
-    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_299));
-    __pyx_v_event = __pyx_k_tuple_299;
+    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_300));
+    __pyx_v_event = __pyx_k_tuple_300;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":639
  *         if self._event_filter & ITERPARSE_FILTER_END_NS:
@@ -116006,12 +116844,13 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  Py_ssize_t __pyx_t_6;
-  PyObject *(*__pyx_t_7)(PyObject *);
+  PyObject *__pyx_t_6 = NULL;
+  Py_ssize_t __pyx_t_7;
+  PyObject *(*__pyx_t_8)(PyObject *);
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -116025,7 +116864,8 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  * 
  */
   __pyx_t_1 = (__pyx_v_4lxml_5etree__find_id_attributes == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":15
  *     global _find_id_attributes
@@ -116034,13 +116874,13 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  * 
  *     # 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_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_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_302), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_XGOTREF(__pyx_v_4lxml_5etree__find_id_attributes);
     __Pyx_DECREF(__pyx_v_4lxml_5etree__find_id_attributes);
-    __Pyx_GIVEREF(__pyx_t_2);
-    __pyx_v_4lxml_5etree__find_id_attributes = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_v_4lxml_5etree__find_id_attributes = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -116052,26 +116892,26 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  *     dic = {}
  *     for elem in _find_id_attributes(root):
  */
-  __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_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XML); 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);
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_text);
-  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_text);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_text);
   __Pyx_GIVEREF(__pyx_v_text);
   __Pyx_INCREF(__pyx_v_parser);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
-  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_5);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __pyx_v_root = __pyx_t_5;
-  __pyx_t_5 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+  __pyx_v_root = __pyx_t_6;
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":19
  *     # ElementTree compatible implementation: parse and look for 'id' attributes
@@ -116080,10 +116920,10 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  *     for elem in _find_id_attributes(root):
  *         dic[elem.get(u'id')] = elem
  */
-  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-  __pyx_v_dic = ((PyObject*)__pyx_t_5);
-  __pyx_t_5 = 0;
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __pyx_v_dic = ((PyObject*)__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":20
  *     root = XML(text, parser, base_url=base_url)
@@ -116092,52 +116932,52 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  *         dic[elem.get(u'id')] = elem
  *     return (root, dic)
  */
-  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __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[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
   __Pyx_INCREF(__pyx_v_root);
-  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_root);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_root);
   __Pyx_GIVEREF(__pyx_v_root);
-  __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree__find_id_attributes, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
-    __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
-    __pyx_t_7 = NULL;
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree__find_id_attributes, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+  if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
+    __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
+    __pyx_t_8 = NULL;
   } else {
-    __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;
+    __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext;
   }
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   for (;;) {
-    if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_5)) {
-      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
+    if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_6)) {
+      if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-    } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_5)) {
-      if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
+    } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_6)) {
+      if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_4 = __pyx_t_7(__pyx_t_5);
-      if (unlikely(!__pyx_t_4)) {
+      __pyx_t_5 = __pyx_t_8(__pyx_t_6);
+      if (unlikely(!__pyx_t_5)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
           else {__pyx_filename = __pyx_f[15]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
-      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_GOTREF(__pyx_t_5);
     }
     __Pyx_XDECREF(__pyx_v_elem);
-    __pyx_v_elem = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __pyx_v_elem = __pyx_t_5;
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":21
  *     dic = {}
@@ -116146,15 +116986,15 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  *     return (root, dic)
  * 
  */
-    __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_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_elem, __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_303), NULL); 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_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_5); __pyx_t_5 = 0;
+    if (PyDict_SetItem(((PyObject *)__pyx_v_dic), __pyx_t_4, __pyx_v_elem) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __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;}
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   }
-  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":22
  *     for elem in _find_id_attributes(root):
@@ -116164,25 +117004,25 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  * def XMLDTDID(text, parser=None, *, base_url=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
   __Pyx_INCREF(__pyx_v_root);
-  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_root);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_root);
   __Pyx_GIVEREF(__pyx_v_root);
   __Pyx_INCREF(((PyObject *)__pyx_v_dic));
-  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_dic));
+  PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_dic));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_dic));
-  __pyx_r = ((PyObject *)__pyx_t_5);
-  __pyx_t_5 = 0;
+  __pyx_r = ((PyObject *)__pyx_t_6);
+  __pyx_t_6 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree.XMLID", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -116324,7 +117164,7 @@ static PyObject *__pyx_pf_4lxml_5etree_48XMLDTDID(CYTHON_UNUSED PyObject *__pyx_
  *         return (root, {})
  *     else:
  */
-  __pyx_t_5 = (__pyx_v_root->_doc->_c_doc->ids == NULL);
+  __pyx_t_5 = ((__pyx_v_root->_doc->_c_doc->ids == NULL) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":40
@@ -116636,7 +117476,7 @@ static int __pyx_pf_4lxml_5etree_7_IDDict___cinit__(struct __pyx_obj_4lxml_5etre
  *             raise ValueError, u"No ID dictionary available."
  *         self._doc = doc
  */
-  __pyx_t_2 = (__pyx_v_doc->_c_doc->ids == NULL);
+  __pyx_t_2 = ((__pyx_v_doc->_c_doc->ids == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":73
@@ -116646,7 +117486,7 @@ static int __pyx_pf_4lxml_5etree_7_IDDict___cinit__(struct __pyx_obj_4lxml_5etre
  *         self._doc = doc
  *         self._keys  = None
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_303), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_304), 0, 0);
     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -116841,7 +117681,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_4__getitem__(struct __pyx_obj_4l
  *             raise KeyError, u"key not found."
  *         c_attr = c_id.attr
  */
-  __pyx_t_3 = (__pyx_v_c_id == NULL);
+  __pyx_t_3 = ((__pyx_v_c_id == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":89
@@ -116851,7 +117691,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_4__getitem__(struct __pyx_obj_4l
  *         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_304), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_305), 0, 0);
     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -116874,9 +117714,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_4__getitem__(struct __pyx_obj_4l
  *             raise KeyError, u"ID attribute not found."
  *         return _elementFactory(self._doc, c_attr.parent)
  */
-  __pyx_t_3 = (__pyx_v_c_attr == NULL);
+  __pyx_t_3 = ((__pyx_v_c_attr == NULL) != 0);
   if (!__pyx_t_3) {
-    __pyx_t_5 = (__pyx_v_c_attr->parent == NULL);
+    __pyx_t_5 = ((__pyx_v_c_attr->parent == NULL) != 0);
     __pyx_t_6 = __pyx_t_5;
   } else {
     __pyx_t_6 = __pyx_t_3;
@@ -116890,7 +117730,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_4__getitem__(struct __pyx_obj_4l
  *         return _elementFactory(self._doc, c_attr.parent)
  * 
  */
-    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_305), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_306), 0, 0);
     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -117198,7 +118038,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_14keys(struct __pyx_obj_4lxml_5e
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -117212,7 +118053,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_14keys(struct __pyx_obj_4lxml_5e
  *         return self._keys[:]
  */
   __pyx_t_1 = (__pyx_v_self->_keys == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":113
  *     def keys(self):
@@ -117221,13 +118063,13 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_14keys(struct __pyx_obj_4lxml_5e
  *         return self._keys[:]
  * 
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_keys(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_keys(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_keys);
     __Pyx_DECREF(__pyx_v_self->_keys);
-    __pyx_v_self->_keys = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_self->_keys = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -117240,16 +118082,16 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_14keys(struct __pyx_obj_4lxml_5e
  *     def __iter__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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;
+  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_keys, 0, 0, NULL, NULL, &__pyx_k_slice_307, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._IDDict.keys", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -117281,8 +118123,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_16__iter__(struct __pyx_obj_4lxm
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -117296,7 +118139,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_16__iter__(struct __pyx_obj_4lxm
  *         return iter(self._keys)
  */
   __pyx_t_1 = (__pyx_v_self->_keys == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":118
  *     def __iter__(self):
@@ -117305,13 +118149,13 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_16__iter__(struct __pyx_obj_4lxm
  *         return iter(self._keys)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_keys(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_keys(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_keys);
     __Pyx_DECREF(__pyx_v_self->_keys);
-    __pyx_v_self->_keys = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_self->_keys = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -117324,20 +118168,20 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_16__iter__(struct __pyx_obj_4lxm
  *     def iterkeys(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_v_self->_keys;
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_t_3 = __pyx_v_self->_keys;
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._IDDict.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -117412,8 +118256,9 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_IDDict_20__len__(struct __pyx_obj_4lxm
   Py_ssize_t __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  Py_ssize_t __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  Py_ssize_t __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -117427,7 +118272,8 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_IDDict_20__len__(struct __pyx_obj_4lxm
  *         return len(self._keys)
  */
   __pyx_t_1 = (__pyx_v_self->_keys == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":126
  *     def __len__(self):
@@ -117436,13 +118282,13 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_IDDict_20__len__(struct __pyx_obj_4lxm
  *         return len(self._keys)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_keys(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_keys(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_keys);
     __Pyx_DECREF(__pyx_v_self->_keys);
-    __pyx_v_self->_keys = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_self->_keys = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -117454,17 +118300,17 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_IDDict_20__len__(struct __pyx_obj_4lxm
  * 
  *     def items(self):
  */
-  __pyx_t_2 = __pyx_v_self->_keys;
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = __pyx_v_self->_keys;
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_r = __pyx_t_4;
   goto __pyx_L0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._IDDict.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -117495,7 +118341,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_22items(struct __pyx_obj_4lxml_5
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -117509,7 +118356,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_22items(struct __pyx_obj_4lxml_5
  *         return self._items[:]
  */
   __pyx_t_1 = (__pyx_v_self->_items == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":131
  *     def items(self):
@@ -117518,13 +118366,13 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_22items(struct __pyx_obj_4lxml_5
  *         return self._items[:]
  * 
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_items(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_items(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_items);
     __Pyx_DECREF(__pyx_v_self->_items);
-    __pyx_v_self->_items = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_self->_items = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -117537,16 +118385,16 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_22items(struct __pyx_obj_4lxml_5
  *     def iteritems(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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;
+  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_items, 0, 0, NULL, NULL, &__pyx_k_slice_308, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._IDDict.items", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -117578,8 +118426,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_24iteritems(struct __pyx_obj_4lx
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -117593,7 +118442,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_24iteritems(struct __pyx_obj_4lx
  *         return iter(self._items)
  */
   __pyx_t_1 = (__pyx_v_self->_items == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":136
  *     def iteritems(self):
@@ -117602,13 +118452,13 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_24iteritems(struct __pyx_obj_4lx
  *         return iter(self._items)
  * 
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_items(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
+    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__IDDict *)__pyx_v_self->__pyx_vtab)->_build_items(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_items);
     __Pyx_DECREF(__pyx_v_self->_items);
-    __pyx_v_self->_items = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_self->_items = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -117621,20 +118471,20 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_24iteritems(struct __pyx_obj_4lx
  *     def values(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_v_self->_items;
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_t_3 = __pyx_v_self->_items;
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._IDDict.iteritems", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -117670,10 +118520,11 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  Py_ssize_t __pyx_t_3;
-  PyObject *(*__pyx_t_4)(PyObject *);
-  PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
+  int __pyx_t_3;
+  Py_ssize_t __pyx_t_4;
+  PyObject *(*__pyx_t_5)(PyObject *);
+  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -117699,7 +118550,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
  *         for item in self._items:
  */
   __pyx_t_2 = (__pyx_v_self->_items == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":142
  *         cdef list values = []
@@ -117727,42 +118579,42 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
  *             python.Py_INCREF(value)
  */
   if (PyList_CheckExact(__pyx_v_self->_items) || PyTuple_CheckExact(__pyx_v_self->_items)) {
-    __pyx_t_1 = __pyx_v_self->_items; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
-    __pyx_t_4 = NULL;
+    __pyx_t_1 = __pyx_v_self->_items; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
+    __pyx_t_5 = NULL;
   } else {
-    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_self->_items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_self->_items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
+    __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;
   }
   for (;;) {
-    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_1)) {
-      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) 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_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_1)) {
-      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) 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_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_5 = __pyx_t_4(__pyx_t_1);
-      if (unlikely(!__pyx_t_5)) {
+      __pyx_t_6 = __pyx_t_5(__pyx_t_1);
+      if (unlikely(!__pyx_t_6)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
           else {__pyx_filename = __pyx_f[15]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
-      __Pyx_GOTREF(__pyx_t_5);
+      __Pyx_GOTREF(__pyx_t_6);
     }
     __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_v_item = __pyx_t_6;
+    __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":144
  *             self._items = self._build_items()
@@ -117771,11 +118623,11 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
  *             python.Py_INCREF(value)
  *             values.append(value)
  */
-    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_v_item, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_6 = PyTuple_GET_ITEM(__pyx_v_item, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
     __Pyx_XDECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_v_value = __pyx_t_6;
+    __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":145
  *         for item in self._items:
@@ -117793,7 +118645,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
  *         return values
  * 
  */
-    __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_t_7 = __Pyx_PyList_Append(__pyx_v_values, __pyx_v_value); if (unlikely(__pyx_t_7 == -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;
 
@@ -117813,7 +118665,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._IDDict.values", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -118079,11 +118931,11 @@ static void __pyx_f_4lxml_5etree__collectIdHashItemList(void *__pyx_v_payload, v
  *         return
  *     lst, doc = <tuple>context
  */
-  __pyx_t_1 = (__pyx_v_c_id == NULL);
+  __pyx_t_1 = ((__pyx_v_c_id == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_id->attr == NULL);
+    __pyx_t_2 = ((__pyx_v_c_id->attr == NULL) != 0);
     if (!__pyx_t_2) {
-      __pyx_t_3 = (__pyx_v_c_id->attr->parent == NULL);
+      __pyx_t_3 = ((__pyx_v_c_id->attr->parent == NULL) != 0);
       __pyx_t_4 = __pyx_t_3;
     } else {
       __pyx_t_4 = __pyx_t_2;
@@ -118253,11 +119105,11 @@ static void __pyx_f_4lxml_5etree__collectIdHashKeys(void *__pyx_v_payload, void
  *         return
  *     (<list>collect_list).append(funicode(name))
  */
-  __pyx_t_1 = (__pyx_v_c_id == NULL);
+  __pyx_t_1 = ((__pyx_v_c_id == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_id->attr == NULL);
+    __pyx_t_2 = ((__pyx_v_c_id->attr == NULL) != 0);
     if (!__pyx_t_2) {
-      __pyx_t_3 = (__pyx_v_c_id->attr->parent == NULL);
+      __pyx_t_3 = ((__pyx_v_c_id->attr->parent == NULL) != 0);
       __pyx_t_4 = __pyx_t_3;
     } else {
       __pyx_t_4 = __pyx_t_2;
@@ -118396,8 +119248,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_9error_log___get__(struct __pyx
  */
   #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_308));
+  if (unlikely(!(__pyx_t_1 != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_309));
     {__pyx_filename = __pyx_f[16]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -118502,8 +119354,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
   int __pyx_t_1;
   int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -118527,8 +119380,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
  */
   #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_309));
+  if (unlikely(!(__pyx_t_2 != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_310));
     {__pyx_filename = __pyx_f[16]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -118576,7 +119429,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
  *                     node._c_node, node._doc._parser._parse_options)
  */
         __pyx_t_2 = (((PyObject *)__pyx_v_node->_doc->_parser) != Py_None);
-        if (__pyx_t_2) {
+        __pyx_t_4 = (__pyx_t_2 != 0);
+        if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":44
  *             if node._doc._parser is not None:
@@ -118641,8 +119495,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
  *             raise XIncludeError(
  *                 self._error_log._buildExceptionMessage(
  */
-  __pyx_t_2 = (__pyx_v_result == -1);
-  if (__pyx_t_2) {
+  __pyx_t_4 = ((__pyx_v_result == -1) != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":51
  * 
@@ -118661,28 +119515,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
  *                     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_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);
+    __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_311)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":54
  *                 self._error_log._buildExceptionMessage(
  *                     u"XInclude processing failed"),
  *                 self._error_log)             # <<<<<<<<<<<<<<
  */
-    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_4);
-    __Pyx_GIVEREF(__pyx_t_4);
+    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_5);
     __Pyx_INCREF(((PyObject *)__pyx_v_self->_error_log));
-    PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_self->_error_log));
+    PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_self->_error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
-    __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[16]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_5 = 0;
+    __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+    __Pyx_Raise(__pyx_t_5, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     {__pyx_filename = __pyx_f[16]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L7;
   }
@@ -118692,8 +119546,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree.XInclude.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -118877,7 +119731,7 @@ static PyObject *__pyx_pf_4lxml_5etree_54strip_attributes(CYTHON_UNUSED PyObject
  * 
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_attribute_names) != Py_None) && (PyTuple_GET_SIZE(((PyObject *)__pyx_v_attribute_names)) != 0);
-  __pyx_t_3 = (!__pyx_t_2);
+  __pyx_t_3 = ((!__pyx_t_2) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":33
@@ -118931,7 +119785,7 @@ static PyObject *__pyx_pf_4lxml_5etree_54strip_attributes(CYTHON_UNUSED PyObject
  *         return
  *     _strip_attributes(element._c_node, matcher)
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAllAttributes(__pyx_v_matcher);
+  __pyx_t_3 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAllAttributes(__pyx_v_matcher) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":38
@@ -119007,7 +119861,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_attributes(xmlNode *__pyx_v_c_node,
  *         c_attr = c_node.properties
  *         while c_attr is not NULL:
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":46
@@ -119028,7 +119882,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_attributes(xmlNode *__pyx_v_c_node,
  *             if matcher.matchesAttribute(c_attr):
  */
     while (1) {
-      __pyx_t_1 = (__pyx_v_c_attr != NULL);
+      __pyx_t_1 = ((__pyx_v_c_attr != NULL) != 0);
       if (!__pyx_t_1) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":48
@@ -119048,7 +119902,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_attributes(xmlNode *__pyx_v_c_node,
  *                 tree.xmlRemoveProp(c_attr)
  *             c_attr = c_next_attr
  */
-      __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribute(__pyx_v_matcher, __pyx_v_c_attr);
+      __pyx_t_1 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribute(__pyx_v_matcher, __pyx_v_c_attr) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":50
@@ -119238,7 +120092,7 @@ static PyObject *__pyx_pf_4lxml_5etree_56strip_elements(CYTHON_UNUSED PyObject *
  * 
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_tag_names) != Py_None) && (PyTuple_GET_SIZE(((PyObject *)__pyx_v_tag_names)) != 0);
-  __pyx_t_3 = (!__pyx_t_2);
+  __pyx_t_3 = ((!__pyx_t_2) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":90
@@ -119289,7 +120143,7 @@ static PyObject *__pyx_pf_4lxml_5etree_56strip_elements(CYTHON_UNUSED PyObject *
  *         return
  * 
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll(__pyx_v_matcher);
+  __pyx_t_3 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll(__pyx_v_matcher) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":95
@@ -119314,7 +120168,8 @@ static PyObject *__pyx_pf_4lxml_5etree_56strip_elements(CYTHON_UNUSED PyObject *
  *         if matcher.matchesType(tree.XML_COMMENT_NODE):
  */
   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_tree_or_element, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
-  if (__pyx_t_3) {
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":99
  *     if isinstance(tree_or_element, _ElementTree):
@@ -119323,8 +120178,8 @@ static PyObject *__pyx_pf_4lxml_5etree_56strip_elements(CYTHON_UNUSED PyObject *
  *             _removeSiblings(element._c_node, tree.XML_COMMENT_NODE, with_tail)
  *         if matcher.matchesType(tree.XML_PI_NODE):
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_COMMENT_NODE);
-    if (__pyx_t_3) {
+    __pyx_t_2 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_COMMENT_NODE) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":100
  *         # include PIs and comments next to the root node
@@ -119345,8 +120200,8 @@ static PyObject *__pyx_pf_4lxml_5etree_56strip_elements(CYTHON_UNUSED PyObject *
  *             _removeSiblings(element._c_node, tree.XML_PI_NODE, with_tail)
  *     _strip_elements(doc, element._c_node, matcher, with_tail)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_PI_NODE);
-    if (__pyx_t_3) {
+    __pyx_t_2 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_PI_NODE) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":102
  *             _removeSiblings(element._c_node, tree.XML_COMMENT_NODE, with_tail)
@@ -119426,7 +120281,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_elements(struct LxmlDocument *__pyx
  *         # we run through the children here to prevent any problems
  *         # with the tree iteration which would occur if we unlinked the
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":115
@@ -119446,7 +120301,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_elements(struct LxmlDocument *__pyx
  *             if matcher.matches(c_child):
  */
     while (1) {
-      __pyx_t_1 = (__pyx_v_c_child != NULL);
+      __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_1) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":117
@@ -119465,7 +120320,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_elements(struct LxmlDocument *__pyx
  *                 if c_child.type == tree.XML_ELEMENT_NODE:
  *                     if not with_tail:
  */
-      __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_matcher, __pyx_v_c_child);
+      __pyx_t_1 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_matcher, __pyx_v_c_child) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":119
@@ -119475,7 +120330,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_elements(struct LxmlDocument *__pyx
  *                     if not with_tail:
  *                         tree.xmlUnlinkNode(c_child)
  */
-        __pyx_t_1 = (__pyx_v_c_child->type == XML_ELEMENT_NODE);
+        __pyx_t_1 = ((__pyx_v_c_child->type == XML_ELEMENT_NODE) != 0);
         if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":120
@@ -119485,7 +120340,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_elements(struct LxmlDocument *__pyx
  *                         tree.xmlUnlinkNode(c_child)
  *                     _removeNode(doc, c_child)
  */
-          __pyx_t_1 = (!__pyx_v_with_tail);
+          __pyx_t_1 = ((!(__pyx_v_with_tail != 0)) != 0);
           if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":121
@@ -119519,7 +120374,8 @@ static PyObject *__pyx_f_4lxml_5etree__strip_elements(struct LxmlDocument *__pyx
  *                         _removeText(c_child.next)
  *                     tree.xmlUnlinkNode(c_child)
  */
-          if (__pyx_v_with_tail) {
+          __pyx_t_1 = (__pyx_v_with_tail != 0);
+          if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":125
  *                 else:
@@ -119725,7 +120581,7 @@ static PyObject *__pyx_pf_4lxml_5etree_58strip_tags(CYTHON_UNUSED PyObject *__py
  * 
  */
   __pyx_t_2 = (((PyObject *)__pyx_v_tag_names) != Py_None) && (PyTuple_GET_SIZE(((PyObject *)__pyx_v_tag_names)) != 0);
-  __pyx_t_3 = (!__pyx_t_2);
+  __pyx_t_3 = ((!__pyx_t_2) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":167
@@ -119776,7 +120632,7 @@ static PyObject *__pyx_pf_4lxml_5etree_58strip_tags(CYTHON_UNUSED PyObject *__py
  *         return
  * 
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll(__pyx_v_matcher);
+  __pyx_t_3 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll(__pyx_v_matcher) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":172
@@ -119801,7 +120657,8 @@ static PyObject *__pyx_pf_4lxml_5etree_58strip_tags(CYTHON_UNUSED PyObject *__py
  *         if matcher.matchesType(tree.XML_COMMENT_NODE):
  */
   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_tree_or_element, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
-  if (__pyx_t_3) {
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":176
  *     if isinstance(tree_or_element, _ElementTree):
@@ -119810,8 +120667,8 @@ static PyObject *__pyx_pf_4lxml_5etree_58strip_tags(CYTHON_UNUSED PyObject *__py
  *             _removeSiblings(element._c_node, tree.XML_COMMENT_NODE, 0)
  *         if matcher.matchesType(tree.XML_PI_NODE):
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_COMMENT_NODE);
-    if (__pyx_t_3) {
+    __pyx_t_2 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_COMMENT_NODE) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":177
  *         # include PIs and comments next to the root node
@@ -119832,8 +120689,8 @@ static PyObject *__pyx_pf_4lxml_5etree_58strip_tags(CYTHON_UNUSED PyObject *__py
  *             _removeSiblings(element._c_node, tree.XML_PI_NODE, 0)
  *     _strip_tags(doc, element._c_node, matcher)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_PI_NODE);
-    if (__pyx_t_3) {
+    __pyx_t_2 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(__pyx_v_matcher, XML_PI_NODE) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":179
  *             _removeSiblings(element._c_node, tree.XML_COMMENT_NODE, 0)
@@ -119916,7 +120773,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_tags(struct LxmlDocument *__pyx_v_d
  *         # we run through the children here to prevent any problems
  *         # with the tree iteration which would occur if we unlinked the
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":192
@@ -119936,7 +120793,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_tags(struct LxmlDocument *__pyx_v_d
  *                 c_child = _nextElement(c_child)
  */
     while (1) {
-      __pyx_t_1 = (__pyx_v_c_child != NULL);
+      __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_1) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":194
@@ -119946,7 +120803,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_tags(struct LxmlDocument *__pyx_v_d
  *                 c_child = _nextElement(c_child)
  *                 continue
  */
-      __pyx_t_1 = (!__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_matcher, __pyx_v_c_child));
+      __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_matcher, __pyx_v_c_child) != 0)) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":195
@@ -119977,7 +120834,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_tags(struct LxmlDocument *__pyx_v_d
  *                 c_next = _findChildForwards(c_child, 0) or _nextElement(c_child)
  *                 _replaceNodeByChildren(doc, c_child)
  */
-      __pyx_t_1 = (__pyx_v_c_child->type == XML_ELEMENT_NODE);
+      __pyx_t_1 = ((__pyx_v_c_child->type == XML_ELEMENT_NODE) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":198
@@ -120012,7 +120869,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_tags(struct LxmlDocument *__pyx_v_d
  *                     if c_child.nsDef is not NULL:
  *                         # make namespaces absolute
  */
-        __pyx_t_1 = (!__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_child));
+        __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_child) != 0)) != 0);
         if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":201
@@ -120022,7 +120879,7 @@ static PyObject *__pyx_f_4lxml_5etree__strip_tags(struct LxmlDocument *__pyx_v_d
  *                         # make namespaces absolute
  *                         moveNodeToDocument(doc, doc._c_doc, c_child)
  */
-          __pyx_t_1 = (__pyx_v_c_child->nsDef != NULL);
+          __pyx_t_1 = ((__pyx_v_c_child->nsDef != NULL) != 0);
           if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":203
@@ -120264,19 +121121,19 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  Py_ssize_t __pyx_t_3;
-  PyObject *(*__pyx_t_4)(PyObject *);
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_3;
+  Py_ssize_t __pyx_t_4;
+  PyObject *(*__pyx_t_5)(PyObject *);
   PyObject *__pyx_t_6 = NULL;
-  Py_ssize_t __pyx_t_7;
-  PyObject *(*__pyx_t_8)(PyObject *);
-  PyObject *__pyx_t_9 = NULL;
+  PyObject *__pyx_t_7 = NULL;
+  Py_ssize_t __pyx_t_8;
+  PyObject *(*__pyx_t_9)(PyObject *);
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
-  PyObject *(*__pyx_t_12)(PyObject *);
-  PyObject *__pyx_t_13 = NULL;
+  PyObject *__pyx_t_12 = NULL;
+  PyObject *(*__pyx_t_13)(PyObject *);
   PyObject *__pyx_t_14 = NULL;
-  int __pyx_t_15;
+  PyObject *__pyx_t_15 = NULL;
   int __pyx_t_16;
   int __pyx_t_17;
   int __pyx_lineno = 0;
@@ -120366,7 +121223,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *             if isinstance(extensions, dict):
  */
   __pyx_t_2 = (__pyx_v_extensions != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":64
  *         if extensions is not None:
@@ -120375,7 +121233,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                 extensions = (extensions,)
  *             # format: [ {(ns, name):function} ] -> {(ns_utf, name_utf):function}
  */
-    __pyx_t_2 = PyDict_Check(__pyx_v_extensions); 
+    __pyx_t_3 = PyDict_Check(__pyx_v_extensions); 
+    __pyx_t_2 = (__pyx_t_3 != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":65
@@ -120417,42 +121276,42 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                     if name is None:
  */
     if (PyList_CheckExact(__pyx_v_extensions) || PyTuple_CheckExact(__pyx_v_extensions)) {
-      __pyx_t_1 = __pyx_v_extensions; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
-      __pyx_t_4 = NULL;
+      __pyx_t_1 = __pyx_v_extensions; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
+      __pyx_t_5 = NULL;
     } else {
-      __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_extensions); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_extensions); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
+      __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;
     }
     for (;;) {
-      if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_1)) {
-        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) 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_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
-      } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_1)) {
-        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) 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_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
-        __pyx_t_5 = __pyx_t_4(__pyx_t_1);
-        if (unlikely(!__pyx_t_5)) {
+        __pyx_t_6 = __pyx_t_5(__pyx_t_1);
+        if (unlikely(!__pyx_t_6)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
             else {__pyx_filename = __pyx_f[7]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
-        __Pyx_GOTREF(__pyx_t_5);
+        __Pyx_GOTREF(__pyx_t_6);
       }
       __Pyx_XDECREF(__pyx_v_extension);
-      __pyx_v_extension = __pyx_t_5;
-      __pyx_t_5 = 0;
+      __pyx_v_extension = __pyx_t_6;
+      __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":69
  *             new_extensions = {}
@@ -120461,48 +121320,48 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                     if name is None:
  *                         raise ValueError, u"extensions must have non empty names"
  */
-      __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_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_extension, __pyx_n_s__items); 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);
-      __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;
+      __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      if (PyList_CheckExact(__pyx_t_7) || PyTuple_CheckExact(__pyx_t_7)) {
+        __pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
+        __pyx_t_9 = NULL;
       } else {
-        __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); 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_8 = Py_TYPE(__pyx_t_5)->tp_iternext;
+        __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_7); 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);
+        __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext;
       }
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       for (;;) {
-        if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_5)) {
-          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
+        if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_6)) {
+          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) 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[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __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[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __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;
+        } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_6)) {
+          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) 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[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __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[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else {
-          __pyx_t_6 = __pyx_t_8(__pyx_t_5);
-          if (unlikely(!__pyx_t_6)) {
+          __pyx_t_7 = __pyx_t_9(__pyx_t_6);
+          if (unlikely(!__pyx_t_7)) {
             if (PyErr_Occurred()) {
               if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
               else {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             }
             break;
           }
-          __Pyx_GOTREF(__pyx_t_6);
+          __Pyx_GOTREF(__pyx_t_7);
         }
-        if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
-          PyObject* sequence = __pyx_t_6;
+        if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
+          PyObject* sequence = __pyx_t_7;
           #if CYTHON_COMPILING_IN_CPYTHON
           Py_ssize_t size = Py_SIZE(sequence);
           #else
@@ -120515,45 +121374,45 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           if (likely(PyTuple_CheckExact(sequence))) {
-            __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
-            __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); 
+            __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); 
+            __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); 
           } else {
-            __pyx_t_9 = PyList_GET_ITEM(sequence, 0); 
-            __pyx_t_10 = PyList_GET_ITEM(sequence, 1); 
+            __pyx_t_10 = PyList_GET_ITEM(sequence, 0); 
+            __pyx_t_11 = PyList_GET_ITEM(sequence, 1); 
           }
-          __Pyx_INCREF(__pyx_t_9);
           __Pyx_INCREF(__pyx_t_10);
+          __Pyx_INCREF(__pyx_t_11);
           #else
-          __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_9);
-          __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
+          __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_11);
           #endif
-          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_11);
-          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-          __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
-          index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L9_unpacking_failed;
-          __Pyx_GOTREF(__pyx_t_9);
-          index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L9_unpacking_failed;
+          __pyx_t_12 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_12);
+          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+          __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext;
+          index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L9_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_10);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __pyx_t_12 = NULL;
-          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+          index = 1; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L9_unpacking_failed;
+          __Pyx_GOTREF(__pyx_t_11);
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_13 = NULL;
+          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
           goto __pyx_L10_unpacking_done;
           __pyx_L9_unpacking_failed:;
-          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-          __pyx_t_12 = NULL;
+          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+          __pyx_t_13 = NULL;
           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L10_unpacking_done:;
         }
-        if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) {
-          PyObject* sequence = __pyx_t_9;
+        if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) {
+          PyObject* sequence = __pyx_t_10;
           #if CYTHON_COMPILING_IN_CPYTHON
           Py_ssize_t size = Py_SIZE(sequence);
           #else
@@ -120566,52 +121425,52 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           if (likely(PyTuple_CheckExact(sequence))) {
-            __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
-            __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
+            __pyx_t_12 = PyTuple_GET_ITEM(sequence, 0); 
+            __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
           } else {
-            __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
-            __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
+            __pyx_t_12 = PyList_GET_ITEM(sequence, 0); 
+            __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
           }
-          __Pyx_INCREF(__pyx_t_11);
-          __Pyx_INCREF(__pyx_t_13);
+          __Pyx_INCREF(__pyx_t_12);
+          __Pyx_INCREF(__pyx_t_14);
           #else
-          __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_11);
-          __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_13);
+          __pyx_t_12 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_12);
+          __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_14);
           #endif
-          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_14 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_15 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_15);
+          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+          __pyx_t_13 = Py_TYPE(__pyx_t_15)->tp_iternext;
+          index = 0; __pyx_t_12 = __pyx_t_13(__pyx_t_15); if (unlikely(!__pyx_t_12)) goto __pyx_L11_unpacking_failed;
+          __Pyx_GOTREF(__pyx_t_12);
+          index = 1; __pyx_t_14 = __pyx_t_13(__pyx_t_15); if (unlikely(!__pyx_t_14)) goto __pyx_L11_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_14);
-          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
-          __pyx_t_12 = Py_TYPE(__pyx_t_14)->tp_iternext;
-          index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_14); if (unlikely(!__pyx_t_11)) goto __pyx_L11_unpacking_failed;
-          __Pyx_GOTREF(__pyx_t_11);
-          index = 1; __pyx_t_13 = __pyx_t_12(__pyx_t_14); if (unlikely(!__pyx_t_13)) goto __pyx_L11_unpacking_failed;
-          __Pyx_GOTREF(__pyx_t_13);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_14), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __pyx_t_12 = NULL;
-          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_15), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_13 = NULL;
+          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
           goto __pyx_L12_unpacking_done;
           __pyx_L11_unpacking_failed:;
-          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
-          __pyx_t_12 = NULL;
+          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+          __pyx_t_13 = NULL;
           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L12_unpacking_done:;
         }
         __Pyx_XDECREF(__pyx_v_ns_uri);
-        __pyx_v_ns_uri = __pyx_t_11;
-        __pyx_t_11 = 0;
+        __pyx_v_ns_uri = __pyx_t_12;
+        __pyx_t_12 = 0;
         __Pyx_XDECREF(__pyx_v_name);
-        __pyx_v_name = __pyx_t_13;
-        __pyx_t_13 = 0;
+        __pyx_v_name = __pyx_t_14;
+        __pyx_t_14 = 0;
         __Pyx_XDECREF(__pyx_v_function);
-        __pyx_v_function = __pyx_t_10;
-        __pyx_t_10 = 0;
+        __pyx_v_function = __pyx_t_11;
+        __pyx_t_11 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":70
  *             for extension in extensions:
@@ -120621,7 +121480,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                     ns_utf   = self._to_utf(ns_uri)
  */
         __pyx_t_2 = (__pyx_v_name == Py_None);
-        if (__pyx_t_2) {
+        __pyx_t_3 = (__pyx_t_2 != 0);
+        if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":71
  *                 for (ns_uri, name), function in extension.items():
@@ -120630,7 +121490,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                     ns_utf   = self._to_utf(ns_uri)
  *                     name_utf = self._to_utf(name)
  */
-          __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_158), 0, 0);
+          __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_159), 0, 0);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L13;
         }
@@ -120643,11 +121503,11 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                     name_utf = self._to_utf(name)
  *                     new_extensions[(ns_utf, name_utf)] = function
  */
-        __pyx_t_6 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_7 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_7);
         __Pyx_XDECREF(((PyObject *)__pyx_v_ns_utf));
-        __pyx_v_ns_utf = ((PyObject*)__pyx_t_6);
-        __pyx_t_6 = 0;
+        __pyx_v_ns_utf = ((PyObject*)__pyx_t_7);
+        __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":73
  *                         raise ValueError, u"extensions must have non empty names"
@@ -120656,11 +121516,11 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                     new_extensions[(ns_utf, name_utf)] = function
  *             extensions = new_extensions or None
  */
-        __pyx_t_6 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_name)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_7 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_name)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_7);
         __Pyx_XDECREF(((PyObject *)__pyx_v_name_utf));
-        __pyx_v_name_utf = ((PyObject*)__pyx_t_6);
-        __pyx_t_6 = 0;
+        __pyx_v_name_utf = ((PyObject*)__pyx_t_7);
+        __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":74
  *                     ns_utf   = self._to_utf(ns_uri)
@@ -120669,18 +121529,18 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *             extensions = new_extensions or None
  * 
  */
-        __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_7);
         __Pyx_INCREF(((PyObject *)__pyx_v_ns_utf));
-        PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_v_ns_utf));
+        PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_ns_utf));
         __Pyx_GIVEREF(((PyObject *)__pyx_v_ns_utf));
         __Pyx_INCREF(((PyObject *)__pyx_v_name_utf));
-        PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_name_utf));
+        PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_name_utf));
         __Pyx_GIVEREF(((PyObject *)__pyx_v_name_utf));
-        if (PyDict_SetItem(((PyObject *)__pyx_v_new_extensions), ((PyObject *)__pyx_t_6), __pyx_v_function) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+        if (PyDict_SetItem(((PyObject *)__pyx_v_new_extensions), ((PyObject *)__pyx_t_7), __pyx_v_function) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
       }
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     }
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -120691,8 +121551,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  * 
  *         if namespaces is not None:
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_new_extensions)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (!__pyx_t_2) {
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_new_extensions)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!__pyx_t_3) {
       __Pyx_INCREF(Py_None);
       __pyx_t_1 = Py_None;
     } else {
@@ -120713,7 +121573,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *             if isinstance(namespaces, dict):
  *                 namespaces = namespaces.items()
  */
-  __pyx_t_2 = (__pyx_v_namespaces != Py_None);
+  __pyx_t_3 = (__pyx_v_namespaces != Py_None);
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":78
@@ -120724,7 +121585,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *             if namespaces:
  */
     __pyx_t_2 = PyDict_Check(__pyx_v_namespaces); 
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_t_2 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":79
  *         if namespaces is not None:
@@ -120735,12 +121597,12 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  */
       __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);
+      __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(__pyx_v_namespaces);
-      __pyx_v_namespaces = __pyx_t_5;
-      __pyx_t_5 = 0;
+      __pyx_v_namespaces = __pyx_t_6;
+      __pyx_t_6 = 0;
       goto __pyx_L15;
     }
     __pyx_L15:;
@@ -120752,8 +121614,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                 ns = []
  *                 for prefix, ns_uri in namespaces:
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_namespaces); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_2) {
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_namespaces); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":81
  *                 namespaces = namespaces.items()
@@ -120762,10 +121624,10 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                 for prefix, ns_uri in namespaces:
  *                     if prefix is None or not prefix:
  */
-      __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __pyx_v_ns = ((PyObject*)__pyx_t_5);
-      __pyx_t_5 = 0;
+      __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_v_ns = ((PyObject*)__pyx_t_6);
+      __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":82
  *             if namespaces:
@@ -120775,30 +121637,30 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                         raise TypeError, \
  */
       if (PyList_CheckExact(__pyx_v_namespaces) || PyTuple_CheckExact(__pyx_v_namespaces)) {
-        __pyx_t_5 = __pyx_v_namespaces; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
-        __pyx_t_4 = NULL;
+        __pyx_t_6 = __pyx_v_namespaces; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
+        __pyx_t_5 = NULL;
       } else {
-        __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_namespaces); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_4 = Py_TYPE(__pyx_t_5)->tp_iternext;
+        __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_namespaces); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_5 = Py_TYPE(__pyx_t_6)->tp_iternext;
       }
       for (;;) {
-        if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_5)) {
-          if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
+        if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_6)) {
+          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
-        } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_5)) {
-          if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
+        } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_6)) {
+          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else {
-          __pyx_t_1 = __pyx_t_4(__pyx_t_5);
+          __pyx_t_1 = __pyx_t_5(__pyx_t_6);
           if (unlikely(!__pyx_t_1)) {
             if (PyErr_Occurred()) {
               if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
@@ -120822,49 +121684,49 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           if (likely(PyTuple_CheckExact(sequence))) {
-            __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
-            __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); 
+            __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
+            __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); 
           } else {
-            __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
-            __pyx_t_10 = PyList_GET_ITEM(sequence, 1); 
+            __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
+            __pyx_t_11 = PyList_GET_ITEM(sequence, 1); 
           }
-          __Pyx_INCREF(__pyx_t_6);
-          __Pyx_INCREF(__pyx_t_10);
+          __Pyx_INCREF(__pyx_t_7);
+          __Pyx_INCREF(__pyx_t_11);
           #else
-          __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_6);
-          __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_10);
+          __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_7);
+          __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_11);
           #endif
           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_9 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_9);
-          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-          __pyx_t_12 = Py_TYPE(__pyx_t_9)->tp_iternext;
-          index = 0; __pyx_t_6 = __pyx_t_12(__pyx_t_9); if (unlikely(!__pyx_t_6)) goto __pyx_L19_unpacking_failed;
-          __Pyx_GOTREF(__pyx_t_6);
-          index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_9); if (unlikely(!__pyx_t_10)) goto __pyx_L19_unpacking_failed;
+          __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __pyx_t_12 = NULL;
-          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+          __pyx_t_13 = Py_TYPE(__pyx_t_10)->tp_iternext;
+          index = 0; __pyx_t_7 = __pyx_t_13(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L19_unpacking_failed;
+          __Pyx_GOTREF(__pyx_t_7);
+          index = 1; __pyx_t_11 = __pyx_t_13(__pyx_t_10); if (unlikely(!__pyx_t_11)) goto __pyx_L19_unpacking_failed;
+          __Pyx_GOTREF(__pyx_t_11);
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_13 = NULL;
+          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
           goto __pyx_L20_unpacking_done;
           __pyx_L19_unpacking_failed:;
-          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
-          __pyx_t_12 = NULL;
+          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+          __pyx_t_13 = NULL;
           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L20_unpacking_done:;
         }
         __Pyx_XDECREF(__pyx_v_prefix);
-        __pyx_v_prefix = __pyx_t_6;
-        __pyx_t_6 = 0;
+        __pyx_v_prefix = __pyx_t_7;
+        __pyx_t_7 = 0;
         __Pyx_XDECREF(__pyx_v_ns_uri);
-        __pyx_v_ns_uri = __pyx_t_10;
-        __pyx_t_10 = 0;
+        __pyx_v_ns_uri = __pyx_t_11;
+        __pyx_t_11 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":83
  *                 ns = []
@@ -120873,15 +121735,15 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                         raise TypeError, \
  *                             u"empty namespace prefix is not supported in XPath"
  */
-        __pyx_t_2 = (__pyx_v_prefix == Py_None);
-        if (!__pyx_t_2) {
-          __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_15 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __pyx_t_16 = (!__pyx_t_15);
-          __pyx_t_15 = __pyx_t_16;
+        __pyx_t_3 = (__pyx_v_prefix == Py_None);
+        if (!(__pyx_t_3 != 0)) {
+          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_16 = ((!__pyx_t_2) != 0);
+          __pyx_t_2 = __pyx_t_16;
         } else {
-          __pyx_t_15 = __pyx_t_2;
+          __pyx_t_2 = (__pyx_t_3 != 0);
         }
-        if (__pyx_t_15) {
+        if (__pyx_t_2) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":84
  *                 for prefix, ns_uri in namespaces:
@@ -120890,7 +121752,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                             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_311), 0, 0);
+          __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_312), 0, 0);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L21;
         }
@@ -120903,15 +121765,15 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                         raise TypeError, \
  *                             u"setting default namespace is not supported in XPath"
  */
-        __pyx_t_15 = (__pyx_v_ns_uri == Py_None);
-        if (!__pyx_t_15) {
-          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ns_uri); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __pyx_t_16 = (!__pyx_t_2);
-          __pyx_t_2 = __pyx_t_16;
+        __pyx_t_2 = (__pyx_v_ns_uri == Py_None);
+        if (!(__pyx_t_2 != 0)) {
+          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ns_uri); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_16 = ((!__pyx_t_3) != 0);
+          __pyx_t_3 = __pyx_t_16;
         } else {
-          __pyx_t_2 = __pyx_t_15;
+          __pyx_t_3 = (__pyx_t_2 != 0);
         }
-        if (__pyx_t_2) {
+        if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":87
  *                             u"empty namespace prefix is not supported in XPath"
@@ -120920,7 +121782,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                             u"setting default namespace is not supported in XPath"
  *                     prefix_utf = self._to_utf(prefix)
  */
-          __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_312), 0, 0);
+          __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_313), 0, 0);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L22;
         }
@@ -120970,7 +121832,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
         __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;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":92
  *                     ns_uri_utf = self._to_utf(ns_uri)
@@ -121022,13 +121884,13 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *         self._extensions = extensions
  *         self._namespaces = namespaces
  */
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ExceptionContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_5);
-  __Pyx_GIVEREF(__pyx_t_5);
+  __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ExceptionContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __Pyx_GIVEREF(__pyx_t_6);
   __Pyx_GOTREF(__pyx_v_self->_exc);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_exc));
-  __pyx_v_self->_exc = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_t_5);
-  __pyx_t_5 = 0;
+  __pyx_v_self->_exc = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":98
  *         self._doc        = None
@@ -121065,13 +121927,13 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *         self._temp_documents  = set()
  *         self._build_smart_strings = build_smart_strings
  */
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__TempStore)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_5);
-  __Pyx_GIVEREF(__pyx_t_5);
+  __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__TempStore)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __Pyx_GIVEREF(__pyx_t_6);
   __Pyx_GOTREF(__pyx_v_self->_temp_refs);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_temp_refs));
-  __pyx_v_self->_temp_refs = ((struct __pyx_obj_4lxml_5etree__TempStore *)__pyx_t_5);
-  __pyx_t_5 = 0;
+  __pyx_v_self->_temp_refs = ((struct __pyx_obj_4lxml_5etree__TempStore *)__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":101
  *         self._namespaces = namespaces
@@ -121080,13 +121942,13 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *         self._build_smart_strings = build_smart_strings
  * 
  */
-  __pyx_t_5 = PySet_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-  __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
+  __pyx_t_6 = PySet_New(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
   __Pyx_GOTREF(__pyx_v_self->_temp_documents);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_temp_documents));
-  __pyx_v_self->_temp_documents = ((PyObject*)__pyx_t_5);
-  __pyx_t_5 = 0;
+  __pyx_v_self->_temp_documents = ((PyObject*)__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":102
  *         self._temp_refs  = _TempStore()
@@ -121095,8 +121957,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  * 
  *         if enable_regexp:
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_build_smart_strings); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_self->_build_smart_strings = __pyx_t_2;
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_build_smart_strings); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_self->_build_smart_strings = __pyx_t_3;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":104
  *         self._build_smart_strings = build_smart_strings
@@ -121105,8 +121967,8 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *             _regexp = _ExsltRegExp()
  *             _regexp._register_in_context(self)
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_enable_regexp); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_2) {
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_enable_regexp); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":105
  * 
@@ -121115,10 +121977,10 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *             _regexp._register_in_context(self)
  * 
  */
-    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ExsltRegExp)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_v__regexp = ((struct __pyx_obj_4lxml_5etree__ExsltRegExp *)__pyx_t_5);
-    __pyx_t_5 = 0;
+    __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ExsltRegExp)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_v__regexp = ((struct __pyx_obj_4lxml_5etree__ExsltRegExp *)__pyx_t_6);
+    __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":106
  *         if enable_regexp:
@@ -121127,9 +121989,9 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  * 
  *     cdef _BaseContext _copy(self):
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree_12_ExsltRegExp__register_in_context(__pyx_v__regexp, __pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __pyx_t_6 = __pyx_f_4lxml_5etree_12_ExsltRegExp__register_in_context(__pyx_v__regexp, __pyx_v_self); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L23;
   }
   __pyx_L23:;
@@ -121138,13 +122000,13 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
-  __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_10);
   __Pyx_XDECREF(__pyx_t_11);
-  __Pyx_XDECREF(__pyx_t_13);
+  __Pyx_XDECREF(__pyx_t_12);
   __Pyx_XDECREF(__pyx_t_14);
+  __Pyx_XDECREF(__pyx_t_15);
   __Pyx_AddTraceback("lxml.etree._BaseContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -121180,10 +122042,11 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
   struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -121197,7 +122060,8 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
  *         else:
  */
   __pyx_t_1 = (__pyx_v_self->_namespaces != ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":111
  *         cdef _BaseContext context
@@ -121210,10 +122074,10 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
       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;
+    __pyx_t_3 = __Pyx_PyList_GetSlice(((PyObject *)__pyx_v_self->_namespaces), 0, PY_SSIZE_T_MAX); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __pyx_v_namespaces = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -121237,10 +122101,10 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
  *                                  self._build_smart_strings)
  *         if self._extensions is not None:
  */
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____class__); 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);
+  __pyx_t_4 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":115
  *             namespaces = None
@@ -121249,32 +122113,32 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
  *         if self._extensions is not None:
  *             context._extensions = self._extensions.copy()
  */
-  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_self->_build_smart_strings); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = PyTuple_New(5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_self->_build_smart_strings); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
   __Pyx_INCREF(__pyx_v_namespaces);
-  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_namespaces);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
   __Pyx_INCREF(Py_None);
-  PyTuple_SET_ITEM(__pyx_t_5, 1, Py_None);
+  PyTuple_SET_ITEM(__pyx_t_6, 1, Py_None);
   __Pyx_GIVEREF(Py_None);
   __Pyx_INCREF(((PyObject *)__pyx_v_self->_error_log));
-  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_self->_error_log));
+  PyTuple_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_v_self->_error_log));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
-  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_3);
-  __Pyx_GIVEREF(__pyx_t_3);
-  PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
-  __pyx_t_3 = 0;
-  __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__BaseContext))))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5);
+  __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_4 = 0;
+  __pyx_t_5 = 0;
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__BaseContext))))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_t_5);
+  __pyx_t_5 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":116
  *         context = self.__class__(namespaces, None, self._error_log, False,
@@ -121283,7 +122147,8 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
  *             context._extensions = self._extensions.copy()
  *         return context
  */
-  __pyx_t_1 = (__pyx_v_self->_extensions != ((PyObject*)Py_None));
+  __pyx_t_2 = (__pyx_v_self->_extensions != ((PyObject*)Py_None));
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":117
@@ -121297,13 +122162,13 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "copy");
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_4 = ((PyObject *)PyDict_Copy(__pyx_v_self->_extensions)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_GIVEREF(__pyx_t_4);
+    __pyx_t_5 = ((PyObject *)PyDict_Copy(__pyx_v_self->_extensions)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_v_context->_extensions);
     __Pyx_DECREF(((PyObject *)__pyx_v_context->_extensions));
-    __pyx_v_context->_extensions = ((PyObject*)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __pyx_v_context->_extensions = ((PyObject*)__pyx_t_5);
+    __pyx_t_5 = 0;
     goto __pyx_L4;
   }
   __pyx_L4:;
@@ -121323,10 +122188,10 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_BaseC
   __pyx_r = ((struct __pyx_obj_4lxml_5etree__BaseContext *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._BaseContext._copy", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -121351,7 +122216,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__to_utf(struct __pyx_obj_4l
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -121365,7 +122231,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__to_utf(struct __pyx_obj_4l
  *         dict_result = python.PyDict_GetItem(self._utf_refs, s)
  */
   __pyx_t_1 = (__pyx_v_s == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":124
  *         cdef python.PyObject* dict_result
@@ -121389,10 +122256,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__to_utf(struct __pyx_obj_4l
  *         if dict_result is not NULL:
  *             return <bytes>dict_result
  */
-  __pyx_t_2 = ((PyObject *)__pyx_v_self->_utf_refs);
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_v_dict_result = PyDict_GetItem(__pyx_t_2, __pyx_v_s);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_v_self->_utf_refs);
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_v_dict_result = PyDict_GetItem(__pyx_t_3, __pyx_v_s);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":126
  *             return None
@@ -121401,8 +122268,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__to_utf(struct __pyx_obj_4l
  *             return <bytes>dict_result
  *         utf = _utf8(s)
  */
-  __pyx_t_1 = (__pyx_v_dict_result != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_dict_result != NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":127
  *         dict_result = python.PyDict_GetItem(self._utf_refs, s)
@@ -121426,10 +122293,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__to_utf(struct __pyx_obj_4l
  *         self._utf_refs[s] = utf
  *         if python.IS_PYPY:
  */
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_s)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_utf = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_s)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_utf = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":129
  *             return <bytes>dict_result
@@ -121451,7 +122318,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__to_utf(struct __pyx_obj_4l
  *             # use C level refs, PyPy refs are not enough!
  *             python.Py_INCREF(utf)
  */
-  if (IS_PYPY) {
+  __pyx_t_2 = (IS_PYPY != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":132
  *         if python.IS_PYPY:
@@ -121480,7 +122348,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__to_utf(struct __pyx_obj_4l
   __pyx_r = ((PyObject*)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._BaseContext._to_utf", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -121585,13 +122453,14 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(struct __p
   PyObject *__pyx_v_ref = NULL;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
-  Py_ssize_t __pyx_t_2;
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
   Py_ssize_t __pyx_t_3;
-  int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
+  Py_ssize_t __pyx_t_4;
+  int __pyx_t_5;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_t_7;
+  int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -121604,7 +122473,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(struct __p
  *             # clean up double refs in PyPy (see "_to_utf()" method)
  *             for ref in self._utf_refs.itervalues():
  */
-  if (IS_PYPY) {
+  __pyx_t_1 = (IS_PYPY != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":151
  *         if python.IS_PYPY:
@@ -121613,24 +122483,24 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(struct __p
  *                 python.Py_DECREF(ref)
  *         self._utf_refs.clear()
  */
-    __pyx_t_2 = 0;
+    __pyx_t_3 = 0;
     if (unlikely(((PyObject *)__pyx_v_self->_utf_refs) == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "itervalues");
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_5 = __Pyx_dict_iterator(((PyObject *)__pyx_v_self->_utf_refs), 1, ((PyObject *)__pyx_n_s__itervalues), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_XDECREF(__pyx_t_1);
-    __pyx_t_1 = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_t_6 = __Pyx_dict_iterator(((PyObject *)__pyx_v_self->_utf_refs), 1, ((PyObject *)__pyx_n_s__itervalues), (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __Pyx_XDECREF(__pyx_t_2);
+    __pyx_t_2 = __pyx_t_6;
+    __pyx_t_6 = 0;
     while (1) {
-      __pyx_t_6 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, NULL, &__pyx_t_5, NULL, __pyx_t_4);
-      if (unlikely(__pyx_t_6 == 0)) break;
-      if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, NULL, &__pyx_t_6, NULL, __pyx_t_5);
+      if (unlikely(__pyx_t_7 == 0)) break;
+      if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_XDECREF(__pyx_v_ref);
-      __pyx_v_ref = __pyx_t_5;
-      __pyx_t_5 = 0;
+      __pyx_v_ref = __pyx_t_6;
+      __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":152
  *             # clean up double refs in PyPy (see "_to_utf()" method)
@@ -121641,7 +122511,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(struct __p
  */
       Py_DECREF(__pyx_v_ref);
     }
-    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -121657,7 +122527,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(struct __p
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "clear");
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_7 = __Pyx_PyDict_Clear(__pyx_v_self->_utf_refs); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __Pyx_PyDict_Clear(__pyx_v_self->_utf_refs); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":154
  *                 python.Py_DECREF(ref)
@@ -121688,8 +122558,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(struct __p
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._BaseContext._cleanup_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -121720,7 +122590,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__release_context(struct __p
  *             self._xpathCtxt.userData = NULL
  *             self._xpathCtxt = NULL
  */
-  __pyx_t_1 = (__pyx_v_self->_xpathCtxt != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_xpathCtxt != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":160
@@ -121767,11 +122637,12 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  Py_ssize_t __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  Py_ssize_t __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
+  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -121785,7 +122656,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *         prefix_utf = self._to_utf(prefix)
  */
   __pyx_t_1 = (__pyx_v_prefix == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":168
  *         cdef list namespaces
@@ -121794,7 +122666,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *         prefix_utf = self._to_utf(prefix)
  *         ns_uri_utf = self._to_utf(ns_uri)
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_313), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_314), 0, 0);
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -121807,10 +122679,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *         ns_uri_utf = self._to_utf(ns_uri)
  *         new_item = (prefix_utf, ns_uri_utf)
  */
-  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_prefix)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_prefix_utf = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_prefix)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_prefix_utf = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":170
  *             raise TypeError, u"empty prefix is not supported in XPath"
@@ -121819,10 +122691,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *         new_item = (prefix_utf, ns_uri_utf)
  *         if self._namespaces is None:
  */
-  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_ns_uri_utf = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_ns_uri_utf = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":171
  *         prefix_utf = self._to_utf(prefix)
@@ -121831,16 +122703,16 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *         if self._namespaces is None:
  *             self._namespaces = [new_item]
  */
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 171; __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[7]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_v_prefix_utf));
-  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_prefix_utf));
+  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_prefix_utf));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_prefix_utf));
   __Pyx_INCREF(((PyObject *)__pyx_v_ns_uri_utf));
-  PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_ns_uri_utf));
+  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_ns_uri_utf));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_ns_uri_utf));
-  __pyx_v_new_item = ((PyObject *)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_v_new_item = ((PyObject *)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":172
  *         ns_uri_utf = self._to_utf(ns_uri)
@@ -121849,7 +122721,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *             self._namespaces = [new_item]
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_self->_namespaces == ((PyObject*)Py_None));
+  __pyx_t_2 = (__pyx_v_self->_namespaces == ((PyObject*)Py_None));
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":173
@@ -121859,16 +122732,16 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *         else:
  *             namespaces = []
  */
-    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_new_item);
-    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_v_new_item);
+    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_new_item);
     __Pyx_GIVEREF(__pyx_v_new_item);
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __Pyx_GOTREF(__pyx_v_self->_namespaces);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_namespaces));
-    __pyx_v_self->_namespaces = ((PyObject*)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_self->_namespaces = ((PyObject*)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L4;
   }
   /*else*/ {
@@ -121880,10 +122753,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *             for item in self._namespaces:
  *                 if item[0] == prefix_utf:
  */
-    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_v_namespaces = ((PyObject*)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_v_namespaces = ((PyObject*)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":176
  *         else:
@@ -121896,17 +122769,17 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__pyx_v_self->_namespaces); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->_namespaces); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
     for (;;) {
-      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
+      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
       __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_4;
-      __pyx_t_4 = 0;
+      __pyx_v_item = __pyx_t_5;
+      __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":177
  *             namespaces = []
@@ -121915,12 +122788,12 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *                     item = new_item
  *                     new_item = None
  */
-      __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;
-      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_v_prefix_utf), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":178
@@ -121955,9 +122828,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *             if new_item is not None:
  *                 namespaces.append(new_item)
  */
-      __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_t_7 = __Pyx_PyList_Append(__pyx_v_namespaces, __pyx_v_item); if (unlikely(__pyx_t_7 == -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;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":181
  *                     new_item = None
@@ -121967,7 +122840,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *             self._namespaces = namespaces
  */
     __pyx_t_1 = (__pyx_v_new_item != Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":182
  *                 namespaces.append(item)
@@ -121976,7 +122850,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *             self._namespaces = namespaces
  *         if self._xpathCtxt is not NULL:
  */
-      __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;}
+      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_namespaces, __pyx_v_new_item); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L8;
     }
     __pyx_L8:;
@@ -122003,8 +122877,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *             xpath.xmlXPathRegisterNs(
  *                 self._xpathCtxt, _xcstr(prefix_utf), _xcstr(ns_uri_utf))
  */
-  __pyx_t_1 = (__pyx_v_self->_xpathCtxt != NULL);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_self->_xpathCtxt != NULL) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":186
  *         if self._xpathCtxt is not NULL:
@@ -122021,9 +122895,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._BaseContext.addNamespace", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -122051,8 +122925,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -122066,7 +122941,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
  *         prefix_utf = self._to_utf(prefix)
  */
   __pyx_t_1 = (__pyx_v_prefix == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":190
  *     cdef registerNamespace(self, prefix, ns_uri):
@@ -122075,7 +122951,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
  *         prefix_utf = self._to_utf(prefix)
  *         ns_uri_utf = self._to_utf(ns_uri)
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_313), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_314), 0, 0);
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -122088,10 +122964,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
  *         ns_uri_utf = self._to_utf(ns_uri)
  *         self._global_namespaces.append(prefix_utf)
  */
-  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_prefix)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_prefix_utf = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_prefix)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_prefix_utf = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":192
  *             raise TypeError, u"empty prefix is not supported in XPath"
@@ -122100,10 +122976,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
  *         self._global_namespaces.append(prefix_utf)
  *         xpath.xmlXPathRegisterNs(self._xpathCtxt,
  */
-  __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_ns_uri_utf = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_ns_uri_utf = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":193
  *         prefix_utf = self._to_utf(prefix)
@@ -122116,7 +122992,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
     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 = __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;}
+  __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_self->_global_namespaces, ((PyObject *)__pyx_v_prefix_utf)); if (unlikely(__pyx_t_4 == -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)
@@ -122130,7 +123006,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._BaseContext.registerNamespace", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -122155,13 +123031,14 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalNamespaces(str
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  Py_ssize_t __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  Py_ssize_t __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  PyObject *(*__pyx_t_8)(PyObject *);
+  PyObject *__pyx_t_8 = NULL;
+  PyObject *(*__pyx_t_9)(PyObject *);
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -122175,7 +123052,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalNamespaces(str
  *         for prefix_utf, ns_uri_utf in self._namespaces:
  */
   __pyx_t_1 = (__pyx_v_self->_namespaces == ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":199
  *     cdef registerLocalNamespaces(self):
@@ -122202,16 +123080,16 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalNamespaces(str
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = ((PyObject *)__pyx_v_self->_namespaces); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_v_self->_namespaces); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
   for (;;) {
-    if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
+    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
-      PyObject* sequence = __pyx_t_4;
+    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
+      PyObject* sequence = __pyx_t_5;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -122224,49 +123102,49 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalNamespaces(str
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
-        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
       } else {
-        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
       }
-      __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
+      __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       #endif
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_7);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
-      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_5);
-      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
+      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_8 = NULL;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_7);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L7_unpacking_done;
       __pyx_L6_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_8 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
     __Pyx_XDECREF(__pyx_v_prefix_utf);
-    __pyx_v_prefix_utf = __pyx_t_5;
-    __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_ns_uri_utf);
-    __pyx_v_ns_uri_utf = __pyx_t_6;
+    __pyx_v_prefix_utf = __pyx_t_6;
     __pyx_t_6 = 0;
+    __Pyx_XDECREF(__pyx_v_ns_uri_utf);
+    __pyx_v_ns_uri_utf = __pyx_t_7;
+    __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":202
  *         for prefix_utf, ns_uri_utf in self._namespaces:
@@ -122277,16 +123155,16 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalNamespaces(str
  */
     xmlXPathRegisterNs(__pyx_v_self->_xpathCtxt, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_prefix_utf), (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns_uri_utf));
   }
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.etree._BaseContext.registerLocalNamespaces", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -122344,7 +123222,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerGlobalNamespaces(st
  *             for prefix_utf, ns_uri_utf in ns_prefixes:
  *                 self._global_namespaces.append(prefix_utf)
  */
-  __pyx_t_2 = (PyList_GET_SIZE(((PyObject *)__pyx_v_ns_prefixes)) > 0);
+  __pyx_t_2 = ((PyList_GET_SIZE(((PyObject *)__pyx_v_ns_prefixes)) > 0) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":207
@@ -122500,7 +123378,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterGlobalNamespaces(
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_global_namespaces);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = (PyList_GET_SIZE(__pyx_t_1) > 0);
+  __pyx_t_2 = ((PyList_GET_SIZE(__pyx_t_1) > 0) != 0);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
@@ -122603,7 +123481,8 @@ static void __pyx_f_4lxml_5etree_12_BaseContext__unregisterNamespace(struct __py
 static void __pyx_f_4lxml_5etree_12_BaseContext__addLocalExtensionFunction(struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_v_self, PyObject *__pyx_v_ns_utf, PyObject *__pyx_v_name_utf, PyObject *__pyx_v_function) {
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -122617,7 +123496,8 @@ static void __pyx_f_4lxml_5etree_12_BaseContext__addLocalExtensionFunction(struc
  *         self._extensions[(ns_utf, name_utf)] = function
  */
   __pyx_t_1 = (__pyx_v_self->_extensions == ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":227
  *     cdef void _addLocalExtensionFunction(self, ns_utf, name_utf, function):
@@ -122626,13 +123506,13 @@ static void __pyx_f_4lxml_5etree_12_BaseContext__addLocalExtensionFunction(struc
  *         self._extensions[(ns_utf, name_utf)] = function
  * 
  */
-    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __Pyx_GOTREF(__pyx_v_self->_extensions);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_extensions));
-    __pyx_v_self->_extensions = ((PyObject*)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_self->_extensions = ((PyObject*)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -122648,20 +123528,20 @@ static void __pyx_f_4lxml_5etree_12_BaseContext__addLocalExtensionFunction(struc
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 228; __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[7]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_ns_utf);
-  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_ns_utf);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_ns_utf);
   __Pyx_GIVEREF(__pyx_v_ns_utf);
   __Pyx_INCREF(__pyx_v_name_utf);
-  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_name_utf);
+  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_name_utf);
   __Pyx_GIVEREF(__pyx_v_name_utf);
-  if (PyDict_SetItem(((PyObject *)__pyx_v_self->_extensions), ((PyObject *)__pyx_t_2), __pyx_v_function) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+  if (PyDict_SetItem(((PyObject *)__pyx_v_self->_extensions), ((PyObject *)__pyx_t_3), __pyx_v_function) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_WriteUnraisable("lxml.etree._BaseContext._addLocalExtensionFunction", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_L0:;
   __Pyx_RefNannyFinishContext();
@@ -122750,7 +123630,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerGlobalFunctions(str
  *                 d = <dict>dict_result
  *             else:
  */
-    __pyx_t_8 = (__pyx_v_dict_result != NULL);
+    __pyx_t_8 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":238
@@ -122889,18 +123769,18 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  Py_ssize_t __pyx_t_3;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   Py_ssize_t __pyx_t_4;
-  int __pyx_t_5;
-  PyObject *__pyx_t_6 = NULL;
+  Py_ssize_t __pyx_t_5;
+  int __pyx_t_6;
   PyObject *__pyx_t_7 = NULL;
-  int __pyx_t_8;
-  PyObject *__pyx_t_9 = NULL;
+  PyObject *__pyx_t_8 = NULL;
+  int __pyx_t_9;
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
-  PyObject *(*__pyx_t_12)(PyObject *);
-  int __pyx_t_13;
+  PyObject *__pyx_t_12 = NULL;
+  PyObject *(*__pyx_t_13)(PyObject *);
   int __pyx_t_14;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -122915,7 +123795,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *         last_ns = None
  */
   __pyx_t_1 = (__pyx_v_self->_extensions == ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":251
  *         cdef dict d
@@ -122958,24 +123839,24 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *             if ns_utf is not last_ns or d is None:
  *                 last_ns = ns_utf
  */
-  __pyx_t_3 = 0;
+  __pyx_t_4 = 0;
   if (unlikely(((PyObject *)__pyx_v_self->_extensions) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems");
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_6 = __Pyx_dict_iterator(((PyObject *)__pyx_v_self->_extensions), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_4), (&__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
-  __Pyx_XDECREF(__pyx_t_2);
-  __pyx_t_2 = __pyx_t_6;
-  __pyx_t_6 = 0;
+  __pyx_t_7 = __Pyx_dict_iterator(((PyObject *)__pyx_v_self->_extensions), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_5), (&__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_3);
+  __pyx_t_3 = __pyx_t_7;
+  __pyx_t_7 = 0;
   while (1) {
-    __pyx_t_8 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_4, &__pyx_t_3, &__pyx_t_6, &__pyx_t_7, NULL, __pyx_t_5);
-    if (unlikely(__pyx_t_8 == 0)) break;
-    if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_5, &__pyx_t_4, &__pyx_t_7, &__pyx_t_8, NULL, __pyx_t_6);
+    if (unlikely(__pyx_t_9 == 0)) break;
+    if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
-    if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
-      PyObject* sequence = __pyx_t_6;
+    __Pyx_GOTREF(__pyx_t_8);
+    if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
+      PyObject* sequence = __pyx_t_7;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -122988,52 +123869,52 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
-        __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_11 = PyTuple_GET_ITEM(sequence, 1); 
       } else {
-        __pyx_t_9 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_10 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_10 = PyList_GET_ITEM(sequence, 0); 
+        __pyx_t_11 = PyList_GET_ITEM(sequence, 1); 
       }
-      __Pyx_INCREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_10);
+      __Pyx_INCREF(__pyx_t_11);
       #else
-      __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_9);
-      __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_10);
+      __pyx_t_11 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_11);
       #endif
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_11 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_11);
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
-      index = 0; __pyx_t_9 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_9);
-      index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed;
+      __pyx_t_12 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_12);
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __pyx_t_13 = Py_TYPE(__pyx_t_12)->tp_iternext;
+      index = 0; __pyx_t_10 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_10);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_12 = NULL;
-      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+      index = 1; __pyx_t_11 = __pyx_t_13(__pyx_t_12); if (unlikely(!__pyx_t_11)) goto __pyx_L6_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_11);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_13(__pyx_t_12), 2) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_13 = NULL;
+      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
       goto __pyx_L7_unpacking_done;
       __pyx_L6_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-      __pyx_t_12 = NULL;
+      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+      __pyx_t_13 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
     __Pyx_XDECREF(__pyx_v_ns_utf);
-    __pyx_v_ns_utf = __pyx_t_9;
-    __pyx_t_9 = 0;
-    __Pyx_XDECREF(__pyx_v_name_utf);
-    __pyx_v_name_utf = __pyx_t_10;
+    __pyx_v_ns_utf = __pyx_t_10;
     __pyx_t_10 = 0;
+    __Pyx_XDECREF(__pyx_v_name_utf);
+    __pyx_v_name_utf = __pyx_t_11;
+    __pyx_t_11 = 0;
     __Pyx_XDECREF(__pyx_v_function);
-    __pyx_v_function = __pyx_t_7;
-    __pyx_t_7 = 0;
+    __pyx_v_function = __pyx_t_8;
+    __pyx_t_8 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":255
  *         d = None
@@ -123042,12 +123923,12 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *                 last_ns = ns_utf
  *                 dict_result = python.PyDict_GetItem(
  */
-    __pyx_t_1 = (__pyx_v_ns_utf != __pyx_v_last_ns);
-    if (!__pyx_t_1) {
-      __pyx_t_13 = (__pyx_v_d == ((PyObject*)Py_None));
-      __pyx_t_14 = __pyx_t_13;
+    __pyx_t_2 = (__pyx_v_ns_utf != __pyx_v_last_ns);
+    if (!(__pyx_t_2 != 0)) {
+      __pyx_t_1 = (__pyx_v_d == ((PyObject*)Py_None));
+      __pyx_t_14 = (__pyx_t_1 != 0);
     } else {
-      __pyx_t_14 = __pyx_t_1;
+      __pyx_t_14 = (__pyx_t_2 != 0);
     }
     if (__pyx_t_14) {
 
@@ -123069,10 +123950,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *                 if dict_result is not NULL:
  *                     d = <dict>dict_result
  */
-      __pyx_t_7 = ((PyObject *)__pyx_v_self->_function_cache);
-      __Pyx_INCREF(__pyx_t_7);
-      __pyx_v_dict_result = PyDict_GetItem(__pyx_t_7, __pyx_v_ns_utf);
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      __pyx_t_8 = ((PyObject *)__pyx_v_self->_function_cache);
+      __Pyx_INCREF(__pyx_t_8);
+      __pyx_v_dict_result = PyDict_GetItem(__pyx_t_8, __pyx_v_ns_utf);
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":259
  *                 dict_result = python.PyDict_GetItem(
@@ -123081,7 +123962,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *                     d = <dict>dict_result
  *                 else:
  */
-      __pyx_t_14 = (__pyx_v_dict_result != NULL);
+      __pyx_t_14 = ((__pyx_v_dict_result != NULL) != 0);
       if (__pyx_t_14) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":260
@@ -123105,11 +123986,11 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *                     self._function_cache[ns_utf] = d
  *             d[name_utf] = function
  */
-        __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(((PyObject *)__pyx_t_7));
+        __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(((PyObject *)__pyx_t_8));
         __Pyx_DECREF(((PyObject *)__pyx_v_d));
-        __pyx_v_d = ((PyObject*)__pyx_t_7);
-        __pyx_t_7 = 0;
+        __pyx_v_d = ((PyObject*)__pyx_t_8);
+        __pyx_t_8 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":263
  *                 else:
@@ -123151,17 +124032,17 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  */
     __pyx_v_reg_func(__pyx_v_ctxt, __pyx_v_name_utf, __pyx_v_ns_utf);
   }
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_7);
-  __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_XDECREF(__pyx_t_10);
   __Pyx_XDECREF(__pyx_t_11);
+  __Pyx_XDECREF(__pyx_t_12);
   __Pyx_AddTraceback("lxml.etree._BaseContext.registerLocalFunctions", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -123499,7 +124380,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterGlobalFunctions(s
  *                     unreg_func(ctxt, name_utf, ns_utf)
  */
       __pyx_t_11 = (__pyx_v_self->_extensions == ((PyObject*)Py_None));
-      if (!__pyx_t_11) {
+      if (!(__pyx_t_11 != 0)) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":278
  *             for name_utf in functions:
@@ -123522,9 +124403,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterGlobalFunctions(s
         }
         __pyx_t_12 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_v_self->_extensions), Py_NE)); if (unlikely(__pyx_t_12 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-        __pyx_t_13 = __pyx_t_12;
+        __pyx_t_13 = (__pyx_t_12 != 0);
       } else {
-        __pyx_t_13 = __pyx_t_11;
+        __pyx_t_13 = (__pyx_t_11 != 0);
       }
       if (__pyx_t_13) {
 
@@ -123594,7 +124475,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__find_cached_function(struc
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_function_cache);
   __Pyx_INCREF(__pyx_t_1);
-  if ((__pyx_v_c_ns_uri == NULL)) {
+  if (((__pyx_v_c_ns_uri == NULL) != 0)) {
     __Pyx_INCREF(Py_None);
     __pyx_t_2 = Py_None;
   } else {
@@ -123614,7 +124495,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__find_cached_function(struc
  *             dict_result = python.PyDict_GetItem(
  *                 <object>c_dict, <unsigned char*>c_name)
  */
-  __pyx_t_4 = (__pyx_v_c_dict != NULL);
+  __pyx_t_4 = ((__pyx_v_c_dict != NULL) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":293
@@ -123636,7 +124517,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__find_cached_function(struc
  *                 return <object>dict_result
  *         return None
  */
-    __pyx_t_4 = (__pyx_v_dict_result != NULL);
+    __pyx_t_4 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":295
@@ -123709,7 +124590,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
   xmlNode *__pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -123722,7 +124604,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  *                 raise XPathError, \
  *                     u"XPath context is only usable during the evaluation"
  */
-  __pyx_t_1 = (__pyx_v_self->_xpathCtxt == NULL);
+  __pyx_t_1 = ((__pyx_v_self->_xpathCtxt == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":304
@@ -123734,7 +124616,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __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_314), 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 = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -123758,7 +124640,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  *                 raise XPathError, u"no context node"
  *             if c_node.doc != self._xpathCtxt.doc:
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":308
@@ -123770,7 +124652,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __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_315), 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 = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
@@ -123784,7 +124666,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  *                 raise XPathError, \
  *                     u"document-external context nodes are not supported"
  */
-  __pyx_t_1 = (__pyx_v_c_node->doc != __pyx_v_self->_xpathCtxt->doc);
+  __pyx_t_1 = ((__pyx_v_c_node->doc != __pyx_v_self->_xpathCtxt->doc) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":310
@@ -123796,7 +124678,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __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_316), 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 = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
@@ -123811,7 +124693,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  *             return _elementFactory(self._doc, c_node)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_doc) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_4 = (__pyx_t_1 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":313
  *                     u"document-external context nodes are not supported"
@@ -123822,7 +124705,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __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_317), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_318), 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;
@@ -123839,18 +124722,18 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_2 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._BaseContext.context_node.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -123882,7 +124765,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12eval_context___get__(str
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -123896,7 +124780,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12eval_context___get__(str
  *             return self._eval_context_dict
  */
   __pyx_t_1 = (__pyx_v_self->_eval_context_dict == ((PyObject*)Py_None));
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":319
  *         def __get__(self):
@@ -123905,13 +124790,13 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12eval_context___get__(str
  *             return self._eval_context_dict
  * 
  */
-    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __Pyx_GOTREF(__pyx_v_self->_eval_context_dict);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_eval_context_dict));
-    __pyx_v_self->_eval_context_dict = ((PyObject*)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_self->_eval_context_dict = ((PyObject*)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -123931,7 +124816,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12eval_context___get__(str
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._BaseContext.eval_context.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -124005,8 +124890,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
   int __pyx_t_6;
   Py_ssize_t __pyx_t_7;
@@ -124025,7 +124910,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
  *             self._temp_documents.add((<_Element>obj)._doc)
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":340
  *         cdef _Element element
@@ -124034,7 +124920,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
  *             self._temp_documents.add((<_Element>obj)._doc)
  *             return
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_10_TempStore_add(__pyx_v_self->_temp_refs, __pyx_v_obj); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_10_TempStore_add(__pyx_v_self->_temp_refs, __pyx_v_obj); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":341
  *         if isinstance(obj, _Element):
@@ -124047,10 +124933,10 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add");
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = ((PyObject *)((struct LxmlElement *)__pyx_v_obj)->_doc);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_4 = PySet_Add(__pyx_v_self->_temp_documents, __pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_4 = ((PyObject *)((struct LxmlElement *)__pyx_v_obj)->_doc);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_5 = PySet_Add(__pyx_v_self->_temp_documents, __pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 341; __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":342
  *             self._temp_refs.add(obj)
@@ -124072,12 +124958,12 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
  *             return
  *         for o in obj:
  */
-  __pyx_t_1 = _isString(__pyx_v_obj);
-  if (!__pyx_t_1) {
-    __pyx_t_5 = (!PySequence_Check(__pyx_v_obj));
-    __pyx_t_6 = __pyx_t_5;
-  } else {
+  __pyx_t_2 = (_isString(__pyx_v_obj) != 0);
+  if (!__pyx_t_2) {
+    __pyx_t_1 = ((!(PySequence_Check(__pyx_v_obj) != 0)) != 0);
     __pyx_t_6 = __pyx_t_1;
+  } else {
+    __pyx_t_6 = __pyx_t_2;
   }
   if (__pyx_t_6) {
 
@@ -124103,30 +124989,30 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
  *                 #print "Holding element:", <int>element._c_node
  */
   if (PyList_CheckExact(__pyx_v_obj) || PyTuple_CheckExact(__pyx_v_obj)) {
-    __pyx_t_3 = __pyx_v_obj; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
+    __pyx_t_4 = __pyx_v_obj; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0;
     __pyx_t_8 = NULL;
   } else {
-    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_obj); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext;
+    __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_obj); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
   }
   for (;;) {
-    if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_3)) {
-      if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
+    if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_4)) {
+      if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-    } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_3)) {
-      if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
+    } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_4)) {
+      if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_9 = __pyx_t_8(__pyx_t_3);
+      __pyx_t_9 = __pyx_t_8(__pyx_t_4);
       if (unlikely(!__pyx_t_9)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
@@ -124148,7 +125034,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
  *                 self._temp_refs.add(o)
  */
     __pyx_t_6 = __Pyx_TypeCheck(__pyx_v_o, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-    if (__pyx_t_6) {
+    __pyx_t_2 = (__pyx_t_6 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":348
  *             if isinstance(o, _Element):
@@ -124157,7 +125044,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
  *                 #print "Holding document:", <int>element._doc._c_doc
  *                 self._temp_documents.add((<_Element>o)._doc)
  */
-      __pyx_t_2 = __pyx_f_4lxml_5etree_10_TempStore_add(__pyx_v_self->_temp_refs, __pyx_v_o); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_10_TempStore_add(__pyx_v_self->_temp_refs, __pyx_v_o); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":350
  *                 self._temp_refs.add(o)
@@ -124172,18 +125059,18 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
       }
       __pyx_t_9 = ((PyObject *)((struct LxmlElement *)__pyx_v_o)->_doc);
       __Pyx_INCREF(__pyx_t_9);
-      __pyx_t_4 = PySet_Add(__pyx_v_self->_temp_documents, __pyx_t_9); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySet_Add(__pyx_v_self->_temp_documents, __pyx_t_9); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L6;
     }
     __pyx_L6:;
   }
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_9);
   __Pyx_AddTraceback("lxml.etree._BaseContext._hold", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
@@ -124252,11 +125139,11 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree_12_BaseContext__findDocumentFor
  *         return None
  */
     __pyx_t_4 = (((PyObject *)__pyx_v_doc) != Py_None);
-    if (__pyx_t_4) {
-      __pyx_t_5 = (__pyx_v_doc->_c_doc == __pyx_v_c_node->doc);
+    if ((__pyx_t_4 != 0)) {
+      __pyx_t_5 = ((__pyx_v_doc->_c_doc == __pyx_v_c_node->doc) != 0);
       __pyx_t_6 = __pyx_t_5;
     } else {
-      __pyx_t_6 = __pyx_t_4;
+      __pyx_t_6 = (__pyx_t_4 != 0);
     }
     if (__pyx_t_6) {
 
@@ -124321,7 +125208,8 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
   PyObject *__pyx_t_3 = NULL;
   Py_ssize_t __pyx_t_4;
   int __pyx_t_5;
-  xmlErrorLevel __pyx_t_6;
+  int __pyx_t_6;
+  xmlErrorLevel __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -124337,7 +125225,7 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
  *         error.message = c_error.message
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_error->message != NULL);
+  __pyx_t_1 = ((__pyx_v_c_error->message != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":400
@@ -124381,7 +125269,8 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __pyx_t_1 = (__pyx_v_xpath_code < __pyx_t_4);
     }
-    if (__pyx_t_1) {
+    __pyx_t_5 = (__pyx_t_1 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":404
  *         xpath_code = c_error.code - xmlerror.XML_XPATH_EXPRESSION_OK
@@ -124422,8 +125311,8 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
  *     error.code = c_error.code
  *     error.level = c_error.level
  */
-  __pyx_t_5 = __pyx_v_c_error->domain;
-  __pyx_v_error.domain = __pyx_t_5;
+  __pyx_t_6 = __pyx_v_c_error->domain;
+  __pyx_v_error.domain = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":408
  *             error.message = b"unknown error"
@@ -124432,8 +125321,8 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
  *     error.level = c_error.level
  *     error.line = c_error.line
  */
-  __pyx_t_5 = __pyx_v_c_error->code;
-  __pyx_v_error.code = __pyx_t_5;
+  __pyx_t_6 = __pyx_v_c_error->code;
+  __pyx_v_error.code = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":409
  *     error.domain = c_error.domain
@@ -124442,8 +125331,8 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
  *     error.line = c_error.line
  *     error.int2 = c_error.int1 # column
  */
-  __pyx_t_6 = __pyx_v_c_error->level;
-  __pyx_v_error.level = __pyx_t_6;
+  __pyx_t_7 = __pyx_v_c_error->level;
+  __pyx_v_error.level = __pyx_t_7;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":410
  *     error.code = c_error.code
@@ -124452,8 +125341,8 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
  *     error.int2 = c_error.int1 # column
  *     error.file = c_error.file
  */
-  __pyx_t_5 = __pyx_v_c_error->line;
-  __pyx_v_error.line = __pyx_t_5;
+  __pyx_t_6 = __pyx_v_c_error->line;
+  __pyx_v_error.line = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":411
  *     error.level = c_error.level
@@ -124462,8 +125351,8 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
  *     error.file = c_error.file
  * 
  */
-  __pyx_t_5 = __pyx_v_c_error->int1;
-  __pyx_v_error.int2 = __pyx_t_5;
+  __pyx_t_6 = __pyx_v_c_error->int1;
+  __pyx_v_error.int2 = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":412
  *     error.line = c_error.line
@@ -124513,7 +125402,7 @@ static void __pyx_f_4lxml_5etree__receiveXPathError(void *__pyx_v_c_context, xml
  *         _forwardError(NULL, error)
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_c_context == NULL);
+  __pyx_t_1 = ((__pyx_v_c_context == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":420
@@ -124663,7 +125552,7 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
  *         for function_name, xpath_name in function_mapping.items():
  *             functions[(ns, xpath_name)] = getattr(module, function_name)
  */
-  __pyx_t_2 = PyDict_Check(__pyx_v_function_mapping);
+  __pyx_t_2 = (PyDict_Check(__pyx_v_function_mapping) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":440
@@ -124805,7 +125694,8 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
  *                                  if not name.startswith(u'_') ]
  */
     __pyx_t_2 = (__pyx_v_function_mapping == Py_None);
-    if (__pyx_t_2) {
+    __pyx_t_10 = (__pyx_t_2 != 0);
+    if (__pyx_t_10) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":444
  *     else:
@@ -124866,13 +125756,13 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
  */
         __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_318), 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_319), 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;}
+        __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-        __pyx_t_10 = (!__pyx_t_2);
-        if (__pyx_t_10) {
+        __pyx_t_2 = ((!__pyx_t_10) != 0);
+        if (__pyx_t_2) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":444
  *     else:
@@ -125069,7 +125959,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -125082,7 +125973,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
  *             return value
  *         elif python.PyList_Check(value):
  */
-  __pyx_t_1 = _isString(__pyx_v_value);
+  __pyx_t_1 = (_isString(__pyx_v_value) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":462
@@ -125106,7 +125997,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
  *             # node set: take recursive text concatenation of first element
  *             if python.PyList_GET_SIZE(value) == 0:
  */
-  __pyx_t_1 = PyList_Check(__pyx_v_value);
+  __pyx_t_1 = (PyList_Check(__pyx_v_value) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":465
@@ -125116,7 +126007,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
  *                 return u''
  *             firstnode = value[0]
  */
-    __pyx_t_1 = (PyList_GET_SIZE(__pyx_v_value) == 0);
+    __pyx_t_1 = ((PyList_GET_SIZE(__pyx_v_value) == 0) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":466
@@ -125153,7 +126044,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
  *                 return firstnode
  *             elif isinstance(firstnode, _Element):
  */
-    __pyx_t_1 = _isString(__pyx_v_firstnode);
+    __pyx_t_1 = (_isString(__pyx_v_firstnode) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":469
@@ -125178,7 +126069,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
  *                 if c_text is NULL:
  */
     __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_firstnode, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-    if (__pyx_t_1) {
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":471
  *                 return firstnode
@@ -125196,8 +126088,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
  *                     raise MemoryError()
  *                 try:
  */
-      __pyx_t_1 = (__pyx_v_c_text == NULL);
-      if (__pyx_t_1) {
+      __pyx_t_3 = ((__pyx_v_c_text == NULL) != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":473
  *                 c_text = tree.xmlNodeGetContent((<_Element>firstnode)._c_node)
@@ -125288,11 +126180,11 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
       __Pyx_INCREF(__pyx_v_firstnode);
       PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_firstnode);
       __Pyx_GIVEREF(__pyx_v_firstnode);
-      __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-      __pyx_r = __pyx_t_3;
-      __pyx_t_3 = 0;
+      __pyx_r = __pyx_t_4;
+      __pyx_t_4 = 0;
       goto __pyx_L0;
     }
     __pyx_L5:;
@@ -125308,14 +126200,14 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
  *     cdef _compile(self, rexp, ignore_case):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 481; __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[7]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_value);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_value);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_value);
     __Pyx_GIVEREF(__pyx_v_value);
-    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
@@ -125326,7 +126218,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(CYTHON_UNUSED
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._ExsltRegExp._make_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -125411,7 +126303,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__compile(struct __pyx_obj_4
  *             return <object>c_result
  *         py_flags = re.UNICODE
  */
-  __pyx_t_2 = (__pyx_v_c_result != NULL);
+  __pyx_t_2 = ((__pyx_v_c_result != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":489
@@ -125633,6 +126525,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_2test(struct __pyx_obj_4lx
   int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -125702,7 +126595,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_2test(struct __pyx_obj_4lx
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_t_2 = (__pyx_t_4 == Py_None);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (__pyx_t_2) {
+  __pyx_t_5 = (__pyx_t_2 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":502
  *         rexpc = self._compile(rexp, u'i' in flags)
@@ -125856,8 +126750,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  PyObject *__pyx_t_4 = NULL;
-  int __pyx_t_5;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   Py_ssize_t __pyx_t_6;
   PyObject *(*__pyx_t_7)(PyObject *);
   PyObject *__pyx_t_8 = NULL;
@@ -125919,7 +126813,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *             if not results:
  */
   __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_n_u__g), __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_2) {
+  __pyx_t_4 = (__pyx_t_2 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":512
  *         rexpc = self._compile(rexp, u'i' in flags)
@@ -125935,12 +126830,12 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
     __Pyx_INCREF(__pyx_v_s);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s);
     __Pyx_GIVEREF(__pyx_v_s);
-    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    __pyx_v_results = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __pyx_v_results = __pyx_t_5;
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":513
  *         if u'g' in flags:
@@ -125949,9 +126844,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *                 return ()
  *         else:
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_results); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = (!__pyx_t_2);
-    if (__pyx_t_5) {
+    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_results); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((!__pyx_t_4) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":514
  *             results = rexpc.findall(s)
@@ -125978,16 +126873,16 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *             if not result:
  *                 return ()
  */
-    __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_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_rexpc, __pyx_n_s__search); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __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);
     __Pyx_INCREF(__pyx_v_s);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_s);
     __Pyx_GIVEREF(__pyx_v_s);
-    __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
     __pyx_v_result = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -125999,9 +126894,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *                 return ()
  *             results = [ result.group() ]
  */
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_2 = (!__pyx_t_5);
-    if (__pyx_t_2) {
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_result); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((!__pyx_t_2) != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":518
  *             result = rexpc.search(s)
@@ -126049,19 +126944,19 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
     __Pyx_GOTREF(__pyx_t_3);
     __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_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_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_320), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __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(1); 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);
-    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
-    __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_t_4 = 0;
-    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), 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);
+    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_5);
+    __pyx_t_5 = 0;
+    __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   }
   __pyx_L3:;
 
@@ -126072,10 +126967,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *         root = Element(u'matches')
  *         join_groups = u''.join
  */
-  __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __pyx_v_result_list = ((PyObject*)__pyx_t_4);
-  __pyx_t_4 = 0;
+  __pyx_t_5 = PyList_New(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_v_result_list = ((PyObject*)__pyx_t_5);
+  __pyx_t_5 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":522
  *             results.extend( result.groups(u'') )
@@ -126084,11 +126979,11 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *         join_groups = u''.join
  *         for s_match in results:
  */
-  __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_320), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_321), 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_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __pyx_v_root = __pyx_t_1;
   __pyx_t_1 = 0;
 
@@ -126123,31 +127018,31 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
     if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_1)) {
       if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_1)) {
       if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_4 = __pyx_t_7(__pyx_t_1);
-      if (unlikely(!__pyx_t_4)) {
+      __pyx_t_5 = __pyx_t_7(__pyx_t_1);
+      if (unlikely(!__pyx_t_5)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
           else {__pyx_filename = __pyx_f[7]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
-      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_GOTREF(__pyx_t_5);
     }
     __Pyx_XDECREF(__pyx_v_s_match);
-    __pyx_v_s_match = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __pyx_v_s_match = __pyx_t_5;
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":525
  *         join_groups = u''.join
@@ -126156,8 +127051,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *                 s_match = join_groups(s_match)
  *             elem = SubElement(root, u'match')
  */
-    __pyx_t_2 = PyTuple_CheckExact(__pyx_v_s_match);
-    if (__pyx_t_2) {
+    __pyx_t_4 = (PyTuple_CheckExact(__pyx_v_s_match) != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":526
  *         for s_match in results:
@@ -126166,14 +127061,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  *             elem = SubElement(root, u'match')
  *             elem.text = s_match
  */
-      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 526; __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[7]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v_s_match);
-      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_s_match);
+      PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_s_match);
       __Pyx_GIVEREF(__pyx_v_s_match);
-      __pyx_t_3 = PyObject_Call(__pyx_v_join_groups, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_Call(__pyx_v_join_groups, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_v_s_match);
       __pyx_v_s_match = __pyx_t_3;
       __pyx_t_3 = 0;
@@ -126190,18 +127085,18 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  */
     __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);
+    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_root);
-    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_root);
+    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_root);
     __Pyx_GIVEREF(__pyx_v_root);
     __Pyx_INCREF(((PyObject *)__pyx_n_u__match));
-    PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_n_u__match));
+    PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_n_u__match));
     __Pyx_GIVEREF(((PyObject *)__pyx_n_u__match));
-    __pyx_t_8 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_v_elem);
     __pyx_v_elem = __pyx_t_8;
     __pyx_t_8 = 0;
@@ -126243,7 +127138,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.etree._ExsltRegExp.match", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
@@ -126365,7 +127260,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_6replace(struct __pyx_obj_
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -126437,7 +127333,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_6replace(struct __pyx_obj_
  *         else:
  */
   __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_n_u__g), __pyx_v_flags, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_2) {
+  __pyx_t_4 = (__pyx_t_2 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":538
  *         rexpc = self._compile(rexp, u'i' in flags)
@@ -126474,21 +127371,21 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_6replace(struct __pyx_obj_
   __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);
-  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 541; __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[7]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(__pyx_v_replacement);
-  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_replacement);
+  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_replacement);
   __Pyx_GIVEREF(__pyx_v_replacement);
   __Pyx_INCREF(__pyx_v_s);
-  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_s);
+  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_s);
   __Pyx_GIVEREF(__pyx_v_s);
-  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_1);
+  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); 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);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
   goto __pyx_L0;
@@ -126498,7 +127395,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_6replace(struct __pyx_obj_
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._ExsltRegExp.replace", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -126536,8 +127433,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__register_in_context(struct
  *         context._addLocalExtensionFunction(ns, b"test",    self.test)
  *         context._addLocalExtensionFunction(ns, b"match",   self.match)
  */
-  __Pyx_INCREF(((PyObject *)__pyx_kp_b_321));
-  __pyx_v_ns = __pyx_kp_b_321;
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_322));
+  __pyx_v_ns = __pyx_kp_b_322;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":545
  *     cdef _register_in_context(self, _BaseContext context):
@@ -126604,16 +127501,16 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
   xmlXPathObject *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
-  double __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
+  double __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  Py_ssize_t __pyx_t_8;
-  PyObject *(*__pyx_t_9)(PyObject *);
-  PyObject *__pyx_t_10 = NULL;
-  int __pyx_t_11;
+  PyObject *__pyx_t_8 = NULL;
+  Py_ssize_t __pyx_t_9;
+  PyObject *(*__pyx_t_10)(PyObject *);
+  PyObject *__pyx_t_11 = NULL;
   int __pyx_t_12;
   PyObject *__pyx_t_13 = NULL;
   int __pyx_lineno = 0;
@@ -126640,7 +127537,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *     if isinstance(obj, bytes):
  */
   __pyx_t_1 = PyUnicode_Check(__pyx_v_obj); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":560
  * 
@@ -126649,11 +127547,11 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *     if isinstance(obj, bytes):
  *         # libxml2 copies the string value
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_obj)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_obj)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_v_obj);
-    __pyx_v_obj = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_v_obj = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -126665,7 +127563,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *         # libxml2 copies the string value
  *         return xpath.xmlXPathNewCString(_cstr(obj))
  */
-  __pyx_t_1 = PyBytes_Check(__pyx_v_obj); 
+  __pyx_t_2 = PyBytes_Check(__pyx_v_obj); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":563
@@ -126688,11 +127587,12 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *         return xpath.xmlXPathNewBoolean(obj)
  *     if python.PyNumber_Check(obj):
  */
-  __pyx_t_2 = ((PyObject*)&PyBool_Type);
-  __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_1 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_2); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  if (__pyx_t_1) {
+  __pyx_t_3 = ((PyObject*)&PyBool_Type);
+  __Pyx_INCREF(__pyx_t_3);
+  __pyx_t_1 = PyObject_IsInstance(__pyx_v_obj, __pyx_t_3); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":565
  *         return xpath.xmlXPathNewCString(_cstr(obj))
@@ -126701,8 +127601,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *     if python.PyNumber_Check(obj):
  *         return xpath.xmlXPathNewFloat(obj)
  */
-    __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_v_obj); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_r = xmlXPathNewBoolean(__pyx_t_3);
+    __pyx_t_4 = __Pyx_PyInt_AsInt(__pyx_v_obj); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_r = xmlXPathNewBoolean(__pyx_t_4);
     goto __pyx_L0;
     goto __pyx_L5;
   }
@@ -126715,8 +127615,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *         return xpath.xmlXPathNewFloat(obj)
  *     if obj is None:
  */
-  __pyx_t_1 = PyNumber_Check(__pyx_v_obj);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (PyNumber_Check(__pyx_v_obj) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":567
  *         return xpath.xmlXPathNewBoolean(obj)
@@ -126725,8 +127625,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *     if obj is None:
  *         resultSet = xpath.xmlXPathNodeSetCreate(NULL)
  */
-    __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_obj); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_r = xmlXPathNewFloat(__pyx_t_4);
+    __pyx_t_5 = __pyx_PyFloat_AsDouble(__pyx_v_obj); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_r = xmlXPathNewFloat(__pyx_t_5);
     goto __pyx_L0;
     goto __pyx_L6;
   }
@@ -126739,7 +127639,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *         resultSet = xpath.xmlXPathNodeSetCreate(NULL)
  *     elif isinstance(obj, _Element):
  */
-  __pyx_t_1 = (__pyx_v_obj == Py_None);
+  __pyx_t_2 = (__pyx_v_obj == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":569
@@ -126761,7 +127662,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *     elif python.PySequence_Check(obj):
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":571
  *         resultSet = xpath.xmlXPathNodeSetCreate(NULL)
@@ -126781,8 +127683,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *         resultSet = xpath.xmlXPathNodeSetCreate(NULL)
  *         try:
  */
-  __pyx_t_1 = PySequence_Check(__pyx_v_obj);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (PySequence_Check(__pyx_v_obj) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":573
  *         resultSet = xpath.xmlXPathNodeSetCreate((<_Element>obj)._c_node)
@@ -126801,10 +127703,10 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                 if isinstance(value, _Element):
  */
     {
-      __Pyx_ExceptionSave(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7);
-      __Pyx_XGOTREF(__pyx_t_5);
+      __Pyx_ExceptionSave(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8);
       __Pyx_XGOTREF(__pyx_t_6);
       __Pyx_XGOTREF(__pyx_t_7);
+      __Pyx_XGOTREF(__pyx_t_8);
       /*try:*/ {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":575
@@ -126815,42 +127717,42 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                     if context is not None:
  */
         if (PyList_CheckExact(__pyx_v_obj) || PyTuple_CheckExact(__pyx_v_obj)) {
-          __pyx_t_2 = __pyx_v_obj; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;
-          __pyx_t_9 = NULL;
+          __pyx_t_3 = __pyx_v_obj; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
+          __pyx_t_10 = NULL;
         } else {
-          __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_obj); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
-          __Pyx_GOTREF(__pyx_t_2);
-          __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext;
+          __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_obj); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+          __Pyx_GOTREF(__pyx_t_3);
+          __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
         }
         for (;;) {
-          if (!__pyx_t_9 && PyList_CheckExact(__pyx_t_2)) {
-            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break;
+          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_10 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+            __pyx_t_11 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
             #else
-            __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+            __pyx_t_11 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
             #endif
-          } else if (!__pyx_t_9 && PyTuple_CheckExact(__pyx_t_2)) {
-            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
+          } 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_10 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+            __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
             #else
-            __pyx_t_10 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+            __pyx_t_11 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
             #endif
           } else {
-            __pyx_t_10 = __pyx_t_9(__pyx_t_2);
-            if (unlikely(!__pyx_t_10)) {
+            __pyx_t_11 = __pyx_t_10(__pyx_t_3);
+            if (unlikely(!__pyx_t_11)) {
               if (PyErr_Occurred()) {
                 if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
                 else {__pyx_filename = __pyx_f[7]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
               }
               break;
             }
-            __Pyx_GOTREF(__pyx_t_10);
+            __Pyx_GOTREF(__pyx_t_11);
           }
           __Pyx_XDECREF(__pyx_v_value);
-          __pyx_v_value = __pyx_t_10;
-          __pyx_t_10 = 0;
+          __pyx_v_value = __pyx_t_11;
+          __pyx_t_11 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":576
  *         try:
@@ -126859,7 +127761,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                     if context is not None:
  *                         context._hold(value)
  */
-          __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
+          __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree__Element)); 
+          __pyx_t_1 = (__pyx_t_2 != 0);
           if (__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":577
@@ -126870,7 +127773,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                     xpath.xmlXPathNodeSetAdd(resultSet, (<_Element>value)._c_node)
  */
             __pyx_t_1 = (((PyObject *)__pyx_v_context) != Py_None);
-            if (__pyx_t_1) {
+            __pyx_t_2 = (__pyx_t_1 != 0);
+            if (__pyx_t_2) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":578
  *                 if isinstance(value, _Element):
@@ -126879,9 +127783,9 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                     xpath.xmlXPathNodeSetAdd(resultSet, (<_Element>value)._c_node)
  *                 else:
  */
-              __pyx_t_10 = __pyx_f_4lxml_5etree_12_BaseContext__hold(__pyx_v_context, __pyx_v_value); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
-              __Pyx_GOTREF(__pyx_t_10);
-              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+              __pyx_t_11 = __pyx_f_4lxml_5etree_12_BaseContext__hold(__pyx_v_context, __pyx_v_value); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+              __Pyx_GOTREF(__pyx_t_11);
+              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
               goto __pyx_L19;
             }
             __pyx_L19:;
@@ -126905,12 +127809,12 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                         raise XPathResultError, \
  *                               u"Non-Element values not supported at this point - got %r" % value
  */
-            __pyx_t_1 = (((PyObject *)__pyx_v_context) == Py_None);
-            if (!__pyx_t_1) {
-              __pyx_t_11 = (((PyObject *)__pyx_v_doc) == Py_None);
-              __pyx_t_12 = __pyx_t_11;
+            __pyx_t_2 = (((PyObject *)__pyx_v_context) == Py_None);
+            if (!(__pyx_t_2 != 0)) {
+              __pyx_t_1 = (((PyObject *)__pyx_v_doc) == Py_None);
+              __pyx_t_12 = (__pyx_t_1 != 0);
             } else {
-              __pyx_t_12 = __pyx_t_1;
+              __pyx_t_12 = (__pyx_t_2 != 0);
             }
             if (__pyx_t_12) {
 
@@ -126921,8 +127825,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                               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_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);
+              __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+              __Pyx_GOTREF(__pyx_t_11);
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":583
  *                     if context is None or doc is None:
@@ -126931,10 +127835,10 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                     # support strings by appending text nodes to an Element
  *                     if isinstance(value, unicode):
  */
-              __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_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_323), __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;
+              __Pyx_Raise(__pyx_t_11, ((PyObject *)__pyx_t_13), 0, 0);
+              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
               __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
               {__pyx_filename = __pyx_f[7]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
               goto __pyx_L20;
@@ -126949,7 +127853,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                     if isinstance(value, bytes):
  */
             __pyx_t_12 = PyUnicode_Check(__pyx_v_value); 
-            if (__pyx_t_12) {
+            __pyx_t_2 = (__pyx_t_12 != 0);
+            if (__pyx_t_2) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":586
  *                     # support strings by appending text nodes to an Element
@@ -126974,7 +127879,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                         if fake_node is None:
  *                             fake_node = _makeElement("text-root", NULL, doc, None,
  */
-            __pyx_t_12 = PyBytes_Check(__pyx_v_value); 
+            __pyx_t_2 = PyBytes_Check(__pyx_v_value); 
+            __pyx_t_12 = (__pyx_t_2 != 0);
             if (__pyx_t_12) {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":588
@@ -126985,7 +127891,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                                                      None, None, None, None, None)
  */
               __pyx_t_12 = (((PyObject *)__pyx_v_fake_node) == Py_None);
-              if (__pyx_t_12) {
+              __pyx_t_2 = (__pyx_t_12 != 0);
+              if (__pyx_t_2) {
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":590
  *                         if fake_node is None:
@@ -126994,7 +127901,7 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                             context._hold(fake_node)
  *                         else:
  */
-                __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_t_13 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(((PyObject *)__pyx_kp_s_324), 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);
@@ -127030,8 +127937,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                                 raise MemoryError()
  *                             tree.xmlAddChild(fake_node._c_node, c_node)
  */
-                __pyx_t_12 = (__pyx_v_c_node == NULL);
-                if (__pyx_t_12) {
+                __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
+                if (__pyx_t_2) {
 
                   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":596
  *                             c_node = tree.xmlNewDocComment(doc._c_doc, <unsigned char*>"")
@@ -127083,8 +127990,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                             raise MemoryError()
  *                         tree.xmlAddChild(fake_node._c_node, c_node)
  */
-              __pyx_t_12 = (__pyx_v_c_node == NULL);
-              if (__pyx_t_12) {
+              __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
+              if (__pyx_t_2) {
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":601
  *                         c_node = tree.xmlNewDocText(doc._c_doc, _xcstr(value))
@@ -127136,27 +128043,27 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *         except:
  *             xpath.xmlXPathFreeNodeSet(resultSet)
  */
-              __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_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_325), __pyx_v_value); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+              __Pyx_GOTREF(((PyObject *)__pyx_t_11));
+              __Pyx_Raise(__pyx_t_13, ((PyObject *)__pyx_t_11), 0, 0);
               __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
-              __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
+              __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
               {__pyx_filename = __pyx_f[7]; __pyx_lineno = 605; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
             }
             __pyx_L22:;
           }
           __pyx_L18:;
         }
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       }
-      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_XDECREF(__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;
       goto __pyx_L15_try_end;
       __pyx_L8_error:;
       __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
-      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
-      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":607
  *                         raise XPathResultError, \
@@ -127167,9 +128074,9 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  */
       /*except:*/ {
         __Pyx_AddTraceback("lxml.etree._wrapXPathObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_10, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_GOTREF(__pyx_t_10);
+        if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_11, &__pyx_t_13) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __Pyx_GOTREF(__pyx_t_11);
         __Pyx_GOTREF(__pyx_t_13);
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":608
@@ -127188,28 +128095,28 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *     else:
  *         raise XPathResultError, u"Unknown return type: %s" % \
  */
-        __Pyx_GIVEREF(__pyx_t_2);
-        __Pyx_GIVEREF(__pyx_t_10);
+        __Pyx_GIVEREF(__pyx_t_3);
+        __Pyx_GIVEREF(__pyx_t_11);
         __Pyx_GIVEREF(__pyx_t_13);
-        __Pyx_ErrRestore(__pyx_t_2, __pyx_t_10, __pyx_t_13);
-        __pyx_t_2 = 0; __pyx_t_10 = 0; __pyx_t_13 = 0; 
+        __Pyx_ErrRestore(__pyx_t_3, __pyx_t_11, __pyx_t_13);
+        __pyx_t_3 = 0; __pyx_t_11 = 0; __pyx_t_13 = 0; 
         {__pyx_filename = __pyx_f[7]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
         goto __pyx_L9_exception_handled;
       }
       __pyx_L10_except_error:;
-      __Pyx_XGIVEREF(__pyx_t_5);
       __Pyx_XGIVEREF(__pyx_t_6);
       __Pyx_XGIVEREF(__pyx_t_7);
-      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
+      __Pyx_XGIVEREF(__pyx_t_8);
+      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
       goto __pyx_L1_error;
       __pyx_L9_exception_handled:;
-      __Pyx_XGIVEREF(__pyx_t_5);
       __Pyx_XGIVEREF(__pyx_t_6);
       __Pyx_XGIVEREF(__pyx_t_7);
-      __Pyx_ExceptionReset(__pyx_t_5, __pyx_t_6, __pyx_t_7);
+      __Pyx_XGIVEREF(__pyx_t_8);
+      __Pyx_ExceptionReset(__pyx_t_6, __pyx_t_7, __pyx_t_8);
       __pyx_L15_try_end:;
     }
     goto __pyx_L7;
@@ -127233,14 +128140,14 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *     return xpath.xmlXPathWrapNodeSet(resultSet)
  * 
  */
-    __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_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);
+    __pyx_t_11 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_obj)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_11));
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_326), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
+    __Pyx_Raise(__pyx_t_13, ((PyObject *)__pyx_t_3), 0, 0);
     __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L7:;
@@ -127258,8 +128165,8 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_10);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_11);
   __Pyx_XDECREF(__pyx_t_13);
   __Pyx_AddTraceback("lxml.etree._wrapXPathObject", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
@@ -127299,7 +128206,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         raise XPathResultError, u"Undefined xpath result"
  *     elif xpathObj.type == xpath.XPATH_NODESET:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_UNDEFINED);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_UNDEFINED) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":618
@@ -127311,7 +128218,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  */
     __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_326), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_327), 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;
@@ -127324,7 +128231,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         return _createNodeSetResult(xpathObj, doc, context)
  *     elif xpathObj.type == xpath.XPATH_BOOLEAN:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_NODESET);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_NODESET) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":620
@@ -127350,7 +128257,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         return xpathObj.boolval
  *     elif xpathObj.type == xpath.XPATH_NUMBER:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_BOOLEAN);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_BOOLEAN) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":622
@@ -127376,7 +128283,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         return xpathObj.floatval
  *     elif xpathObj.type == xpath.XPATH_STRING:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_NUMBER);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_NUMBER) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":624
@@ -127402,7 +128309,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         stringval = funicode(xpathObj.stringval)
  *         if context._build_smart_strings:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_STRING);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_STRING) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":626
@@ -127424,7 +128331,8 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *             stringval = _elementStringResultFactory(
  *                 stringval, None, None, 0)
  */
-    if (__pyx_v_context->_build_smart_strings) {
+    __pyx_t_1 = (__pyx_v_context->_build_smart_strings != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":629
  *         if context._build_smart_strings:
@@ -127463,7 +128371,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         raise NotImplementedError, u"XPATH_POINT"
  *     elif xpathObj.type == xpath.XPATH_RANGE:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_POINT);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_POINT) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":632
@@ -127485,7 +128393,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         raise NotImplementedError, u"XPATH_RANGE"
  *     elif xpathObj.type == xpath.XPATH_LOCATIONSET:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_RANGE);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_RANGE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":634
@@ -127507,7 +128415,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         raise NotImplementedError, u"XPATH_LOCATIONSET"
  *     elif xpathObj.type == xpath.XPATH_USERS:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_LOCATIONSET);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_LOCATIONSET) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":636
@@ -127529,7 +128437,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         raise NotImplementedError, u"XPATH_USERS"
  *     elif xpathObj.type == xpath.XPATH_XSLT_TREE:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_USERS);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_USERS) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":638
@@ -127551,7 +128459,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  *         return _createNodeSetResult(xpathObj, doc, context)
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->type == XPATH_XSLT_TREE);
+  __pyx_t_1 = ((__pyx_v_xpathObj->type == XPATH_XSLT_TREE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":640
@@ -127590,7 +128498,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
     __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_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_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_328), __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);
@@ -127657,7 +128565,7 @@ static PyObject *__pyx_f_4lxml_5etree__createNodeSetResult(xmlXPathObject *__pyx
  *         return result
  *     for i in range(xpathObj.nodesetval.nodeNr):
  */
-  __pyx_t_2 = (__pyx_v_xpathObj->nodesetval == NULL);
+  __pyx_t_2 = ((__pyx_v_xpathObj->nodesetval == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":651
@@ -127765,7 +128673,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *         if c_node.doc != doc._c_doc and c_node.doc._private is NULL:
  *             # XXX: works, but maybe not always the right thing to do?
  */
-  __pyx_t_1 = _isElement(__pyx_v_c_node);
+  __pyx_t_1 = (_isElement(__pyx_v_c_node) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":662
@@ -127775,9 +128683,9 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *             # XXX: works, but maybe not always the right thing to do?
  *             # XPath: only runs when extensions create or copy trees
  */
-    __pyx_t_1 = (__pyx_v_c_node->doc != __pyx_v_doc->_c_doc);
+    __pyx_t_1 = ((__pyx_v_c_node->doc != __pyx_v_doc->_c_doc) != 0);
     if (__pyx_t_1) {
-      __pyx_t_2 = (__pyx_v_c_node->doc->_private == NULL);
+      __pyx_t_2 = ((__pyx_v_c_node->doc->_private == NULL) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
@@ -127829,7 +128737,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *              c_node.type == tree.XML_CDATA_SECTION_NODE or \
  *              c_node.type == tree.XML_ATTRIBUTE_NODE:
  */
-  __pyx_t_3 = (__pyx_v_c_node->type == XML_TEXT_NODE);
+  __pyx_t_3 = ((__pyx_v_c_node->type == XML_TEXT_NODE) != 0);
   if (!__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":672
@@ -127839,7 +128747,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *              c_node.type == tree.XML_ATTRIBUTE_NODE:
  *         results.append(
  */
-    __pyx_t_1 = (__pyx_v_c_node->type == XML_CDATA_SECTION_NODE);
+    __pyx_t_1 = ((__pyx_v_c_node->type == XML_CDATA_SECTION_NODE) != 0);
     if (!__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":673
@@ -127849,7 +128757,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *         results.append(
  *             _buildElementStringResult(doc, c_node, context))
  */
-      __pyx_t_2 = (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE);
+      __pyx_t_2 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
       __pyx_t_6 = __pyx_t_2;
     } else {
       __pyx_t_6 = __pyx_t_1;
@@ -127893,7 +128801,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *         results.append( (funicodeOrNone((<xmlNs*>c_node).prefix),
  *                          funicodeOrNone((<xmlNs*>c_node).href)) )
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_NAMESPACE_DECL);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_NAMESPACE_DECL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":677
@@ -127939,7 +128847,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *             c_node.type == tree.XML_HTML_DOCUMENT_NODE:
  *         # ignored for everything but result tree fragments
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_DOCUMENT_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_DOCUMENT_NODE) != 0);
   if (!__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":680
@@ -127949,7 +128857,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *         # ignored for everything but result tree fragments
  *         if is_fragment:
  */
-    __pyx_t_3 = (__pyx_v_c_node->type == XML_HTML_DOCUMENT_NODE);
+    __pyx_t_3 = ((__pyx_v_c_node->type == XML_HTML_DOCUMENT_NODE) != 0);
     __pyx_t_6 = __pyx_t_3;
   } else {
     __pyx_t_6 = __pyx_t_1;
@@ -127963,7 +128871,8 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *             c_child = c_node.children
  *             while c_child is not NULL:
  */
-    if (__pyx_v_is_fragment) {
+    __pyx_t_6 = (__pyx_v_is_fragment != 0);
+    if (__pyx_t_6) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":683
  *         # ignored for everything but result tree fragments
@@ -127983,7 +128892,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *                 c_child = c_child.next
  */
       while (1) {
-        __pyx_t_6 = (__pyx_v_c_child != NULL);
+        __pyx_t_6 = ((__pyx_v_c_child != NULL) != 0);
         if (!__pyx_t_6) break;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":685
@@ -128020,7 +128929,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *             c_node.type == tree.XML_XINCLUDE_END:
  *         pass
  */
-  __pyx_t_6 = (__pyx_v_c_node->type == XML_XINCLUDE_START);
+  __pyx_t_6 = ((__pyx_v_c_node->type == XML_XINCLUDE_START) != 0);
   if (!__pyx_t_6) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":688
@@ -128030,7 +128939,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  *         pass
  *     else:
  */
-    __pyx_t_1 = (__pyx_v_c_node->type == XML_XINCLUDE_END);
+    __pyx_t_1 = ((__pyx_v_c_node->type == XML_XINCLUDE_END) != 0);
     __pyx_t_3 = __pyx_t_1;
   } else {
     __pyx_t_3 = __pyx_t_6;
@@ -128049,7 +128958,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  */
     __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_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_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_329), __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);
@@ -128092,7 +129001,7 @@ static void __pyx_f_4lxml_5etree__freeXPathObject(xmlXPathObject *__pyx_v_xpathO
  *         xpath.xmlXPathFreeNodeSet(xpathObj.nodesetval)
  *         xpathObj.nodesetval = NULL
  */
-  __pyx_t_1 = (__pyx_v_xpathObj->nodesetval != NULL);
+  __pyx_t_1 = ((__pyx_v_xpathObj->nodesetval != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":699
@@ -128156,9 +129065,9 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__instantiateElementFromXPath(xml
  *         # not from the context document and not from a fake document
  *         # either => may still be from a known document, e.g. one
  */
-  __pyx_t_1 = (__pyx_v_c_node->doc != __pyx_v_doc->_c_doc);
+  __pyx_t_1 = ((__pyx_v_c_node->doc != __pyx_v_doc->_c_doc) != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_c_node->doc->_private == NULL);
+    __pyx_t_2 = ((__pyx_v_c_node->doc->_private == NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -128186,7 +129095,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__instantiateElementFromXPath(xml
  *             # safety copy here
  */
     __pyx_t_3 = (((PyObject *)__pyx_v_doc) == Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_1 = (__pyx_t_3 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":714
  *             # not from a known document at all! => can only make a
@@ -128484,9 +129394,10 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -128510,7 +129421,8 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *     else:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_parent) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":743
  *     cdef bint is_attribute = attrname is not None
@@ -128531,12 +129443,12 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  * 
  *     if type(string_value) is bytes:
  */
-    if (!__pyx_v_is_tail) {
-      __pyx_t_1 = __pyx_v_is_attribute;
+    if (!(__pyx_v_is_tail != 0)) {
+      __pyx_t_2 = (__pyx_v_is_attribute != 0);
     } else {
-      __pyx_t_1 = __pyx_v_is_tail;
+      __pyx_t_2 = (__pyx_v_is_tail != 0);
     }
-    __pyx_v_is_text = (!__pyx_t_1);
+    __pyx_v_is_text = (!__pyx_t_2);
   }
   __pyx_L3:;
 
@@ -128547,7 +129459,8 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         result = _ElementStringResult(string_value)
  *         result._parent = parent
  */
-  __pyx_t_1 = (((PyObject *)Py_TYPE(__pyx_v_string_value)) == ((PyObject *)((PyObject*)(&PyBytes_Type))));
+  __pyx_t_2 = (((PyObject *)Py_TYPE(__pyx_v_string_value)) == ((PyObject *)((PyObject*)(&PyBytes_Type))));
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":748
@@ -128557,19 +129470,19 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         result._parent = parent
  *         result.is_attribute = is_attribute
  */
-    __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_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_330); 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);
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_string_value);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_string_value);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_string_value);
     __Pyx_GIVEREF(__pyx_v_string_value);
-    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __pyx_v_result = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_v_result = __pyx_t_5;
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":749
  *     if type(string_value) is bytes:
@@ -128587,10 +129500,10 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         result.is_tail = is_tail
  *         result.is_text = is_text
  */
-    __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 (__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;
+    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_attribute); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s__is_attribute, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 750; __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/extensions.pxi":751
  *         result._parent = parent
@@ -128599,10 +129512,10 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         result.is_text = is_text
  *         result.attrname = attrname
  */
-    __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 (__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;
+    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_tail); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s__is_tail, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 751; __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/extensions.pxi":752
  *         result.is_attribute = is_attribute
@@ -128611,10 +129524,10 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         result.attrname = attrname
  *         return result
  */
-    __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 (__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;
+    __pyx_t_5 = __Pyx_PyBool_FromLong(__pyx_v_is_text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_result, __pyx_n_s__is_text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 752; __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/extensions.pxi":753
  *         result.is_tail = is_tail
@@ -128647,16 +129560,16 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         uresult._parent = parent
  *         uresult.is_attribute = is_attribute
  */
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 756; __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[7]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_string_value);
-    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_string_value);
+    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_string_value);
     __Pyx_GIVEREF(__pyx_v_string_value);
-    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ElementUnicodeResult)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __pyx_v_uresult = ((struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ElementUnicodeResult)), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+    __pyx_v_uresult = ((struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":757
  *     else:
@@ -128678,13 +129591,13 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         uresult.is_tail = is_tail
  *         uresult.is_text = is_text
  */
-    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_is_attribute); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_attribute); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_uresult->is_attribute);
     __Pyx_DECREF(__pyx_v_uresult->is_attribute);
-    __pyx_v_uresult->is_attribute = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_uresult->is_attribute = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":759
  *         uresult._parent = parent
@@ -128693,13 +129606,13 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         uresult.is_text = is_text
  *         uresult.attrname = attrname
  */
-    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_is_tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_uresult->is_tail);
     __Pyx_DECREF(__pyx_v_uresult->is_tail);
-    __pyx_v_uresult->is_tail = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_uresult->is_tail = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":760
  *         uresult.is_attribute = is_attribute
@@ -128708,13 +129621,13 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         uresult.attrname = attrname
  *         return uresult
  */
-    __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_is_text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_is_text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_uresult->is_text);
     __Pyx_DECREF(__pyx_v_uresult->is_text);
-    __pyx_v_uresult->is_text = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_uresult->is_text = __pyx_t_4;
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":761
  *         uresult.is_tail = is_tail
@@ -128746,9 +129659,9 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._elementStringResultFactory", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -128813,7 +129726,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  *         attrname = _namespacedName(c_node)
  *         is_tail = 0
  */
-  __pyx_t_1 = (__pyx_v_c_node->type == XML_ATTRIBUTE_NODE);
+  __pyx_t_1 = ((__pyx_v_c_node->type == XML_ATTRIBUTE_NODE) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":772
@@ -128954,7 +129867,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  *         return value
  * 
  */
-  __pyx_t_1 = (!__pyx_v_context->_build_smart_strings);
+  __pyx_t_1 = ((!(__pyx_v_context->_build_smart_strings != 0)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":788
@@ -128979,7 +129892,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  *         # non-tail text or attribute text
  *         c_element = c_node.parent
  */
-  __pyx_t_1 = (__pyx_v_c_element == NULL);
+  __pyx_t_1 = ((__pyx_v_c_element == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":792
@@ -129000,9 +129913,9 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  * 
  */
     while (1) {
-      __pyx_t_1 = (__pyx_v_c_element != NULL);
+      __pyx_t_1 = ((__pyx_v_c_element != NULL) != 0);
       if (__pyx_t_1) {
-        __pyx_t_4 = (!_isElement(__pyx_v_c_element));
+        __pyx_t_4 = ((!(_isElement(__pyx_v_c_element) != 0)) != 0);
         __pyx_t_5 = __pyx_t_4;
       } else {
         __pyx_t_5 = __pyx_t_1;
@@ -129030,7 +129943,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  *         parent = _instantiateElementFromXPath(c_element, doc, context)
  * 
  */
-  __pyx_t_5 = (__pyx_v_c_element != NULL);
+  __pyx_t_5 = ((__pyx_v_c_element != NULL) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":797
@@ -129360,9 +130273,10 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
   xmlXPathContext *__pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
-  unsigned char *__pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_4;
+  unsigned char *__pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
+  PyObject *__pyx_t_7 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -129411,7 +130325,8 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  *     else:
  */
   __pyx_t_3 = (__pyx_v_function != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":841
  *     function = context._find_cached_function(rctxt.functionURI, rctxt.function)
@@ -129432,8 +130347,8 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  *             fref = u"{%s}%s" % ((<unsigned char*>rctxt.functionURI).decode('UTF-8'),
  *                                 (<unsigned char*>rctxt.function).decode('UTF-8'))
  */
-    __pyx_t_3 = (__pyx_v_rctxt->functionURI != NULL);
-    if (__pyx_t_3) {
+    __pyx_t_4 = ((__pyx_v_rctxt->functionURI != NULL) != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":844
  *     else:
@@ -129442,8 +130357,8 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  *                                 (<unsigned char*>rctxt.function).decode('UTF-8'))
  *         else:
  */
-      __pyx_t_4 = ((unsigned char *)__pyx_v_rctxt->functionURI);
-      __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_4), 0, strlen(((char *)__pyx_t_4)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = ((unsigned char *)__pyx_v_rctxt->functionURI);
+      __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_5), 0, strlen(((char *)__pyx_t_5)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":845
@@ -129453,24 +130368,24 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  *         else:
  *             fref = (<unsigned char*>rctxt.function).decode('UTF-8')
  */
-      __pyx_t_4 = ((unsigned char *)__pyx_v_rctxt->function);
-      __pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_4), 0, strlen(((char *)__pyx_t_4)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_5 = ((unsigned char *)__pyx_v_rctxt->function);
+      __pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_5), 0, strlen(((char *)__pyx_t_5)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+      __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(((PyObject *)__pyx_t_2));
-      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_2));
+      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_2));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
-      __Pyx_INCREF(((PyObject *)__pyx_t_5));
-      PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_5));
-      __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
+      __Pyx_INCREF(((PyObject *)__pyx_t_6));
+      PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_t_6));
+      __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
       __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_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);
-      __pyx_t_5 = 0;
+      __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_42), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+      __pyx_v_fref = ((PyObject *)__pyx_t_6);
+      __pyx_t_6 = 0;
       goto __pyx_L4;
     }
     /*else*/ {
@@ -129482,12 +130397,12 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  *         xpath.xmlXPathErr(ctxt, xpath.XPATH_UNKNOWN_FUNC_ERROR)
  *         context._exc._store_exception(
  */
-      __pyx_t_4 = ((unsigned char *)__pyx_v_rctxt->function);
-      __pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_4), 0, strlen(((char *)__pyx_t_4)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-      __Pyx_INCREF(((PyObject *)__pyx_t_5));
-      __pyx_v_fref = ((PyObject *)__pyx_t_5);
-      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+      __pyx_t_5 = ((unsigned char *)__pyx_v_rctxt->function);
+      __pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_5), 0, strlen(((char *)__pyx_t_5)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+      __Pyx_INCREF(((PyObject *)__pyx_t_6));
+      __pyx_v_fref = ((PyObject *)__pyx_t_6);
+      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
     }
     __pyx_L4:;
 
@@ -129505,29 +130420,29 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  *         context._exc._store_exception(
  *             XPathFunctionError(u"XPath function '%s' not found" % fref))             # <<<<<<<<<<<<<<
  */
-    __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_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_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathFunctionError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_331), __pyx_v_fref); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_7));
     __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);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_6));
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
-    __pyx_t_6 = 0;
-    __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_context->_exc->__pyx_vtab)->_store_exception(__pyx_v_context->_exc, __pyx_t_6);
+    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_7));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
+    __pyx_t_7 = 0;
+    __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+    ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_context->_exc->__pyx_vtab)->_store_exception(__pyx_v_context->_exc, __pyx_t_7);
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   }
   __pyx_L3:;
 
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_WriteUnraisable("lxml.etree._xpath_function_call", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_L0:;
   __Pyx_XDECREF((PyObject *)__pyx_v_context);
@@ -129551,6 +130466,7 @@ static int __pyx_f_4lxml_5etree__register_xpath_function(void *__pyx_v_ctxt, PyO
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("_register_xpath_function", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":32
@@ -129561,7 +130477,8 @@ static int __pyx_f_4lxml_5etree__register_xpath_function(void *__pyx_v_ctxt, PyO
  *             <xpath.xmlXPathContext*>ctxt, _xcstr(name_utf),
  */
   __pyx_t_1 = (__pyx_v_ns_utf == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":35
  *         return xpath.xmlXPathRegisterFunc(
@@ -129606,6 +130523,7 @@ static int __pyx_f_4lxml_5etree__unregister_xpath_function(void *__pyx_v_ctxt, P
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("_unregister_xpath_function", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":42
@@ -129616,7 +130534,8 @@ static int __pyx_f_4lxml_5etree__unregister_xpath_function(void *__pyx_v_ctxt, P
  *             <xpath.xmlXPathContext*>ctxt, _xcstr(name_utf), NULL)
  */
   __pyx_t_1 = (__pyx_v_ns_utf == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":44
  *     if ns_utf is None:
@@ -129914,7 +130833,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -129970,7 +130890,8 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
  * 
  */
   __pyx_t_2 = (__pyx_v_self->_variables != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":72
  *         self.registerExsltFunctions()
@@ -129981,10 +130902,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
  */
     __pyx_t_1 = __pyx_v_self->_variables;
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_3 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -129993,7 +130914,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._XPathContext.register_context", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -130093,7 +131014,7 @@ static void __pyx_f_4lxml_5etree_13_XPathContext_registerExsltFunctions(struct _
  *             # we'd only execute dummy functions anyway
  *             return
  */
-  __pyx_t_1 = (LIBXSLT_VERSION < 10125);
+  __pyx_t_1 = ((LIBXSLT_VERSION < 10125) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":84
@@ -130449,7 +131370,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
  *         xslt.exsltDateXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_SETS_NAMESPACE) == 0:
  */
-  __pyx_t_1 = (xmlStrcmp(__pyx_v_c_href, EXSLT_DATE_NAMESPACE) == 0);
+  __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_DATE_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":113
@@ -130470,7 +131391,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
  *         xslt.exsltSetsXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_MATH_NAMESPACE) == 0:
  */
-  __pyx_t_1 = (xmlStrcmp(__pyx_v_c_href, EXSLT_SETS_NAMESPACE) == 0);
+  __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_SETS_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":115
@@ -130491,7 +131412,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
  *         xslt.exsltMathXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_STRINGS_NAMESPACE) == 0:
  */
-  __pyx_t_1 = (xmlStrcmp(__pyx_v_c_href, EXSLT_MATH_NAMESPACE) == 0);
+  __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_MATH_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":117
@@ -130512,7 +131433,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
  *         xslt.exsltStrXpathCtxtRegister(ctxt, c_prefix)
  * 
  */
-  __pyx_t_1 = (xmlStrcmp(__pyx_v_c_href, EXSLT_STRINGS_NAMESPACE) == 0);
+  __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_STRINGS_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":119
@@ -130578,7 +131499,8 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
  *             self._eval_lock = python.PyThread_allocate_lock()
  *             if self._eval_lock is NULL:
  */
-  if (ENABLE_THREADING) {
+  __pyx_t_1 = (ENABLE_THREADING != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":135
  *         self._xpathCtxt = NULL
@@ -130596,7 +131518,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
  *                 raise MemoryError()
  *         self._error_log = _ErrorLog()
  */
-    __pyx_t_1 = (__pyx_v_self->_eval_lock == NULL);
+    __pyx_t_1 = ((__pyx_v_self->_eval_lock == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":137
@@ -130729,8 +131651,9 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
   PyObject *__pyx_v_warnings = NULL;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
+  int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -130743,7 +131666,8 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
  *             _XPATH_VERSION_WARNING_REQUIRED = 0
  *             import warnings
  */
-  if (__pyx_v_4lxml_5etree__XPATH_VERSION_WARNING_REQUIRED) {
+  __pyx_t_1 = (__pyx_v_4lxml_5etree__XPATH_VERSION_WARNING_REQUIRED != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":144
  *         global _XPATH_VERSION_WARNING_REQUIRED
@@ -130761,10 +131685,10 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
  *             warnings.warn(u"This version of libxml2 has a known XPath bug. "
  *                           u"Use it at your own risk.")
  */
-    __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_1);
-    __pyx_v_warnings = __pyx_t_1;
-    __pyx_t_1 = 0;
+    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_v_warnings = __pyx_t_2;
+    __pyx_t_2 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":146
  *             _XPATH_VERSION_WARNING_REQUIRED = 0
@@ -130773,12 +131697,12 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
  *                           u"Use it at your own risk.")
  *         self._context = _XPathContext(namespaces, extensions, self._error_log,
  */
-    __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_332), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s__warn); 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_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_333), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -130790,29 +131714,29 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
  * 
  *     property error_log:
  */
-  __pyx_t_2 = PyTuple_New(6); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_namespaces);
-  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_namespaces);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
   __Pyx_INCREF(__pyx_v_extensions);
-  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_extensions);
+  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_extensions);
   __Pyx_GIVEREF(__pyx_v_extensions);
   __Pyx_INCREF(((PyObject *)__pyx_v_self->_error_log));
-  PyTuple_SET_ITEM(__pyx_t_2, 2, ((PyObject *)__pyx_v_self->_error_log));
+  PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)__pyx_v_self->_error_log));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
   __Pyx_INCREF(__pyx_v_enable_regexp);
-  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_v_enable_regexp);
+  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_v_enable_regexp);
   __Pyx_GIVEREF(__pyx_v_enable_regexp);
   __Pyx_INCREF(Py_None);
-  PyTuple_SET_ITEM(__pyx_t_2, 4, Py_None);
+  PyTuple_SET_ITEM(__pyx_t_3, 4, Py_None);
   __Pyx_GIVEREF(Py_None);
   __Pyx_INCREF(__pyx_v_smart_strings);
-  PyTuple_SET_ITEM(__pyx_t_2, 5, __pyx_v_smart_strings);
+  PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_smart_strings);
   __Pyx_GIVEREF(__pyx_v_smart_strings);
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathContext)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathContext)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":148
  *             warnings.warn(u"This version of libxml2 has a known XPath bug. "
@@ -130821,17 +131745,17 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
  *                                       enable_regexp, None, smart_strings)
  * 
  */
-  __Pyx_GIVEREF(__pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_2);
   __Pyx_GOTREF(__pyx_v_self->_context);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_context));
-  __pyx_v_self->_context = ((struct __pyx_obj_4lxml_5etree__XPathContext *)__pyx_t_1);
-  __pyx_t_1 = 0;
+  __pyx_v_self->_context = ((struct __pyx_obj_4lxml_5etree__XPathContext *)__pyx_t_2);
+  __pyx_t_2 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._XPathEvaluatorBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -130878,8 +131802,8 @@ static PyObject *__pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_9error_log___get__(
  */
   #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_309));
+  if (unlikely(!(__pyx_t_1 != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_310));
     {__pyx_filename = __pyx_f[18]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -130939,7 +131863,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
  *             xpath.xmlXPathFreeContext(self._xpathCtxt)
  *         if config.ENABLE_THREADING:
  */
-  __pyx_t_1 = (__pyx_v_self->_xpathCtxt != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_xpathCtxt != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":158
@@ -130961,7 +131885,8 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
  *             if self._eval_lock is not NULL:
  *                 python.PyThread_free_lock(self._eval_lock)
  */
-  if (ENABLE_THREADING) {
+  __pyx_t_1 = (ENABLE_THREADING != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":160
  *             xpath.xmlXPathFreeContext(self._xpathCtxt)
@@ -130970,7 +131895,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
  *                 python.PyThread_free_lock(self._eval_lock)
  * 
  */
-    __pyx_t_1 = (__pyx_v_self->_eval_lock != NULL);
+    __pyx_t_1 = ((__pyx_v_self->_eval_lock != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":161
@@ -131174,7 +132099,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
  *             return 0
  *         c = path[0]
  */
-  __pyx_t_1 = (__pyx_v_path == NULL);
+  __pyx_t_1 = ((__pyx_v_path == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":185
@@ -131280,11 +132205,11 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
  *             with nogil:
  *                 result = python.PyThread_acquire_lock(
  */
-  if (ENABLE_THREADING) {
-    __pyx_t_1 = (__pyx_v_self->_eval_lock != NULL);
+  if ((ENABLE_THREADING != 0)) {
+    __pyx_t_1 = ((__pyx_v_self->_eval_lock != NULL) != 0);
     __pyx_t_2 = __pyx_t_1;
   } else {
-    __pyx_t_2 = ENABLE_THREADING;
+    __pyx_t_2 = (ENABLE_THREADING != 0);
   }
   if (__pyx_t_2) {
 
@@ -131333,7 +132258,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
  *                 raise XPathError, u"XPath evaluator locking failed"
  *         return 0
  */
-    __pyx_t_2 = (__pyx_v_result == 0);
+    __pyx_t_2 = ((__pyx_v_result == 0) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":200
@@ -131345,7 +132270,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
  */
       __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_333), 0, 0);
+      __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_334), 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;
@@ -131397,11 +132322,11 @@ static void __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__unlock(struct __pyx_obj_
  *             python.PyThread_release_lock(self._eval_lock)
  * 
  */
-  if (ENABLE_THREADING) {
-    __pyx_t_1 = (__pyx_v_self->_eval_lock != NULL);
+  if ((ENABLE_THREADING != 0)) {
+    __pyx_t_1 = ((__pyx_v_self->_eval_lock != NULL) != 0);
     __pyx_t_2 = __pyx_t_1;
   } else {
-    __pyx_t_2 = ENABLE_THREADING;
+    __pyx_t_2 = (ENABLE_THREADING != 0);
   }
   if (__pyx_t_2) {
 
@@ -131437,6 +132362,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -131494,7 +132420,8 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
  *         raise XPathSyntaxError(self._error_log._buildExceptionMessage(
  */
     __pyx_t_4 = (__pyx_v_message != Py_None);
-    if (__pyx_t_4) {
+    __pyx_t_5 = (__pyx_t_4 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":214
  *             message = entries._buildExceptionMessage(None)
@@ -131536,7 +132463,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
  */
   __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_334)); 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_335)); 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
@@ -131631,7 +132558,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
  *         if entries:
  */
   __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_entries)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = (!__pyx_t_4);
+  __pyx_t_5 = ((!__pyx_t_4) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":223
@@ -131690,7 +132617,8 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
  *         raise XPathEvalError(self._error_log._buildExceptionMessage(
  */
     __pyx_t_5 = (__pyx_v_message != Py_None);
-    if (__pyx_t_5) {
+    __pyx_t_4 = (__pyx_t_5 != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":227
  *             message = entries._buildExceptionMessage(None)
@@ -131732,7 +132660,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
  */
   __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_334)); 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_335)); 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
@@ -131802,7 +132730,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
  *             if xpathObj is not NULL:
  *                 _freeXPathObject(xpathObj)
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_context->__pyx_base._exc->__pyx_vtab)->_has_raised(__pyx_v_self->_context->__pyx_base._exc);
+  __pyx_t_1 = (((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_context->__pyx_base._exc->__pyx_vtab)->_has_raised(__pyx_v_self->_context->__pyx_base._exc) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":234
@@ -131812,7 +132740,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
  *                 _freeXPathObject(xpathObj)
  *                 xpathObj = NULL
  */
-    __pyx_t_1 = (__pyx_v_xpathObj != NULL);
+    __pyx_t_1 = ((__pyx_v_xpathObj != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":235
@@ -131866,7 +132794,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
  *             self._context._release_temp_refs()
  *             self._raise_eval_error()
  */
-  __pyx_t_1 = (__pyx_v_xpathObj == NULL);
+  __pyx_t_1 = ((__pyx_v_xpathObj == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":241
@@ -132035,8 +132963,8 @@ static int __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__(PyObject *__p
  *         cdef int ns_register_status
  */
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_335;
-    values[4] = __pyx_k_336;
+    values[3] = __pyx_k_336;
+    values[4] = __pyx_k_337;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -132215,7 +133143,7 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
  *             raise MemoryError()
  *         self.set_context(xpathCtxt)
  */
-  __pyx_t_5 = (__pyx_v_xpathCtxt == NULL);
+  __pyx_t_5 = ((__pyx_v_xpathCtxt == NULL) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":280
@@ -132340,8 +133268,8 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_2register_namespa
  * 
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
+  if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_338));
     {__pyx_filename = __pyx_f[18]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -132415,8 +133343,8 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
  *             self._context.addNamespace(prefix, uri)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
+  if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_338));
     {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -132648,8 +133576,8 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
  *         doc = self._element._doc
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
+  if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_338));
     {__pyx_filename = __pyx_f[18]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -132904,8 +133832,8 @@ static int __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__(PyObject *__
  *             self, etree._context_node, namespaces=namespaces,
  */
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_338;
-    values[4] = __pyx_k_339;
+    values[3] = __pyx_k_339;
+    values[4] = __pyx_k_340;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -133155,8 +134083,8 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
  *         doc = self._element._doc
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->__pyx_base.__pyx_base._xpathCtxt != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
+  if (unlikely(!((__pyx_v_self->__pyx_base.__pyx_base._xpathCtxt != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_338));
     {__pyx_filename = __pyx_f[18]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -133467,8 +134395,8 @@ static PyObject *__pyx_pw_4lxml_5etree_63XPathEvaluator(PyObject *__pyx_self, Py
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_340;
-    values[4] = __pyx_k_341;
+    values[3] = __pyx_k_341;
+    values[4] = __pyx_k_342;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -133521,9 +134449,10 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -133537,7 +134466,8 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *             etree_or_element, namespaces=namespaces,
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_etree_or_element, ((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":400
  *     """
@@ -133555,10 +134485,10 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  *     else:
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __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[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_etree_or_element);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_etree_or_element);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_etree_or_element);
     __Pyx_GIVEREF(__pyx_v_etree_or_element);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":400
@@ -133568,8 +134498,8 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *             etree_or_element, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  */
-    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":401
  *     if isinstance(etree_or_element, _ElementTree):
@@ -133578,7 +134508,7 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  *     else:
  */
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":402
  *         return XPathDocumentEvaluator(
@@ -133587,15 +134517,15 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *     else:
  *         return XPathElementEvaluator(
  */
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator)), ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __pyx_r = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_r = __pyx_t_5;
+    __pyx_t_5 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -133617,10 +134547,10 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  * 
  */
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __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[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_etree_or_element);
-    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_etree_or_element);
+    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_etree_or_element);
     __Pyx_GIVEREF(__pyx_v_etree_or_element);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":404
@@ -133630,8 +134560,8 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *             etree_or_element, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  */
-    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":405
  *     else:
@@ -133640,7 +134570,7 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  * 
  */
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":406
  *         return XPathElementEvaluator(
@@ -133649,15 +134579,15 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  * 
  * 
  */
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
   }
   __pyx_L3:;
@@ -133665,9 +134595,9 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree.XPathEvaluator", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -133744,8 +134674,8 @@ static int __pyx_pw_4lxml_5etree_5XPath_3__init__(PyObject *__pyx_v_self, PyObje
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_342;
-    values[4] = __pyx_k_343;
+    values[3] = __pyx_k_343;
+    values[4] = __pyx_k_344;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -133878,7 +134808,7 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
  *             raise MemoryError()
  *         self.set_context(xpathCtxt)
  */
-  __pyx_t_4 = (__pyx_v_xpathCtxt == NULL);
+  __pyx_t_4 = ((__pyx_v_xpathCtxt == NULL) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":434
@@ -133923,7 +134853,7 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
  *             self._raise_parse_error()
  * 
  */
-  __pyx_t_4 = (__pyx_v_self->_xpath == NULL);
+  __pyx_t_4 = ((__pyx_v_self->_xpath == NULL) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":438
@@ -134044,8 +134974,8 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
  *         element  = _rootNodeOrRaise(_etree_or_element)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->__pyx_base._xpathCtxt != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
+  if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_338));
     {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -134353,7 +135283,7 @@ static void __pyx_pf_4lxml_5etree_5XPath_6__dealloc__(struct __pyx_obj_4lxml_5et
  *             xpath.xmlXPathFreeCompExpr(self._xpath)
  * 
  */
-  __pyx_t_1 = (__pyx_v_self->_xpath != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_xpath != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":474
@@ -134450,8 +135380,8 @@ static int __pyx_pw_4lxml_5etree_7ETXPath_1__init__(PyObject *__pyx_v_self, PyOb
  *         path, namespaces = self._nsextract_path(path)
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_344;
-    values[3] = __pyx_k_345;
+    values[2] = __pyx_k_345;
+    values[3] = __pyx_k_346;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -134668,8 +135598,9 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
   PyObject *(*__pyx_t_4)(PyObject *);
   int __pyx_t_5;
   int __pyx_t_6;
-  PyObject *__pyx_t_7 = NULL;
+  int __pyx_t_7;
   PyObject *__pyx_t_8 = NULL;
+  PyObject *__pyx_t_9 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -134804,7 +135735,8 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *                 i += 1
  */
     __pyx_t_5 = (__Pyx_PySequence_Contains(__pyx_v_namespace_def, ((PyObject *)__pyx_v_namespace_defs), Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_5) {
+    __pyx_t_6 = (__pyx_t_5 != 0);
+    if (__pyx_t_6) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":511
  *         for namespace_def in _find_namespaces(stripped_path):
@@ -134813,7 +135745,7 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *                 i += 1
  *                 namespace_defs.append(namespace_def)
  */
-      __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_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_347, __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);
@@ -134835,7 +135767,7 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *                 namespace = namespace_def[1:-1] # remove '{}'
  *                 namespace = (<bytes>namespace).decode('utf8')
  */
-      __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;}
+      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_namespace_defs, __pyx_v_namespace_def); if (unlikely(__pyx_t_7 == -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
@@ -134844,7 +135776,7 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *                 namespace = (<bytes>namespace).decode('utf8')
  *                 namespaces[prefix.decode('utf8')] = namespace
  */
-      __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_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_namespace_def, 1, -1, NULL, NULL, &__pyx_k_slice_348, 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;
@@ -134890,7 +135822,7 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *                 # 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_254)); 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_255)); 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);
@@ -134905,21 +135837,21 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  */
       __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);
+      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_8);
       __Pyx_INCREF(__pyx_v_namespace_def);
-      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_namespace_def);
+      PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_namespace_def);
       __Pyx_GIVEREF(__pyx_v_namespace_def);
       __Pyx_INCREF(((PyObject *)__pyx_v_prefix_str));
-      PyTuple_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_v_prefix_str));
+      PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_prefix_str));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_prefix_str));
-      __pyx_t_8 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_8);
+      __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_9);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
       __Pyx_DECREF(__pyx_v_path_utf);
-      __pyx_v_path_utf = __pyx_t_8;
-      __pyx_t_8 = 0;
+      __pyx_v_path_utf = __pyx_t_9;
+      __pyx_t_9 = 0;
       goto __pyx_L5;
     }
     __pyx_L5:;
@@ -134934,12 +135866,12 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  */
   __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_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_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_349), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_v_path);
-  __pyx_v_path = __pyx_t_8;
-  __pyx_t_8 = 0;
+  __pyx_v_path = __pyx_t_9;
+  __pyx_t_9 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":521
  *                 path_utf = path_utf.replace(namespace_def, prefix_str)
@@ -134947,16 +135879,16 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  *         return path, namespaces             # <<<<<<<<<<<<<<
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_9);
   __Pyx_INCREF(__pyx_v_path);
-  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_path);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_path);
   __Pyx_GIVEREF(__pyx_v_path);
   __Pyx_INCREF(((PyObject *)__pyx_v_namespaces));
-  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_namespaces));
+  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_namespaces));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_namespaces));
-  __pyx_r = ((PyObject *)__pyx_t_8);
-  __pyx_t_8 = 0;
+  __pyx_r = ((PyObject *)__pyx_t_9);
+  __pyx_t_9 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -134964,8 +135896,8 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_8);
+  __Pyx_XDECREF(__pyx_t_9);
   __Pyx_AddTraceback("lxml.etree.ETXPath._nsextract_path", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -135203,9 +136135,9 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_resolve_from_python(const xmlChar *__p
  *         if tree.xmlStrcmp(c_uri, c_doc.URL) == 0:
  *             return _copyDoc(c_doc, 1)
  */
-  __pyx_t_2 = (__pyx_v_c_doc != NULL);
+  __pyx_t_2 = ((__pyx_v_c_doc != NULL) != 0);
   if (__pyx_t_2) {
-    __pyx_t_3 = (__pyx_v_c_doc->URL != NULL);
+    __pyx_t_3 = ((__pyx_v_c_doc->URL != NULL) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -135219,7 +136151,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_resolve_from_python(const xmlChar *__p
  *             return _copyDoc(c_doc, 1)
  * 
  */
-    __pyx_t_4 = (xmlStrcmp(__pyx_v_c_uri, __pyx_v_c_doc->URL) == 0);
+    __pyx_t_4 = ((xmlStrcmp(__pyx_v_c_uri, __pyx_v_c_doc->URL) == 0) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":84
@@ -135272,7 +136204,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_resolve_from_python(const xmlChar *__p
  *             c_uri += 26
  *         uri = _decodeFilename(c_uri)
  */
-      __pyx_t_4 = (xmlStrncmp(((unsigned char *)((unsigned char *)__pyx_k_349)), __pyx_v_c_uri, 26) == 0);
+      __pyx_t_4 = ((xmlStrncmp(((unsigned char *)((unsigned char *)__pyx_k_350)), __pyx_v_c_uri, 26) == 0) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":90
@@ -135344,7 +136276,8 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_resolve_from_python(const xmlChar *__p
  *                 c_doc = _parseDoc(
  */
       __pyx_t_4 = (((PyObject *)__pyx_v_doc_ref) != Py_None);
-      if (__pyx_t_4) {
+      __pyx_t_2 = (__pyx_t_4 != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":104
  *                 c_doc = _parseDocFromFilelike(
@@ -135467,12 +136400,12 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_resolve_from_python(const xmlChar *__p
  *                 c_doc.URL = tree.xmlStrdup(c_uri)
  *         return c_doc
  */
-        __pyx_t_4 = (__pyx_v_c_doc != NULL);
-        if (__pyx_t_4) {
-          __pyx_t_2 = (__pyx_v_c_doc->URL == NULL);
-          __pyx_t_3 = __pyx_t_2;
-        } else {
+        __pyx_t_2 = ((__pyx_v_c_doc != NULL) != 0);
+        if (__pyx_t_2) {
+          __pyx_t_4 = ((__pyx_v_c_doc->URL == NULL) != 0);
           __pyx_t_3 = __pyx_t_4;
+        } else {
+          __pyx_t_3 = __pyx_t_2;
         }
         if (__pyx_t_3) {
 
@@ -135657,7 +136590,7 @@ static void __pyx_f_4lxml_5etree__xslt_store_resolver_exception(const xmlChar *_
  */
       __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_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_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_351), __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);
@@ -135670,7 +136603,7 @@ static void __pyx_f_4lxml_5etree__xslt_store_resolver_exception(const xmlChar *_
  *             exception = XSLTApplyError(message)
  *         else:
  */
-      __pyx_t_6 = (__pyx_v_c_type == XSLT_LOAD_DOCUMENT);
+      __pyx_t_6 = ((__pyx_v_c_type == XSLT_LOAD_DOCUMENT) != 0);
       if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":119
@@ -135832,7 +136765,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_doc_loader(const xmlChar *__pyx_v_c_ur
  *         # transformation time
  *         c_pcontext = (<xslt.xsltTransformContext*>c_ctxt)._private
  */
-  __pyx_t_1 = (__pyx_v_c_type == XSLT_LOAD_DOCUMENT);
+  __pyx_t_1 = ((__pyx_v_c_type == XSLT_LOAD_DOCUMENT) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":137
@@ -135854,7 +136787,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_doc_loader(const xmlChar *__pyx_v_c_ur
  *         # include/import resolution while parsing
  *         c_pcontext = (<xslt.xsltStylesheet*>c_ctxt).doc._private
  */
-  __pyx_t_1 = (__pyx_v_c_type == XSLT_LOAD_STYLESHEET);
+  __pyx_t_1 = ((__pyx_v_c_type == XSLT_LOAD_STYLESHEET) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":140
@@ -135888,7 +136821,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_doc_loader(const xmlChar *__pyx_v_c_ur
  *         # can't call Python without context, fall back to default loader
  *         return XSLT_DOC_DEFAULT_LOADER(
  */
-  __pyx_t_1 = (__pyx_v_c_pcontext == NULL);
+  __pyx_t_1 = ((__pyx_v_c_pcontext == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":147
@@ -135920,9 +136853,9 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_doc_loader(const xmlChar *__pyx_v_c_ur
  *         c_doc = XSLT_DOC_DEFAULT_LOADER(
  *             c_uri, c_dict, parse_options, c_ctxt, c_type)
  */
-  __pyx_t_1 = (__pyx_v_c_doc == NULL);
+  __pyx_t_1 = ((__pyx_v_c_doc == NULL) != 0);
   if (__pyx_t_1) {
-    __pyx_t_3 = (!__pyx_v_error);
+    __pyx_t_3 = ((!(__pyx_v_error != 0)) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_1;
@@ -135945,7 +136878,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_doc_loader(const xmlChar *__pyx_v_c_ur
  *             _xslt_store_resolver_exception(c_uri, c_pcontext, c_type)
  * 
  */
-    __pyx_t_4 = (__pyx_v_c_doc == NULL);
+    __pyx_t_4 = ((__pyx_v_c_doc == NULL) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":154
@@ -135970,9 +136903,9 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_doc_loader(const xmlChar *__pyx_v_c_ur
  *         c_doc._private = c_pcontext
  *     return c_doc
  */
-  __pyx_t_4 = (__pyx_v_c_doc != NULL);
+  __pyx_t_4 = ((__pyx_v_c_doc != NULL) != 0);
   if (__pyx_t_4) {
-    __pyx_t_1 = (__pyx_v_c_type == XSLT_LOAD_STYLESHEET);
+    __pyx_t_1 = ((__pyx_v_c_type == XSLT_LOAD_STYLESHEET) != 0);
     __pyx_t_3 = __pyx_t_1;
   } else {
     __pyx_t_3 = __pyx_t_4;
@@ -136053,7 +136986,7 @@ static int __pyx_pf_4lxml_5etree_17XSLTAccessControl___cinit__(struct __pyx_obj_
  *             raise MemoryError()
  * 
  */
-  __pyx_t_1 = (__pyx_v_self->_prefs == NULL);
+  __pyx_t_1 = ((__pyx_v_self->_prefs == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":191
@@ -136284,7 +137217,7 @@ static void __pyx_pf_4lxml_5etree_17XSLTAccessControl_4__dealloc__(struct __pyx_
  *             xslt.xsltFreeSecurityPrefs(self._prefs)
  * 
  */
-  __pyx_t_1 = (__pyx_v_self->_prefs != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_prefs != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":211
@@ -136314,6 +137247,7 @@ static PyObject *__pyx_f_4lxml_5etree_17XSLTAccessControl__setAccess(struct __py
   xsltSecurityCheck __pyx_v_function;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
   __Pyx_RefNannySetupContext("_setAccess", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":216
@@ -136323,7 +137257,8 @@ static PyObject *__pyx_f_4lxml_5etree_17XSLTAccessControl__setAccess(struct __py
  *             function = xslt.xsltSecurityAllow
  *         else:
  */
-  if (__pyx_v_allow) {
+  __pyx_t_1 = (__pyx_v_allow != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":217
  *         cdef xslt.xsltSecurityCheck function
@@ -136538,7 +137473,7 @@ static PyObject *__pyx_f_4lxml_5etree_17XSLTAccessControl__optval(struct __pyx_o
  *             return True
  *         elif function is <xslt.xsltSecurityCheck>xslt.xsltSecurityForbid:
  */
-  __pyx_t_1 = (__pyx_v_function == ((xsltSecurityCheck)xsltSecurityAllow));
+  __pyx_t_1 = ((__pyx_v_function == ((xsltSecurityCheck)xsltSecurityAllow)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":242
@@ -136564,7 +137499,7 @@ static PyObject *__pyx_f_4lxml_5etree_17XSLTAccessControl__optval(struct __pyx_o
  *             return False
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_function == ((xsltSecurityCheck)xsltSecurityForbid));
+  __pyx_t_1 = ((__pyx_v_function == ((xsltSecurityCheck)xsltSecurityForbid)) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":244
@@ -136754,13 +137689,13 @@ static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __py
     __Pyx_XDECREF(__pyx_v_item);
     __pyx_v_item = __pyx_t_7;
     __pyx_t_7 = 0;
-    __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_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_354), __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_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 *)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_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_353, ((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 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -136771,7 +137706,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __py
   __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_2 = 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_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_352), ((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);
@@ -136807,6 +137742,7 @@ static int __pyx_f_4lxml_5etree__register_xslt_function(void *__pyx_v_ctxt, PyOb
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("_register_xslt_function", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":259
@@ -136817,7 +137753,8 @@ static int __pyx_f_4lxml_5etree__register_xslt_function(void *__pyx_v_ctxt, PyOb
  *     # libxml2 internalises the strings if ctxt has a dict
  */
   __pyx_t_1 = (__pyx_v_ns_utf == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":260
  * cdef int _register_xslt_function(void* ctxt, name_utf, ns_utf):
@@ -137152,7 +138089,8 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_3 = (__pyx_t_5 == Py_None);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_3) {
+      __pyx_t_1 = (__pyx_t_3 != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":283
  *             for ns_name_tuple, extension in extensions.items():
@@ -137163,7 +138101,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
  */
         __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_354), 0, 0);
+        __Pyx_Raise(__pyx_t_5, ((PyObject *)__pyx_kp_u_355), 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;
@@ -137177,7 +138115,8 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
  *                     if self._extension_elements is EMPTY_DICT:
  *                         self._extension_elements = {}
  */
-      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_extension, ((PyObject*)__pyx_ptype_4lxml_5etree_XSLTExtension)); 
+      __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_extension, ((PyObject*)__pyx_ptype_4lxml_5etree_XSLTExtension)); 
+      __pyx_t_3 = (__pyx_t_1 != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":286
@@ -137188,7 +138127,8 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
  *                         extensions = extensions.copy()
  */
         __pyx_t_3 = (__pyx_v_self->_extension_elements == __pyx_v_4lxml_5etree_EMPTY_DICT);
-        if (__pyx_t_3) {
+        __pyx_t_1 = (__pyx_t_3 != 0);
+        if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":287
  *                 if isinstance(extension, XSLTExtension):
@@ -137577,7 +138517,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_free_context(struct __pyx_o
  *             xslt.xsltFreeTransformContext(self._xsltCtxt)
  *             self._xsltCtxt = NULL
  */
-  __pyx_t_2 = (__pyx_v_self->_xsltCtxt != NULL);
+  __pyx_t_2 = ((__pyx_v_self->_xsltCtxt != NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":315
@@ -137783,7 +138723,7 @@ static int __pyx_pw_4lxml_5etree_4XSLT_3__init__(PyObject *__pyx_v_self, PyObjec
  *         cdef xslt.xsltStylesheet* c_style
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_355;
+    values[2] = __pyx_k_356;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":367
  * 
@@ -137930,7 +138870,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  *             doc_url_utf = python.PyUnicode_AsASCIIString(
  *                 u"string://__STRING__XSLT__/%d.xslt" % id(self))
  */
-  __pyx_t_3 = (__pyx_v_c_doc->URL == NULL);
+  __pyx_t_3 = ((__pyx_v_c_doc->URL == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":385
@@ -137948,7 +138888,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     __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_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_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_357), __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;}
@@ -138102,7 +139042,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
           __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12);
           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
           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);
+          __pyx_t_13 = ((!(__pyx_t_3 != 0)) != 0);
           if (__pyx_t_13) {
             __Pyx_GIVEREF(__pyx_t_5);
             __Pyx_GIVEREF(__pyx_t_1);
@@ -138135,7 +139075,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     }
     /*finally:*/ {
       if (__pyx_t_6) {
-        __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_357, NULL);
+        __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_358, 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);
@@ -138160,7 +139100,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  */
   __pyx_t_13 = (__pyx_v_c_style == NULL);
   if (!__pyx_t_13) {
-    __pyx_t_3 = __pyx_v_c_style->errors;
+    __pyx_t_3 = (__pyx_v_c_style->errors != 0);
   } else {
     __pyx_t_3 = __pyx_t_13;
   }
@@ -138182,7 +139122,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  *                 xslt.xsltFreeStylesheet(c_style)
  *             self._xslt_resolver_context._raise_if_stored()
  */
-    __pyx_t_3 = (__pyx_v_c_style != NULL);
+    __pyx_t_3 = ((__pyx_v_c_style != NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":401
@@ -138288,7 +139228,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  *                         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_358)); 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_359)); 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
@@ -138421,7 +139361,7 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
  *             tree.xmlFreeDoc(self._xslt_resolver_context._c_style_doc)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_xslt_resolver_context) != Py_None);
-  if (__pyx_t_1) {
+  if ((__pyx_t_1 != 0)) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":420
  *     def __dealloc__(self):
@@ -138430,10 +139370,10 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
  *             tree.xmlFreeDoc(self._xslt_resolver_context._c_style_doc)
  *         # this cleans up the doc copy as well
  */
-    __pyx_t_2 = (__pyx_v_self->_xslt_resolver_context->_c_style_doc != NULL);
+    __pyx_t_2 = ((__pyx_v_self->_xslt_resolver_context->_c_style_doc != NULL) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -138456,7 +139396,7 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
  *             xslt.xsltFreeStylesheet(self._c_style)
  * 
  */
-  __pyx_t_3 = (__pyx_v_self->_c_style != NULL);
+  __pyx_t_3 = ((__pyx_v_self->_c_style != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":424
@@ -138708,7 +139648,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_8set_global_max_depth(int __pyx_v_m
  *             raise ValueError("cannot set a maximum stylesheet traversal depth < 0")
  *         xslt.xsltMaxDepth = max_depth
  */
-  __pyx_t_1 = (__pyx_v_max_depth < 0);
+  __pyx_t_1 = ((__pyx_v_max_depth < 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":462
@@ -138718,7 +139658,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_8set_global_max_depth(int __pyx_v_m
  *         xslt.xsltMaxDepth = max_depth
  * 
  */
-    __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_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_361), 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;
@@ -138766,7 +139706,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_11apply(PyObject *__pyx_v_self, PyO
   {
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___input,&__pyx_n_s__profile_run,0};
     PyObject* values[2] = {0,0};
-    values[1] = __pyx_k_361;
+    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);
@@ -138876,9 +139816,9 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_10apply(struct __pyx_obj_4lxml_5etr
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("tostring (wrapper)", 0);
@@ -139077,7 +140017,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_19__call__(PyObject *__pyx_v_self,
   {
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___input,&__pyx_n_s__profile_run,0};
     PyObject* values[2] = {0,0};
-    values[1] = __pyx_k_362;
+    values[1] = __pyx_k_363;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -139209,8 +140149,8 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *         root_node = _rootNodeOrRaise(_input)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_style != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_363));
+  if (unlikely(!((__pyx_v_self->_c_style != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_364));
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -139265,7 +140205,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *             _destroyFakeDoc(input_doc._c_doc, c_doc)
  *             raise MemoryError()
  */
-  __pyx_t_3 = (__pyx_v_transform_ctxt == NULL);
+  __pyx_t_3 = ((__pyx_v_transform_ctxt == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":516
@@ -139296,7 +140236,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *             xmlparser.xmlDictFree(transform_ctxt.dict)
  *         if kw:
  */
-  __pyx_t_3 = (__pyx_v_transform_ctxt->dict != NULL);
+  __pyx_t_3 = ((__pyx_v_transform_ctxt->dict != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":524
@@ -139337,7 +140277,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 xslt.xsltFreeTransformContext(transform_ctxt)
  *                 raise MemoryError()
  */
-    __pyx_t_3 = (__pyx_v_transform_ctxt->dict == NULL);
+    __pyx_t_3 = ((__pyx_v_transform_ctxt->dict == NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":530
@@ -139498,7 +140438,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 # deallocate space for parameters
  *                 python.PyMem_Free(params)
  */
-    __pyx_t_3 = (__pyx_v_params != NULL);
+    __pyx_t_3 = ((__pyx_v_params != NULL) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":554
@@ -139520,7 +140460,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)
  */
-    __pyx_t_3 = (__pyx_v_transform_ctxt->state != XSLT_STATE_OK);
+    __pyx_t_3 = ((__pyx_v_transform_ctxt->state != XSLT_STATE_OK) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":557
@@ -139530,7 +140470,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL
  */
-      __pyx_t_3 = (__pyx_v_c_result != NULL);
+      __pyx_t_3 = ((__pyx_v_c_result != NULL) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":558
@@ -139564,7 +140504,8 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 c_profile_doc = xslt.xsltGetProfileInformation(transform_ctxt)
  *                 if c_profile_doc is not NULL:
  */
-    if (__pyx_v_transform_ctxt->profile) {
+    __pyx_t_3 = (__pyx_v_transform_ctxt->profile != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":562
  * 
@@ -139582,7 +140523,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     profile_doc = _documentFactory(
  *                         c_profile_doc, input_doc._parser)
  */
-      __pyx_t_3 = (__pyx_v_c_profile_doc != NULL);
+      __pyx_t_3 = ((__pyx_v_c_profile_doc != NULL) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":565
@@ -139631,7 +140572,8 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     }
     __pyx_L10:;
     __pyx_t_3 = (((PyObject *)__pyx_v_context) != Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_6 = (__pyx_t_3 != 0);
+    if (__pyx_t_6) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":568
  *         finally:
@@ -139692,12 +140634,12 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)
  */
-    __pyx_t_3 = (((PyObject *)__pyx_v_resolver_context) != Py_None);
-    if (__pyx_t_3) {
-      __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext *)__pyx_v_resolver_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._has_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_resolver_context));
-      __pyx_t_7 = __pyx_t_6;
-    } else {
+    __pyx_t_6 = (((PyObject *)__pyx_v_resolver_context) != Py_None);
+    if ((__pyx_t_6 != 0)) {
+      __pyx_t_3 = (((struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext *)__pyx_v_resolver_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._has_raised(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_resolver_context)) != 0);
       __pyx_t_7 = __pyx_t_3;
+    } else {
+      __pyx_t_7 = (__pyx_t_6 != 0);
     }
     if (__pyx_t_7) {
 
@@ -139708,7 +140650,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL
  */
-      __pyx_t_7 = (__pyx_v_c_result != NULL);
+      __pyx_t_7 = ((__pyx_v_c_result != NULL) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":574
@@ -139751,7 +140693,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)
  */
-    __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_context->__pyx_base._exc->__pyx_vtab)->_has_raised(__pyx_v_context->__pyx_base._exc);
+    __pyx_t_7 = (((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_context->__pyx_base._exc->__pyx_vtab)->_has_raised(__pyx_v_context->__pyx_base._exc) != 0);
     if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":579
@@ -139761,7 +140703,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL
  */
-      __pyx_t_7 = (__pyx_v_c_result != NULL);
+      __pyx_t_7 = ((__pyx_v_c_result != NULL) != 0);
       if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":580
@@ -139804,7 +140746,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 # last error seems to be the most accurate here
  *                 error = self._error_log.last_error
  */
-    __pyx_t_7 = (__pyx_v_c_result == NULL);
+    __pyx_t_7 = ((__pyx_v_c_result == NULL) != 0);
     if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":586
@@ -139830,13 +140772,13 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       if (__pyx_t_7) {
         __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_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __pyx_t_6 = __pyx_t_3;
+        __pyx_t_3 = __pyx_t_6;
       } else {
-        __pyx_t_6 = __pyx_t_7;
+        __pyx_t_3 = __pyx_t_7;
       }
-      if (__pyx_t_6) {
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":588
  *                 error = self._error_log.last_error
@@ -139849,9 +140791,9 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
         __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;
-        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-        if (__pyx_t_6) {
+        if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":589
  *                 if error is not None and error.message:
@@ -139904,19 +140846,19 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     message = u"Error applying stylesheet, line %d" % error.line
  *                 else:
  */
-      __pyx_t_6 = (__pyx_v_error != Py_None);
-      if (__pyx_t_6) {
+      __pyx_t_3 = (__pyx_v_error != Py_None);
+      if (__pyx_t_3) {
         __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;
         __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
-        __pyx_t_3 = __pyx_t_7;
+        __pyx_t_6 = __pyx_t_7;
       } else {
-        __pyx_t_3 = __pyx_t_6;
+        __pyx_t_6 = __pyx_t_3;
       }
-      if (__pyx_t_3) {
+      if (__pyx_t_6) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":593
  *                         message = error.message
@@ -139927,7 +140869,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
         __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_364), __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_365), __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);
@@ -139943,8 +140885,8 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 raise XSLTApplyError(message, self._error_log)
  *         finally:
  */
-        __Pyx_INCREF(((PyObject *)__pyx_kp_u_365));
-        __pyx_v_message = ((PyObject *)__pyx_kp_u_365);
+        __Pyx_INCREF(((PyObject *)__pyx_kp_u_366));
+        __pyx_v_message = ((PyObject *)__pyx_kp_u_366);
       }
       __pyx_L27:;
 
@@ -140000,7 +140942,8 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       goto __pyx_L21;
     }
     __pyx_L21:;
-    __pyx_t_3 = (((PyObject *)__pyx_v_resolver_context) != Py_None);
+    __pyx_t_6 = (((PyObject *)__pyx_v_resolver_context) != Py_None);
+    __pyx_t_3 = (__pyx_t_6 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":599
@@ -140076,7 +141019,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 self._c_style.doc.dict is not c_result.dict or \
  *                 input_doc._c_doc.dict is not c_result.dict:
  */
-  __pyx_t_3 = (__pyx_v_c_dict != __pyx_v_c_result->dict);
+  __pyx_t_3 = ((__pyx_v_c_dict != __pyx_v_c_result->dict) != 0);
   if (!__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":607
@@ -140086,7 +141029,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                 input_doc._c_doc.dict is not c_result.dict:
  *             with nogil:
  */
-    __pyx_t_6 = (__pyx_v_self->_c_style->doc->dict != __pyx_v_c_result->dict);
+    __pyx_t_6 = ((__pyx_v_self->_c_style->doc->dict != __pyx_v_c_result->dict) != 0);
     if (!__pyx_t_6) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":608
@@ -140096,7 +141039,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *             with nogil:
  *                 if c_dict is not c_result.dict:
  */
-      __pyx_t_7 = (__pyx_v_input_doc->_c_doc->dict != __pyx_v_c_result->dict);
+      __pyx_t_7 = ((__pyx_v_input_doc->_c_doc->dict != __pyx_v_c_result->dict) != 0);
       __pyx_t_10 = __pyx_t_7;
     } else {
       __pyx_t_10 = __pyx_t_6;
@@ -140128,7 +141071,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        c_dict, c_result.dict)
  */
-          __pyx_t_6 = (__pyx_v_c_dict != __pyx_v_c_result->dict);
+          __pyx_t_6 = ((__pyx_v_c_dict != __pyx_v_c_result->dict) != 0);
           if (__pyx_t_6) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":612
@@ -140150,7 +141093,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        self._c_style.doc.dict, c_result.dict)
  */
-          __pyx_t_6 = (__pyx_v_self->_c_style->doc->dict != __pyx_v_c_result->dict);
+          __pyx_t_6 = ((__pyx_v_self->_c_style->doc->dict != __pyx_v_c_result->dict) != 0);
           if (__pyx_t_6) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":615
@@ -140172,7 +141115,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        input_doc._c_doc.dict, c_result.dict)
  */
-          __pyx_t_6 = (__pyx_v_input_doc->_c_doc->dict != __pyx_v_c_result->dict);
+          __pyx_t_6 = ((__pyx_v_input_doc->_c_doc->dict != __pyx_v_c_result->dict) != 0);
           if (__pyx_t_6) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":618
@@ -140263,6 +141206,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
   xmlDoc *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("_run_transform", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":628
@@ -140282,7 +141226,8 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
  *         with nogil:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_access_control) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":630
  *                                        <xmlerror.xmlGenericErrorFunc>_receiveXSLTError)
@@ -140381,7 +141326,8 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
   int __pyx_t_12;
-  Py_ssize_t __pyx_t_13;
+  int __pyx_t_13;
+  Py_ssize_t __pyx_t_14;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -140427,7 +141373,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  *         return
  *     # allocate space for parameters
  */
-  __pyx_t_3 = (__pyx_v_parameter_count == 0);
+  __pyx_t_3 = ((__pyx_v_parameter_count == 0) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":644
@@ -140527,7 +141473,8 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  *                 xslt.xsltQuoteOneUserParam(
  */
         __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree__XSLTQuotedStringParam)); 
-        if (__pyx_t_3) {
+        __pyx_t_13 = (__pyx_t_3 != 0);
+        if (__pyx_t_13) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":655
  *             k = _utf8(key)
@@ -140561,7 +141508,8 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  *                     v = (<XPath>value)._path
  *                 else:
  */
-          __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree_XPath)); 
+          __pyx_t_13 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_5etree_XPath)); 
+          __pyx_t_3 = (__pyx_t_13 != 0);
           if (__pyx_t_3) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":660
@@ -140606,8 +141554,8 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
             PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
             {__pyx_filename = __pyx_f[2]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           }
-          __pyx_t_13 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_k)); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
-          (__pyx_v_params[__pyx_v_i]) = ((const char *)xmlDictLookup(__pyx_v_c_dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_k)), __pyx_t_13));
+          __pyx_t_14 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_k)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+          (__pyx_v_params[__pyx_v_i]) = ((const char *)xmlDictLookup(__pyx_v_c_dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_k)), __pyx_t_14));
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":664
  *                     v = _utf8(value)
@@ -140629,8 +141577,8 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
             PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
             {__pyx_filename = __pyx_f[2]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           }
-          __pyx_t_13 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_v)); if (unlikely(__pyx_t_13 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
-          (__pyx_v_params[__pyx_v_i]) = ((const char *)xmlDictLookup(__pyx_v_c_dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_v)), __pyx_t_13));
+          __pyx_t_14 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_v)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+          (__pyx_v_params[__pyx_v_i]) = ((const char *)xmlDictLookup(__pyx_v_c_dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_v)), __pyx_t_14));
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":666
  *                 i += 1
@@ -140774,8 +141722,8 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
  *     new_xslt._access_control = stylesheet._access_control
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_stylesheet->_c_style != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_363));
+  if (unlikely(!((__pyx_v_stylesheet->_c_style != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_364));
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -140898,7 +141846,7 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
  *         tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()
  */
-  __pyx_t_3 = (__pyx_v_new_xslt->_c_style == NULL);
+  __pyx_t_3 = ((__pyx_v_new_xslt->_c_style == NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":689
@@ -141020,7 +141968,8 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -141034,7 +141983,8 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  *         else:
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->__pyx_base._context_node) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":710
  *         cdef int r
@@ -141043,10 +141993,10 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  *         else:
  *             doc = None
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base._context_node->_doc);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base._context_node->_doc);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+    __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -141070,7 +142020,8 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  *             doc = self._doc
  *             if doc is None:
  */
-  __pyx_t_1 = (((PyObject *)__pyx_v_doc) == Py_None);
+  __pyx_t_2 = (((PyObject *)__pyx_v_doc) == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":714
@@ -141080,11 +142031,11 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  *             if doc is None:
  *                 s[0] = NULL
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base._doc);
-    __Pyx_INCREF(__pyx_t_2);
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base._doc);
+    __Pyx_INCREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_v_doc));
-    __pyx_v_doc = ((struct LxmlDocument *)__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/xslt.pxi":715
  *         if doc is None:
@@ -141094,7 +142045,8 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  *                 return
  */
     __pyx_t_1 = (((PyObject *)__pyx_v_doc) == Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":716
  *             doc = self._doc
@@ -141167,8 +142119,8 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  *             raise MemoryError()
  * 
  */
-  __pyx_t_1 = (__pyx_v_r == -1);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_r == -1) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":722
  *                                             self._xslt._c_style)
@@ -141185,7 +142137,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._XSLTResultTree._saveToStringAndSize", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -141220,9 +142172,9 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
   PyObject *__pyx_v_result = NULL;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
+  int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -141253,7 +142205,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  *             return self.__unicode__()
  *         self._saveToStringAndSize(&s, &l)
  */
-  if (IS_PYTHON3) {
+  __pyx_t_1 = (IS_PYTHON3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":728
  *         cdef int l = 0
@@ -141263,13 +142216,13 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  *         if s is NULL:
  */
     __Pyx_XDECREF(__pyx_r);
-    __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_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____unicode__); 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);
-    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -141282,9 +142235,9 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  *         if s is NULL:
  *             return ''
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, (&__pyx_v_s), (&__pyx_v_l)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_3 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, (&__pyx_v_s), (&__pyx_v_l)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 729; __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/xslt.pxi":730
  *             return self.__unicode__()
@@ -141293,8 +142246,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  *             return ''
  *         # we must not use 'funicode' here as this is not always UTF-8
  */
-  __pyx_t_3 = (__pyx_v_s == NULL);
-  if (__pyx_t_3) {
+  __pyx_t_1 = ((__pyx_v_s == NULL) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":731
  *         self._saveToStringAndSize(&s, &l)
@@ -141327,11 +142280,11 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  *         finally:
  *             tree.xmlFree(s)
  */
-    __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);
-    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+    __pyx_t_3 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_l - 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_3)));
+    __pyx_v_result = ((PyObject*)__pyx_t_3);
+    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   }
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":736
@@ -141349,8 +142302,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
     __pyx_why = 0; goto __pyx_L7;
     __pyx_L6: {
       __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
       __pyx_exc_lineno = __pyx_lineno;
       goto __pyx_L7;
@@ -141384,8 +142337,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.etree._XSLTResultTree.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -141465,7 +142418,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
  *             return u''
  *         encoding = self._xslt._c_style.encoding
  */
-  __pyx_t_2 = (__pyx_v_s == NULL);
+  __pyx_t_2 = ((__pyx_v_s == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":745
@@ -141509,7 +142462,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
  *                 result = s[:l].decode('UTF-8')
  *             else:
  */
-    __pyx_t_2 = (__pyx_v_encoding == NULL);
+    __pyx_t_2 = ((__pyx_v_encoding == NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":749
@@ -141632,7 +142585,6 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   int __pyx_t_4;
   xmlChar *__pyx_t_5;
   Py_ssize_t __pyx_t_6;
-  int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -141658,7 +142610,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  *             return
  *         if self._buffer is NULL or flags & python.PyBUF_WRITABLE:
  */
-  __pyx_t_1 = (__pyx_v_buffer == NULL);
+  __pyx_t_1 = ((__pyx_v_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":759
@@ -141683,7 +142635,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_t_1 = (__pyx_v_self->_buffer == NULL);
   if (!__pyx_t_1) {
-    __pyx_t_2 = (__pyx_v_flags & PyBUF_WRITABLE);
+    __pyx_t_2 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
   } else {
     __pyx_t_2 = __pyx_t_1;
   }
@@ -141716,9 +142668,9 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  *                 self._buffer = <xmlChar*>buffer.buf
  *                 self._buffer_len = l
  */
-    __pyx_t_2 = (__pyx_v_self->_buffer == NULL);
+    __pyx_t_2 = ((__pyx_v_self->_buffer == NULL) != 0);
     if (__pyx_t_2) {
-      __pyx_t_1 = (!(__pyx_v_flags & PyBUF_WRITABLE));
+      __pyx_t_1 = ((!((__pyx_v_flags & PyBUF_WRITABLE) != 0)) != 0);
       __pyx_t_4 = __pyx_t_1;
     } else {
       __pyx_t_4 = __pyx_t_2;
@@ -141796,8 +142748,8 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  *             buffer.readonly = 0
  *         else:
  */
-  __pyx_t_7 = (__pyx_v_flags & PyBUF_WRITABLE);
-  if (__pyx_t_7) {
+  __pyx_t_4 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":772
  *             self._buffer_refcnt += 1
@@ -141829,8 +142781,8 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  *             buffer.format = "B"
  *         else:
  */
-  __pyx_t_7 = (__pyx_v_flags & PyBUF_FORMAT);
-  if (__pyx_t_7) {
+  __pyx_t_4 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":776
  *             buffer.readonly = 1
@@ -141917,7 +142869,8 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  * 
  */
   __pyx_t_4 = (__pyx_v_buffer->obj != ((PyObject *)__pyx_v_self));
-  if (__pyx_t_4) {
+  __pyx_t_2 = (__pyx_t_4 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":786
  *         buffer.internal = NULL
@@ -141985,7 +142938,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
  *             return
  *         if <xmlChar*>buffer.buf is self._buffer:
  */
-  __pyx_t_1 = (__pyx_v_buffer == NULL);
+  __pyx_t_1 = ((__pyx_v_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":790
@@ -142007,7 +142960,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
  *             self._buffer_refcnt -= 1
  *             if self._buffer_refcnt == 0:
  */
-  __pyx_t_1 = (((xmlChar *)__pyx_v_buffer->buf) == __pyx_v_self->_buffer);
+  __pyx_t_1 = ((((xmlChar *)__pyx_v_buffer->buf) == __pyx_v_self->_buffer) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":792
@@ -142026,7 +142979,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
  *                 tree.xmlFree(<char*>self._buffer)
  *                 self._buffer = NULL
  */
-    __pyx_t_1 = (__pyx_v_self->_buffer_refcnt == 0);
+    __pyx_t_1 = ((__pyx_v_self->_buffer_refcnt == 0) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":794
@@ -142101,9 +143054,10 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -142117,7 +143071,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
  *             root = self._profile.getroot()
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_profile) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":806
  *             cdef object root
@@ -142141,10 +143096,10 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
  *             if root is None:
  *                 return None
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_profile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_root = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_profile); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_root = __pyx_t_3;
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":808
  *                 return None
@@ -142153,7 +143108,8 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
  *                 return None
  *             return ElementTree(root)
  */
-  __pyx_t_1 = (__pyx_v_root == Py_None);
+  __pyx_t_2 = (__pyx_v_root == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":809
@@ -142179,27 +143135,27 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
  *         def __del__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __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_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__ElementTree); 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_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_root);
-  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_root);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_root);
   __Pyx_GIVEREF(__pyx_v_root);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._XSLTResultTree.xslt_profile.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -142349,9 +143305,10 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -142365,7 +143322,8 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
  *             u"//xsl:stylesheet[@xml:id = $id]",
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":841
  *     global __findStylesheetByID
@@ -142374,8 +143332,8 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
  */
-    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":843
  *         __findStylesheetByID = XPath(
@@ -142384,19 +143342,19 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
  *     return __findStylesheetByID(doc, id=id)
  * 
  */
-    __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_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_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_u__xsl), ((PyObject *)__pyx_kp_u_369)) < 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_s__namespaces), ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_368), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __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_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));
     __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID));
-    __Pyx_GIVEREF(__pyx_t_3);
-    __pyx_v_4lxml_5etree___findStylesheetByID = ((struct __pyx_obj_4lxml_5etree_XPath *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __Pyx_GIVEREF(__pyx_t_4);
+    __pyx_v_4lxml_5etree___findStylesheetByID = ((struct __pyx_obj_4lxml_5etree_XPath *)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -142409,28 +143367,28 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
  * cdef class _XSLTProcessingInstruction(PIBase):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __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[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_doc));
-  PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_doc));
+  PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_doc));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_doc));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__id), __pyx_v_id) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__id), __pyx_v_id) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._findStylesheetByID", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -142543,7 +143501,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *             raise ValueError, u"PI lacks content"
  *         hrefs = _FIND_PI_HREF(u' ' + (<unsigned char*>self._c_node.content).decode('UTF-8'))
  */
-  __pyx_t_2 = (__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->content == NULL);
+  __pyx_t_2 = ((__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->content == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":865
@@ -142553,7 +143511,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         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_369), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_370), 0, 0);
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -142591,7 +143549,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         hrefs = hrefs[0]
  */
   __pyx_t_6 = PyObject_Length(__pyx_v_hrefs); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (__pyx_t_6 != 1);
+  __pyx_t_2 = ((__pyx_t_6 != 1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":868
@@ -142601,7 +143559,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         hrefs = hrefs[0]
  *         href_utf = utf8(hrefs[0] or hrefs[1])
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_370), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_371), 0, 0);
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -142662,7 +143620,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *             # normal URL, try to parse from it
  *             c_href = tree.xmlBuildURI(
  */
-  __pyx_t_2 = ((__pyx_v_c_href[0]) != '#');
+  __pyx_t_2 = (((__pyx_v_c_href[0]) != '#') != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":877
@@ -142681,7 +143639,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *                 try:
  *                     href_utf = <unsigned char*>c_href
  */
-    __pyx_t_2 = (__pyx_v_c_href != NULL);
+    __pyx_t_2 = ((__pyx_v_c_href != NULL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":879
@@ -142813,9 +143771,9 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *             result_node = _elementFactory(self._doc, c_attr.parent)
  *             return _elementTreeFactory(result_node._doc, result_node)
  */
-  __pyx_t_2 = (__pyx_v_c_attr != NULL);
+  __pyx_t_2 = ((__pyx_v_c_attr != NULL) != 0);
   if (__pyx_t_2) {
-    __pyx_t_8 = (__pyx_v_c_attr->doc == __pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->doc);
+    __pyx_t_8 = ((__pyx_v_c_attr->doc == __pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->doc) != 0);
     __pyx_t_9 = __pyx_t_8;
   } else {
     __pyx_t_9 = __pyx_t_2;
@@ -142883,7 +143841,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         elif len(root) > 1:
  */
   __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_root); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (!__pyx_t_9);
+  __pyx_t_2 = ((!__pyx_t_9) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":898
@@ -142893,7 +143851,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         elif len(root) > 1:
  *             raise ValueError, u"ambiguous reference to embedded stylesheet"
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_371), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_372), 0, 0);
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L12;
   }
@@ -142906,7 +143864,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         result_node = root[0]
  */
   __pyx_t_6 = PyObject_Length(__pyx_v_root); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = (__pyx_t_6 > 1);
+  __pyx_t_2 = ((__pyx_t_6 > 1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":900
@@ -142916,7 +143874,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         result_node = root[0]
  *         return _elementTreeFactory(result_node._doc, result_node)
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_372), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_373), 0, 0);
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L12;
   }
@@ -143073,7 +144031,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
  *                 u"only setting the 'href' attribute is supported on XSLT-PIs"
  *         if value is None:
  */
-    __Pyx_Raise(__pyx_builtin_AttributeError, ((PyObject *)__pyx_kp_u_373), 0, 0);
+    __Pyx_Raise(__pyx_builtin_AttributeError, ((PyObject *)__pyx_kp_u_374), 0, 0);
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -143087,7 +144045,8 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
  *         elif u'"' in value or u'>' in value:
  */
   __pyx_t_2 = (__pyx_v_value == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":914
  *                 u"only setting the 'href' attribute is supported on XSLT-PIs"
@@ -143108,12 +144067,12 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
  *             raise ValueError, u"Invalid URL, must not contain '\"' or '>'"
  *         else:
  */
-  __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_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;
+  __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_243), __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;}
+  if (!(__pyx_t_3 != 0)) {
+    __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_259), __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_4 = (__pyx_t_2 != 0);
   } else {
-    __pyx_t_4 = __pyx_t_2;
+    __pyx_t_4 = (__pyx_t_3 != 0);
   }
   if (__pyx_t_4) {
 
@@ -143124,7 +144083,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
  *         else:
  *             attrib = u' href="%s"' % value
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_374), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_375), 0, 0);
     {__pyx_filename = __pyx_f[2]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -143137,7 +144096,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
  *         text = u' ' + self.text
  *         if _FIND_PI_HREF(text):
  */
-    __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_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_376), __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;
@@ -143328,11 +144287,13 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_execute(CYTHON_UNUSED str
 
 /* Python wrapper */
 static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_4lxml_5etree_13XSLTExtension_2apply_templates[] = "apply_templates(self, context, node, output_parent=None)\n\n        Call this method to retrieve the result of applying templates\n        to an element.\n\n        The return value is a list of elements or text strings that\n        were generated by the XSLT processor.\n\n        If you pass an Element as `output_parent` parameter, the result\n        will instead be appended to the element (including attributes\n        etc.) and the return value will be `None`.  This is a safe way\n        to generate content into the output document directly, without\n        having to take care of special values like text or attributes.\n        ";
+static char __pyx_doc_4lxml_5etree_13XSLTExtension_2apply_templates[] = "apply_templates(self, context, node, output_parent=None, elements_only=False, remove_blank_text=False)\n\n        Call this method to retrieve the result of applying templates\n        to an element.\n\n        The return value is a list of elements or text strings that\n        were generated by the XSLT processor.  If you pass\n        ``elements_only=True``, strings will be discarded from the result\n        list.  The option ``remove_blank_text=True`` will only discard\n        strings that consist entirely of whitespace (e.g. formatting).\n        These options do not apply to Elements, only to bare string results.\n\n        If you pass an Element as `output_parent` parameter, the result\n        will instead be appended to the element (including attributes\n        etc.) and the return value will be `None`.  This is a safe way\n        to generate content into the output document directly, without\n        having to take care of special values like text or attributes.\n        Note that the string discarding options will be ignored in this\n        case.\n        ";
 static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
   struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context = 0;
   PyObject *__pyx_v_node = 0;
   PyObject *__pyx_v_output_parent = 0;
+  PyObject *__pyx_v_elements_only = 0;
+  PyObject *__pyx_v_remove_blank_text = 0;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -143340,17 +144301,19 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("apply_templates (wrapper)", 0);
   {
-    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__context,&__pyx_n_s__node,&__pyx_n_s__output_parent,0};
-    PyObject* values[3] = {0,0,0};
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__context,&__pyx_n_s__node,&__pyx_n_s__output_parent,&__pyx_n_s__elements_only,&__pyx_n_s__remove_blank_text,0};
+    PyObject* values[5] = {0,0,0,0,0};
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":22
  *         pass
  * 
- *     def apply_templates(self, _XSLTContext context not None, node, output_parent=None):             # <<<<<<<<<<<<<<
- *         u"""apply_templates(self, context, node, output_parent=None)
- * 
+ *     def apply_templates(self, _XSLTContext context not None, node, output_parent=None,             # <<<<<<<<<<<<<<
+ *                         *, elements_only=False, remove_blank_text=False):
+ *         u"""apply_templates(self, context, node, output_parent=None, elements_only=False, remove_blank_text=False)
  */
     values[2] = ((PyObject *)Py_None);
+    values[3] = __pyx_k_377;
+    values[4] = __pyx_k_378;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -143377,6 +144340,13 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject
           if (value) { values[2] = value; kw_args--; }
         }
       }
+      if (kw_args > 0 && likely(kw_args <= 2)) {
+        Py_ssize_t index;
+        for (index = 3; index < 5 && kw_args > 0; index++) {
+          PyObject* value = PyDict_GetItem(__pyx_kwds, *__pyx_pyargnames[index]);
+          if (value) { values[index] = value; kw_args--; }
+        }
+      }
       if (unlikely(kw_args > 0)) {
         if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "apply_templates") < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
@@ -143392,6 +144362,8 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject
     __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)values[0]);
     __pyx_v_node = values[1];
     __pyx_v_output_parent = values[2];
+    __pyx_v_elements_only = values[3];
+    __pyx_v_remove_blank_text = values[4];
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
@@ -143402,7 +144374,7 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject
   return NULL;
   __pyx_L4_argument_unpacking_done:;
   if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_ptype_4lxml_5etree__XSLTContext, 0, "context", 0))) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_r = __pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(((struct __pyx_obj_4lxml_5etree_XSLTExtension *)__pyx_v_self), __pyx_v_context, __pyx_v_node, __pyx_v_output_parent);
+  __pyx_r = __pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(((struct __pyx_obj_4lxml_5etree_XSLTExtension *)__pyx_v_self), __pyx_v_context, __pyx_v_node, __pyx_v_output_parent, __pyx_v_elements_only, __pyx_v_remove_blank_text);
   goto __pyx_L0;
   __pyx_L1_error:;
   __pyx_r = NULL;
@@ -143411,7 +144383,7 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject
   return __pyx_r;
 }
 
-static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_node, PyObject *__pyx_v_output_parent) {
+static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_node, PyObject *__pyx_v_output_parent, PyObject *__pyx_v_elements_only, PyObject *__pyx_v_remove_blank_text) {
   xmlNode *__pyx_v_c_parent;
   xmlNode *__pyx_v_c_node;
   xmlNode *__pyx_v_c_context_node;
@@ -143419,13 +144391,14 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
   __Pyx_RefNannyDeclarations
   xmlNode *__pyx_t_1;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("apply_templates", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":40
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":47
  *         cdef xmlNode* c_node
  *         cdef xmlNode* c_context_node
  *         assert context._xsltCtxt is not NULL, "XSLT context not initialised"             # <<<<<<<<<<<<<<
@@ -143433,23 +144406,23 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
  *         #assert c_context_node.doc is context._xsltContext.node.doc, \
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_context->_xsltCtxt != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_376));
-    {__pyx_filename = __pyx_f[19]; __pyx_lineno = 40; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!((__pyx_v_context->_xsltCtxt != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_379));
+    {__pyx_filename = __pyx_f[19]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":41
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":48
  *         cdef xmlNode* c_context_node
  *         assert context._xsltCtxt is not NULL, "XSLT context not initialised"
  *         c_context_node = _roNodeOf(node)             # <<<<<<<<<<<<<<
  *         #assert c_context_node.doc is context._xsltContext.node.doc, \
  *         #    "switching input documents during transformation is not currently supported"
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__roNodeOf(__pyx_v_node); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__roNodeOf(__pyx_v_node); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_context_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":45
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":52
  *         #    "switching input documents during transformation is not currently supported"
  * 
  *         if output_parent is not None:             # <<<<<<<<<<<<<<
@@ -143457,33 +144430,34 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
  *         else:
  */
   __pyx_t_2 = (__pyx_v_output_parent != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":46
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":53
  * 
  *         if output_parent is not None:
  *             c_parent = _nonRoNodeOf(output_parent)             # <<<<<<<<<<<<<<
  *         else:
  *             c_parent = tree.xmlNewDocNode(
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__nonRoNodeOf(__pyx_v_output_parent); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__nonRoNodeOf(__pyx_v_output_parent); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 53; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_parent = __pyx_t_1;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":49
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":56
  *         else:
  *             c_parent = tree.xmlNewDocNode(
  *                 context._xsltCtxt.output, NULL, <unsigned char*>"fake-parent", NULL)             # <<<<<<<<<<<<<<
  * 
  *         c_node = context._xsltCtxt.insert
  */
-    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_377)), NULL);
+    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_380)), NULL);
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":51
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":58
  *                 context._xsltCtxt.output, NULL, <unsigned char*>"fake-parent", NULL)
  * 
  *         c_node = context._xsltCtxt.insert             # <<<<<<<<<<<<<<
@@ -143493,7 +144467,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
   __pyx_t_1 = __pyx_v_context->_xsltCtxt->insert;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":52
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":59
  * 
  *         c_node = context._xsltCtxt.insert
  *         context._xsltCtxt.insert = c_parent             # <<<<<<<<<<<<<<
@@ -143502,7 +144476,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
  */
   __pyx_v_context->_xsltCtxt->insert = __pyx_v_c_parent;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":54
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":61
  *         context._xsltCtxt.insert = c_parent
  *         xslt.xsltProcessOneNode(
  *             context._xsltCtxt, c_context_node, NULL)             # <<<<<<<<<<<<<<
@@ -143511,7 +144485,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
  */
   xsltProcessOneNode(__pyx_v_context->_xsltCtxt, __pyx_v_c_context_node, NULL);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":55
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":62
  *         xslt.xsltProcessOneNode(
  *             context._xsltCtxt, c_context_node, NULL)
  *         context._xsltCtxt.insert = c_node             # <<<<<<<<<<<<<<
@@ -143520,17 +144494,18 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
  */
   __pyx_v_context->_xsltCtxt->insert = __pyx_v_c_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":57
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":64
  *         context._xsltCtxt.insert = c_node
  * 
  *         if output_parent is not None:             # <<<<<<<<<<<<<<
  *             return None
  * 
  */
-  __pyx_t_2 = (__pyx_v_output_parent != Py_None);
+  __pyx_t_3 = (__pyx_v_output_parent != Py_None);
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":58
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":65
  * 
  *         if output_parent is not None:
  *             return None             # <<<<<<<<<<<<<<
@@ -143545,36 +144520,46 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":60
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":67
  *             return None
  * 
  *         try:             # <<<<<<<<<<<<<<
- *             return self._collectXSLTResultContent(context, c_parent)
- *         finally:
+ *             return self._collectXSLTResultContent(
+ *                 context, c_parent, elements_only, remove_blank_text)
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":61
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":68
  * 
  *         try:
- *             return self._collectXSLTResultContent(context, c_parent)             # <<<<<<<<<<<<<<
+ *             return self._collectXSLTResultContent(             # <<<<<<<<<<<<<<
+ *                 context, c_parent, elements_only, remove_blank_text)
  *         finally:
- *             # free all intermediate nodes that will not be freed by proxies
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension *)__pyx_v_self->__pyx_vtab)->_collectXSLTResultContent(__pyx_v_self, __pyx_v_context, __pyx_v_c_parent); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L6;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":69
+ *         try:
+ *             return self._collectXSLTResultContent(
+ *                 context, c_parent, elements_only, remove_blank_text)             # <<<<<<<<<<<<<<
+ *         finally:
+ *             # free all intermediate nodes that will not be freed by proxies
+ */
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_elements_only); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_remove_blank_text); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension *)__pyx_v_self->__pyx_vtab)->_collectXSLTResultContent(__pyx_v_self, __pyx_v_context, __pyx_v_c_parent, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_r = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L5;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":64
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":72
  *         finally:
  *             # free all intermediate nodes that will not be freed by proxies
  *             tree.xmlFreeNode(c_parent)             # <<<<<<<<<<<<<<
  * 
- *     def process_children(self, _XSLTContext context not None, output_parent=None):
+ *     def process_children(self, _XSLTContext context not None, output_parent=None,
  */
   /*finally:*/ {
     int __pyx_why;
@@ -143586,7 +144571,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
     __pyx_why = 3; goto __pyx_L7;
     __pyx_L6: {
       __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
       __pyx_exc_lineno = __pyx_lineno;
       goto __pyx_L7;
@@ -143609,7 +144594,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree.XSLTExtension.apply_templates", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -143620,10 +144605,12 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
 
 /* Python wrapper */
 static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_4lxml_5etree_13XSLTExtension_4process_children[] = "process_children(self, context, output_parent=None)\n\n        Call this method to process the XSLT content of the extension\n        element itself.\n\n        The return value is a list of elements or text strings that\n        were generated by the XSLT processor.\n\n        If you pass an Element as `output_parent` parameter, the result\n        will instead be appended to the element (including attributes\n        etc.) and the return value will be `None`.  This is a safe way\n        to generate content into the output document directly, without\n        having to take care of special values like text or attributes.\n        ";
+static char __pyx_doc_4lxml_5etree_13XSLTExtension_4process_children[] = "process_children(self, context, output_parent=None, elements_only=False, remove_blank_text=False)\n\n        Call this method to process the XSLT content of the extension\n        element itself.\n\n        The return value is a list of elements or text strings that\n        were generated by the XSLT processor.  If you pass\n        ``elements_only=True``, strings will be discarded from the result\n        list.  The option ``remove_blank_text=True`` will only discard\n        strings that consist entirely of whitespace (e.g. formatting).\n        These options do not apply to Elements, only to bare string results.\n\n        If you pass an Element as `output_parent` parameter, the result\n        will instead be appended to the element (including attributes\n        etc.) and the return value will be `None`.  This is a safe way\n        to generate content into the output document directly, without\n        having to take care of special values like text or attributes.\n        Note that the string discarding options will be ignored in this\n        case.\n        ";
 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;
+  PyObject *__pyx_v_elements_only = 0;
+  PyObject *__pyx_v_remove_blank_text = 0;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -143631,17 +144618,19 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children(PyObjec
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("process_children (wrapper)", 0);
   {
-    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__context,&__pyx_n_s__output_parent,0};
-    PyObject* values[2] = {0,0};
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__context,&__pyx_n_s__output_parent,&__pyx_n_s__elements_only,&__pyx_n_s__remove_blank_text,0};
+    PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":66
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":74
  *             tree.xmlFreeNode(c_parent)
  * 
- *     def process_children(self, _XSLTContext context not None, output_parent=None):             # <<<<<<<<<<<<<<
- *         u"""process_children(self, context, output_parent=None)
- * 
+ *     def process_children(self, _XSLTContext context not None, output_parent=None,             # <<<<<<<<<<<<<<
+ *                          *, elements_only=False, remove_blank_text=False):
+ *         u"""process_children(self, context, output_parent=None, elements_only=False, remove_blank_text=False)
  */
     values[1] = ((PyObject *)Py_None);
+    values[2] = __pyx_k_381;
+    values[3] = __pyx_k_382;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -143662,8 +144651,15 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children(PyObjec
           if (value) { values[1] = value; kw_args--; }
         }
       }
+      if (kw_args > 0 && likely(kw_args <= 2)) {
+        Py_ssize_t index;
+        for (index = 2; index < 4 && kw_args > 0; index++) {
+          PyObject* value = PyDict_GetItem(__pyx_kwds, *__pyx_pyargnames[index]);
+          if (value) { values[index] = value; kw_args--; }
+        }
+      }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "process_children") < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "process_children") < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -143675,17 +144671,19 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children(PyObjec
     }
     __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)values[0]);
     __pyx_v_output_parent = values[1];
+    __pyx_v_elements_only = values[2];
+    __pyx_v_remove_blank_text = values[3];
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("process_children", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[19]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("process_children", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[19]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XSLTExtension.process_children", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_ptype_4lxml_5etree__XSLTContext, 0, "context", 0))) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_r = __pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(((struct __pyx_obj_4lxml_5etree_XSLTExtension *)__pyx_v_self), __pyx_v_context, __pyx_v_output_parent);
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_context), __pyx_ptype_4lxml_5etree__XSLTContext, 0, "context", 0))) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_r = __pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(((struct __pyx_obj_4lxml_5etree_XSLTExtension *)__pyx_v_self), __pyx_v_context, __pyx_v_output_parent, __pyx_v_elements_only, __pyx_v_remove_blank_text);
   goto __pyx_L0;
   __pyx_L1_error:;
   __pyx_r = NULL;
@@ -143694,7 +144692,7 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children(PyObjec
   return __pyx_r;
 }
 
-static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_output_parent) {
+static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, PyObject *__pyx_v_output_parent, PyObject *__pyx_v_elements_only, PyObject *__pyx_v_remove_blank_text) {
   xmlNode *__pyx_v_c_parent;
   xsltTransformContext *__pyx_v_c_ctxt;
   xmlNode *__pyx_v_c_old_output_parent;
@@ -143703,13 +144701,14 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
   xsltTransformContext *__pyx_t_1;
   xmlNode *__pyx_t_2;
   int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("process_children", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":82
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":97
  *         """
  *         cdef xmlNode* c_parent
  *         cdef xslt.xsltTransformContext* c_ctxt = context._xsltCtxt             # <<<<<<<<<<<<<<
@@ -143719,7 +144718,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
   __pyx_t_1 = __pyx_v_context->_xsltCtxt;
   __pyx_v_c_ctxt = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":83
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":98
  *         cdef xmlNode* c_parent
  *         cdef xslt.xsltTransformContext* c_ctxt = context._xsltCtxt
  *         cdef xmlNode* c_old_output_parent = c_ctxt.insert             # <<<<<<<<<<<<<<
@@ -143729,7 +144728,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
   __pyx_t_2 = __pyx_v_c_ctxt->insert;
   __pyx_v_c_old_output_parent = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":84
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":99
  *         cdef xslt.xsltTransformContext* c_ctxt = context._xsltCtxt
  *         cdef xmlNode* c_old_output_parent = c_ctxt.insert
  *         assert context._xsltCtxt is not NULL, "XSLT context not initialised"             # <<<<<<<<<<<<<<
@@ -143737,13 +144736,13 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
  *         # output_parent node is used for adding results instead of
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_context->_xsltCtxt != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_376));
-    {__pyx_filename = __pyx_f[19]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!((__pyx_v_context->_xsltCtxt != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_379));
+    {__pyx_filename = __pyx_f[19]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":90
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":105
  *         # use attributes added to extension element with <xsl:attribute>.
  * 
  *         if output_parent is not None:             # <<<<<<<<<<<<<<
@@ -143751,43 +144750,44 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
  *         else:
  */
   __pyx_t_3 = (__pyx_v_output_parent != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":91
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":106
  * 
  *         if output_parent is not None:
  *             c_parent = _nonRoNodeOf(output_parent)             # <<<<<<<<<<<<<<
  *         else:
  *             c_parent = tree.xmlNewDocNode(
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__nonRoNodeOf(__pyx_v_output_parent); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__nonRoNodeOf(__pyx_v_output_parent); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_parent = __pyx_t_2;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":94
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":109
  *         else:
  *             c_parent = tree.xmlNewDocNode(
  *                 context._xsltCtxt.output, NULL, <unsigned char*>"fake-parent", NULL)             # <<<<<<<<<<<<<<
  * 
  *         c_ctxt.insert = _nonRoNodeOf(output_parent)
  */
-    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_377)), NULL);
+    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_380)), NULL);
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":96
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":111
  *                 context._xsltCtxt.output, NULL, <unsigned char*>"fake-parent", NULL)
  * 
  *         c_ctxt.insert = _nonRoNodeOf(output_parent)             # <<<<<<<<<<<<<<
  *         xslt.xsltApplyOneTemplate(c_ctxt,
  *             c_ctxt.node, c_ctxt.inst.children, NULL, NULL)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__nonRoNodeOf(__pyx_v_output_parent); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__nonRoNodeOf(__pyx_v_output_parent); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_ctxt->insert = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":98
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":113
  *         c_ctxt.insert = _nonRoNodeOf(output_parent)
  *         xslt.xsltApplyOneTemplate(c_ctxt,
  *             c_ctxt.node, c_ctxt.inst.children, NULL, NULL)             # <<<<<<<<<<<<<<
@@ -143796,7 +144796,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
  */
   xsltApplyOneTemplate(__pyx_v_c_ctxt, __pyx_v_c_ctxt->node, __pyx_v_c_ctxt->inst->children, NULL, NULL);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":99
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":114
  *         xslt.xsltApplyOneTemplate(c_ctxt,
  *             c_ctxt.node, c_ctxt.inst.children, NULL, NULL)
  *         c_ctxt.insert = c_old_output_parent             # <<<<<<<<<<<<<<
@@ -143805,17 +144805,18 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
  */
   __pyx_v_c_ctxt->insert = __pyx_v_c_old_output_parent;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":101
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":116
  *         c_ctxt.insert = c_old_output_parent
  * 
  *         if output_parent is not None:             # <<<<<<<<<<<<<<
  *             return None
  * 
  */
-  __pyx_t_3 = (__pyx_v_output_parent != Py_None);
+  __pyx_t_4 = (__pyx_v_output_parent != Py_None);
+  __pyx_t_3 = (__pyx_t_4 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":102
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":117
  * 
  *         if output_parent is not None:
  *             return None             # <<<<<<<<<<<<<<
@@ -143830,36 +144831,46 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":104
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":119
  *             return None
  * 
  *         try:             # <<<<<<<<<<<<<<
- *             return self._collectXSLTResultContent(context, c_parent)
- *         finally:
+ *             return self._collectXSLTResultContent(
+ *                 context, c_parent, elements_only, remove_blank_text)
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":105
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":120
  * 
  *         try:
- *             return self._collectXSLTResultContent(context, c_parent)             # <<<<<<<<<<<<<<
+ *             return self._collectXSLTResultContent(             # <<<<<<<<<<<<<<
+ *                 context, c_parent, elements_only, remove_blank_text)
  *         finally:
- *             # free all intermediate nodes that will not be freed by proxies
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension *)__pyx_v_self->__pyx_vtab)->_collectXSLTResultContent(__pyx_v_self, __pyx_v_context, __pyx_v_c_parent); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L6;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __pyx_r = __pyx_t_4;
-    __pyx_t_4 = 0;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":121
+ *         try:
+ *             return self._collectXSLTResultContent(
+ *                 context, c_parent, elements_only, remove_blank_text)             # <<<<<<<<<<<<<<
+ *         finally:
+ *             # free all intermediate nodes that will not be freed by proxies
+ */
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_elements_only); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_remove_blank_text); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension *)__pyx_v_self->__pyx_vtab)->_collectXSLTResultContent(__pyx_v_self, __pyx_v_context, __pyx_v_c_parent, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_r = __pyx_t_5;
+    __pyx_t_5 = 0;
     goto __pyx_L5;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":108
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":124
  *         finally:
  *             # free all intermediate nodes that will not be freed by proxies
  *             tree.xmlFreeNode(c_parent)             # <<<<<<<<<<<<<<
  * 
- *     cdef _collectXSLTResultContent(self, _XSLTContext context, xmlNode* c_parent):
+ *     cdef _collectXSLTResultContent(self, _XSLTContext context, xmlNode* c_parent,
  */
   /*finally:*/ {
     int __pyx_why;
@@ -143871,7 +144882,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
     __pyx_why = 3; goto __pyx_L7;
     __pyx_L6: {
       __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
       __pyx_exc_lineno = __pyx_lineno;
       goto __pyx_L7;
@@ -143894,7 +144905,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree.XSLTExtension.process_children", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -143903,44 +144914,47 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":110
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":126
  *             tree.xmlFreeNode(c_parent)
  * 
- *     cdef _collectXSLTResultContent(self, _XSLTContext context, xmlNode* c_parent):             # <<<<<<<<<<<<<<
+ *     cdef _collectXSLTResultContent(self, _XSLTContext context, xmlNode* c_parent,             # <<<<<<<<<<<<<<
+ *                                    bint elements_only, bint remove_blank_text):
  *         cdef xmlNode* c_node
- *         cdef xmlNode* c_next
  */
 
-static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(CYTHON_UNUSED struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, xmlNode *__pyx_v_c_parent) {
+static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(CYTHON_UNUSED struct __pyx_obj_4lxml_5etree_XSLTExtension *__pyx_v_self, struct __pyx_obj_4lxml_5etree__XSLTContext *__pyx_v_context, xmlNode *__pyx_v_c_parent, int __pyx_v_elements_only, int __pyx_v_remove_blank_text) {
   xmlNode *__pyx_v_c_node;
   xmlNode *__pyx_v_c_next;
   struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_v_proxy = 0;
   PyObject *__pyx_v_results = 0;
+  PyObject *__pyx_v_s = NULL;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   xmlNode *__pyx_t_2;
   int __pyx_t_3;
-  int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
+  int __pyx_t_6;
+  int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_collectXSLTResultContent", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":114
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":131
  *         cdef xmlNode* c_next
  *         cdef _ReadOnlyProxy proxy
  *         cdef list results = [] # or maybe _collectAttributes(c_parent, 2) ?             # <<<<<<<<<<<<<<
  *         c_node = c_parent.children
  *         while c_node is not NULL:
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_results = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":115
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":132
  *         cdef _ReadOnlyProxy proxy
  *         cdef list results = [] # or maybe _collectAttributes(c_parent, 2) ?
  *         c_node = c_parent.children             # <<<<<<<<<<<<<<
@@ -143950,7 +144964,7 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
   __pyx_t_2 = __pyx_v_c_parent->children;
   __pyx_v_c_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":116
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":133
  *         cdef list results = [] # or maybe _collectAttributes(c_parent, 2) ?
  *         c_node = c_parent.children
  *         while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -143958,79 +144972,138 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
  *             if c_node.type == tree.XML_TEXT_NODE:
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_3) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":117
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":134
  *         c_node = c_parent.children
  *         while c_node is not NULL:
  *             c_next = c_node.next             # <<<<<<<<<<<<<<
  *             if c_node.type == tree.XML_TEXT_NODE:
- *                 results.append(funicode(c_node.content))
+ *                 if not elements_only:
  */
     __pyx_t_2 = __pyx_v_c_node->next;
     __pyx_v_c_next = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":118
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":135
  *         while c_node is not NULL:
  *             c_next = c_node.next
  *             if c_node.type == tree.XML_TEXT_NODE:             # <<<<<<<<<<<<<<
- *                 results.append(funicode(c_node.content))
- *             elif c_node.type == tree.XML_ELEMENT_NODE:
+ *                 if not elements_only:
+ *                     s = funicode(c_node.content)
  */
-    __pyx_t_3 = (__pyx_v_c_node->type == XML_TEXT_NODE);
+    __pyx_t_3 = ((__pyx_v_c_node->type == XML_TEXT_NODE) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":119
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":136
  *             c_next = c_node.next
  *             if c_node.type == tree.XML_TEXT_NODE:
- *                 results.append(funicode(c_node.content))             # <<<<<<<<<<<<<<
+ *                 if not elements_only:             # <<<<<<<<<<<<<<
+ *                     s = funicode(c_node.content)
+ *                     if not remove_blank_text or s.strip():
+ */
+      __pyx_t_3 = ((!(__pyx_v_elements_only != 0)) != 0);
+      if (__pyx_t_3) {
+
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":137
+ *             if c_node.type == tree.XML_TEXT_NODE:
+ *                 if not elements_only:
+ *                     s = funicode(c_node.content)             # <<<<<<<<<<<<<<
+ *                     if not remove_blank_text or s.strip():
+ *                         results.append(s)
+ */
+        __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 = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_1);
+        __Pyx_XDECREF(__pyx_v_s);
+        __pyx_v_s = __pyx_t_1;
+        __pyx_t_1 = 0;
+
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":138
+ *                 if not elements_only:
+ *                     s = funicode(c_node.content)
+ *                     if not remove_blank_text or s.strip():             # <<<<<<<<<<<<<<
+ *                         results.append(s)
+ *                     s = None
+ */
+        __pyx_t_3 = (!(__pyx_v_remove_blank_text != 0));
+        if (!__pyx_t_3) {
+          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_s, __pyx_n_s__strip); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 138; __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[19]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_4);
+          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+          __pyx_t_6 = __pyx_t_5;
+        } else {
+          __pyx_t_6 = __pyx_t_3;
+        }
+        if (__pyx_t_6) {
+
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":139
+ *                     s = funicode(c_node.content)
+ *                     if not remove_blank_text or s.strip():
+ *                         results.append(s)             # <<<<<<<<<<<<<<
+ *                     s = None
+ *             elif c_node.type == tree.XML_ELEMENT_NODE:
+ */
+          __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_results, __pyx_v_s); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          goto __pyx_L7;
+        }
+        __pyx_L7:;
+
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":140
+ *                     if not remove_blank_text or s.strip():
+ *                         results.append(s)
+ *                     s = None             # <<<<<<<<<<<<<<
  *             elif c_node.type == tree.XML_ELEMENT_NODE:
  *                 proxy = _newReadOnlyProxy(
  */
-      __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 = __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;
+        __Pyx_INCREF(Py_None);
+        __Pyx_DECREF(__pyx_v_s);
+        __pyx_v_s = Py_None;
+        goto __pyx_L6;
+      }
+      __pyx_L6:;
       goto __pyx_L5;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":120
- *             if c_node.type == tree.XML_TEXT_NODE:
- *                 results.append(funicode(c_node.content))
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":141
+ *                         results.append(s)
+ *                     s = None
  *             elif c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
  *                 proxy = _newReadOnlyProxy(
  *                     context._extension_element_proxy, c_node)
  */
-    __pyx_t_3 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
-    if (__pyx_t_3) {
+    __pyx_t_6 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
+    if (__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":122
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":143
  *             elif c_node.type == tree.XML_ELEMENT_NODE:
  *                 proxy = _newReadOnlyProxy(
  *                     context._extension_element_proxy, c_node)             # <<<<<<<<<<<<<<
  *                 results.append(proxy)
  *                 # unlink node and make sure it will be freed later on
  */
-      __pyx_t_1 = ((PyObject *)__pyx_v_context->_extension_element_proxy);
-      __Pyx_INCREF(__pyx_t_1);
-      __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+      __pyx_t_4 = ((PyObject *)__pyx_v_context->_extension_element_proxy);
+      __Pyx_INCREF(__pyx_t_4);
+      __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_4), __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_1);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_XDECREF(((PyObject *)__pyx_v_proxy));
-      __pyx_v_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_5);
-      __pyx_t_5 = 0;
+      __pyx_v_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_1);
+      __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":123
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":144
  *                 proxy = _newReadOnlyProxy(
  *                     context._extension_element_proxy, c_node)
  *                 results.append(proxy)             # <<<<<<<<<<<<<<
  *                 # unlink node and make sure it will be freed later on
  *                 tree.xmlUnlinkNode(c_node)
  */
-      __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;}
+      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_results, ((PyObject *)__pyx_v_proxy)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":125
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":146
  *                 results.append(proxy)
  *                 # unlink node and make sure it will be freed later on
  *                 tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -144039,7 +145112,7 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
  */
       xmlUnlinkNode(__pyx_v_c_node);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":126
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":147
  *                 # unlink node and make sure it will be freed later on
  *                 tree.xmlUnlinkNode(c_node)
  *                 proxy.free_after_use()             # <<<<<<<<<<<<<<
@@ -144051,25 +145124,25 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":129
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":150
  *             else:
  *                 raise TypeError, \
  *                     u"unsupported XSLT result type: %d" % c_node.type             # <<<<<<<<<<<<<<
  *             c_node = c_next
  *         return results
  */
-      __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_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_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[19]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_1);
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_383), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+      __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+      {__pyx_filename = __pyx_f[19]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":130
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":151
  *                 raise TypeError, \
  *                     u"unsupported XSLT result type: %d" % c_node.type
  *             c_node = c_next             # <<<<<<<<<<<<<<
@@ -144079,7 +145152,7 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
     __pyx_v_c_node = __pyx_v_c_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":131
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":152
  *                     u"unsupported XSLT result type: %d" % c_node.type
  *             c_node = c_next
  *         return results             # <<<<<<<<<<<<<<
@@ -144095,18 +145168,19 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree.XSLTExtension._collectXSLTResultContent", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
   __Pyx_XDECREF((PyObject *)__pyx_v_proxy);
   __Pyx_XDECREF(__pyx_v_results);
+  __Pyx_XDECREF(__pyx_v_s);
   __Pyx_XGIVEREF(__pyx_r);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":134
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":155
  * 
  * 
  * cdef _registerXSLTExtensions(xslt.xsltTransformContext* c_ctxt,             # <<<<<<<<<<<<<<
@@ -144132,7 +145206,7 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_registerXSLTExtensions", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":136
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":157
  * cdef _registerXSLTExtensions(xslt.xsltTransformContext* c_ctxt,
  *                              extension_dict):
  *     for ns_utf, name_utf in extension_dict:             # <<<<<<<<<<<<<<
@@ -144143,7 +145217,7 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
     __pyx_t_1 = __pyx_v_extension_dict; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
     __pyx_t_3 = NULL;
   } else {
-    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_extension_dict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_extension_dict); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext;
   }
@@ -144151,23 +145225,23 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
     if (!__pyx_t_3 && PyList_CheckExact(__pyx_t_1)) {
       if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_3 && PyTuple_CheckExact(__pyx_t_1)) {
       if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_4 = __pyx_t_3(__pyx_t_1);
       if (unlikely(!__pyx_t_4)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
@@ -144183,7 +145257,7 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -144196,16 +145270,16 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
       __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
       #else
-      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       #endif
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -144213,7 +145287,7 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
       __Pyx_GOTREF(__pyx_t_5);
       index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_8 = NULL;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L6_unpacking_done;
@@ -144221,7 +145295,7 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __pyx_t_8 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[19]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
     __Pyx_XDECREF(__pyx_v_ns_utf);
@@ -144231,7 +145305,7 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
     __pyx_v_name_utf = __pyx_t_6;
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":139
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":160
  *         xslt.xsltRegisterExtElement(
  *             c_ctxt, _xcstr(name_utf), _xcstr(ns_utf),
  *             <xslt.xsltTransformFunction>_callExtensionElement)             # <<<<<<<<<<<<<<
@@ -144260,7 +145334,7 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":141
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":162
  *             <xslt.xsltTransformFunction>_callExtensionElement)
  * 
  * cdef void _callExtensionElement(xslt.xsltTransformContext* c_ctxt,             # <<<<<<<<<<<<<<
@@ -144311,7 +145385,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
   #endif
   __Pyx_RefNannySetupContext("_callExtensionElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":149
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":170
  *     cdef python.PyObject* dict_result
  *     cdef xmlNode* c_node
  *     cdef _ReadOnlyProxy context_node = None, self_node = None             # <<<<<<<<<<<<<<
@@ -144323,7 +145397,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
   __Pyx_INCREF(Py_None);
   __pyx_v_self_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":151
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":172
  *     cdef _ReadOnlyProxy context_node = None, self_node = None
  *     cdef object output_parent # not restricted to ro-nodes
  *     c_uri = _getNs(c_inst_node)             # <<<<<<<<<<<<<<
@@ -144332,17 +145406,17 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
   __pyx_v_c_uri = _getNs(__pyx_v_c_inst_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":152
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":173
  *     cdef object output_parent # not restricted to ro-nodes
  *     c_uri = _getNs(c_inst_node)
  *     if c_uri is NULL:             # <<<<<<<<<<<<<<
  *         # not allowed, and should never happen
  *         return
  */
-  __pyx_t_1 = (__pyx_v_c_uri == NULL);
+  __pyx_t_1 = ((__pyx_v_c_uri == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":154
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":175
  *     if c_uri is NULL:
  *         # not allowed, and should never happen
  *         return             # <<<<<<<<<<<<<<
@@ -144354,17 +145428,17 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":155
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":176
  *         # not allowed, and should never happen
  *         return
  *     if c_ctxt.xpathCtxt.userData is NULL:             # <<<<<<<<<<<<<<
  *         # just for safety, should never happen
  *         return
  */
-  __pyx_t_1 = (__pyx_v_c_ctxt->xpathCtxt->userData == NULL);
+  __pyx_t_1 = ((__pyx_v_c_ctxt->xpathCtxt->userData == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":157
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":178
  *     if c_ctxt.xpathCtxt.userData is NULL:
  *         # just for safety, should never happen
  *         return             # <<<<<<<<<<<<<<
@@ -144376,7 +145450,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":158
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":179
  *         # just for safety, should never happen
  *         return
  *     context = <_XSLTContext>c_ctxt.xpathCtxt.userData             # <<<<<<<<<<<<<<
@@ -144386,7 +145460,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__XSLTContext *)__pyx_v_c_ctxt->xpathCtxt->userData)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)__pyx_v_c_ctxt->xpathCtxt->userData);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":159
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":180
  *         return
  *     context = <_XSLTContext>c_ctxt.xpathCtxt.userData
  *     try:             # <<<<<<<<<<<<<<
@@ -144400,7 +145474,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
     __Pyx_XGOTREF(__pyx_t_4);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":160
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":181
  *     context = <_XSLTContext>c_ctxt.xpathCtxt.userData
  *     try:
  *         try:             # <<<<<<<<<<<<<<
@@ -144414,7 +145488,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
         __Pyx_XGOTREF(__pyx_t_7);
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":162
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":183
  *         try:
  *             dict_result = python.PyDict_GetItem(
  *                 context._extension_elements, (<unsigned char*>c_uri, <unsigned char*>c_inst_node.name))             # <<<<<<<<<<<<<<
@@ -144423,11 +145497,11 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
           __pyx_t_8 = ((PyObject *)__pyx_v_context->_extension_elements);
           __Pyx_INCREF(__pyx_t_8);
-          __pyx_t_9 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_uri)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+          __pyx_t_9 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_uri)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
           __Pyx_GOTREF(((PyObject *)__pyx_t_9));
-          __pyx_t_10 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_inst_node->name)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+          __pyx_t_10 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_inst_node->name)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
           __Pyx_GOTREF(((PyObject *)__pyx_t_10));
-          __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+          __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
           __Pyx_GOTREF(__pyx_t_11);
           PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_t_9));
           __Pyx_GIVEREF(((PyObject *)__pyx_t_9));
@@ -144439,47 +145513,47 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
           __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":163
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":184
  *             dict_result = python.PyDict_GetItem(
  *                 context._extension_elements, (<unsigned char*>c_uri, <unsigned char*>c_inst_node.name))
  *             if dict_result is NULL:             # <<<<<<<<<<<<<<
  *                 raise KeyError, \
  *                     u"extension element %s not found" % funicode(c_inst_node.name)
  */
-          __pyx_t_1 = (__pyx_v_dict_result == NULL);
+          __pyx_t_1 = ((__pyx_v_dict_result == NULL) != 0);
           if (__pyx_t_1) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":165
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":186
  *             if dict_result is NULL:
  *                 raise KeyError, \
  *                     u"extension element %s not found" % funicode(c_inst_node.name)             # <<<<<<<<<<<<<<
  *             extension = <object>dict_result
  * 
  */
-            __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_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 = 186; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
             __Pyx_GOTREF(__pyx_t_11);
-            __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_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_384), __pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 186; __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_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
-            {__pyx_filename = __pyx_f[19]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+            {__pyx_filename = __pyx_f[19]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
             goto __pyx_L21;
           }
           __pyx_L21:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":166
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":187
  *                 raise KeyError, \
  *                     u"extension element %s not found" % funicode(c_inst_node.name)
  *             extension = <object>dict_result             # <<<<<<<<<<<<<<
  * 
  *             try:
  */
-          if (!(likely(((((PyObject *)__pyx_v_dict_result)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_dict_result), __pyx_ptype_4lxml_5etree_XSLTExtension))))) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+          if (!(likely(((((PyObject *)__pyx_v_dict_result)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_dict_result), __pyx_ptype_4lxml_5etree_XSLTExtension))))) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
           __Pyx_INCREF(((PyObject *)__pyx_v_dict_result));
           __pyx_v_extension = ((struct __pyx_obj_4lxml_5etree_XSLTExtension *)((PyObject *)__pyx_v_dict_result));
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":168
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":189
  *             extension = <object>dict_result
  * 
  *             try:             # <<<<<<<<<<<<<<
@@ -144488,37 +145562,37 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
           /*try:*/ {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":170
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":191
  *             try:
  *                 # build the context proxy nodes
  *                 self_node = _newReadOnlyProxy(None, c_inst_node)             # <<<<<<<<<<<<<<
  *                 if _isElement(c_ctxt.insert):
  *                     output_parent = _newAppendOnlyProxy(self_node, c_ctxt.insert)
  */
-            __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None), __pyx_v_c_inst_node)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L25;}
+            __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None), __pyx_v_c_inst_node)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L25;}
             __Pyx_GOTREF(__pyx_t_8);
             __Pyx_DECREF(((PyObject *)__pyx_v_self_node));
             __pyx_v_self_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_8);
             __pyx_t_8 = 0;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":171
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":192
  *                 # build the context proxy nodes
  *                 self_node = _newReadOnlyProxy(None, c_inst_node)
  *                 if _isElement(c_ctxt.insert):             # <<<<<<<<<<<<<<
  *                     output_parent = _newAppendOnlyProxy(self_node, c_ctxt.insert)
  *                 else:
  */
-            __pyx_t_1 = _isElement(__pyx_v_c_ctxt->insert);
+            __pyx_t_1 = (_isElement(__pyx_v_c_ctxt->insert) != 0);
             if (__pyx_t_1) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":172
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":193
  *                 self_node = _newReadOnlyProxy(None, c_inst_node)
  *                 if _isElement(c_ctxt.insert):
  *                     output_parent = _newAppendOnlyProxy(self_node, c_ctxt.insert)             # <<<<<<<<<<<<<<
  *                 else:
  *                     # may be the document node or other stuff
  */
-              __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newAppendOnlyProxy(__pyx_v_self_node, __pyx_v_c_ctxt->insert)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 172; __pyx_clineno = __LINE__; goto __pyx_L25;}
+              __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newAppendOnlyProxy(__pyx_v_self_node, __pyx_v_c_ctxt->insert)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_8);
               __pyx_v_output_parent = __pyx_t_8;
               __pyx_t_8 = 0;
@@ -144526,21 +145600,21 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             }
             /*else*/ {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":175
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":196
  *                 else:
  *                     # may be the document node or other stuff
  *                     output_parent = _newOpaqueAppendOnlyNodeWrapper(c_ctxt.insert)             # <<<<<<<<<<<<<<
  *                 if c_context_node.type in (tree.XML_DOCUMENT_NODE,
  *                                            tree.XML_HTML_DOCUMENT_NODE):
  */
-              __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newOpaqueAppendOnlyNodeWrapper(__pyx_v_c_ctxt->insert)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L25;}
+              __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newOpaqueAppendOnlyNodeWrapper(__pyx_v_c_ctxt->insert)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_8);
               __pyx_v_output_parent = __pyx_t_8;
               __pyx_t_8 = 0;
             }
             __pyx_L27:;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":176
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":197
  *                     # may be the document node or other stuff
  *                     output_parent = _newOpaqueAppendOnlyNodeWrapper(c_ctxt.insert)
  *                 if c_context_node.type in (tree.XML_DOCUMENT_NODE,             # <<<<<<<<<<<<<<
@@ -144551,7 +145625,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             __pyx_t_1 = ((int)(__pyx_t_12 == XML_DOCUMENT_NODE));
             if (!__pyx_t_1) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":177
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":198
  *                     output_parent = _newOpaqueAppendOnlyNodeWrapper(c_ctxt.insert)
  *                 if c_context_node.type in (tree.XML_DOCUMENT_NODE,
  *                                            tree.XML_HTML_DOCUMENT_NODE):             # <<<<<<<<<<<<<<
@@ -144563,10 +145637,10 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             } else {
               __pyx_t_14 = __pyx_t_1;
             }
-            __pyx_t_1 = __pyx_t_14;
+            __pyx_t_1 = (__pyx_t_14 != 0);
             if (__pyx_t_1) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":178
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":199
  *                 if c_context_node.type in (tree.XML_DOCUMENT_NODE,
  *                                            tree.XML_HTML_DOCUMENT_NODE):
  *                     c_node = tree.xmlDocGetRootElement(<xmlDoc*>c_context_node)             # <<<<<<<<<<<<<<
@@ -144575,24 +145649,24 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
               __pyx_v_c_node = xmlDocGetRootElement(((xmlDoc *)__pyx_v_c_context_node));
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":179
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":200
  *                                            tree.XML_HTML_DOCUMENT_NODE):
  *                     c_node = tree.xmlDocGetRootElement(<xmlDoc*>c_context_node)
  *                     if c_node is not NULL:             # <<<<<<<<<<<<<<
  *                         context_node = _newReadOnlyProxy(self_node, c_node)
  *                     else:
  */
-              __pyx_t_1 = (__pyx_v_c_node != NULL);
+              __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
               if (__pyx_t_1) {
 
-                /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":180
+                /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":201
  *                     c_node = tree.xmlDocGetRootElement(<xmlDoc*>c_context_node)
  *                     if c_node is not NULL:
  *                         context_node = _newReadOnlyProxy(self_node, c_node)             # <<<<<<<<<<<<<<
  *                     else:
  *                         context_node = None
  */
-                __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(__pyx_v_self_node, __pyx_v_c_node)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L25;}
+                __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(__pyx_v_self_node, __pyx_v_c_node)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L25;}
                 __Pyx_GOTREF(__pyx_t_8);
                 __Pyx_DECREF(((PyObject *)__pyx_v_context_node));
                 __pyx_v_context_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_8);
@@ -144601,7 +145675,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
               }
               /*else*/ {
 
-                /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":182
+                /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":203
  *                         context_node = _newReadOnlyProxy(self_node, c_node)
  *                     else:
  *                         context_node = None             # <<<<<<<<<<<<<<
@@ -144616,7 +145690,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
               goto __pyx_L28;
             }
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":183
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":204
  *                     else:
  *                         context_node = None
  *                 elif c_context_node.type in (tree.XML_ATTRIBUTE_NODE,             # <<<<<<<<<<<<<<
@@ -144627,7 +145701,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             __pyx_t_1 = ((int)(__pyx_t_12 == XML_ATTRIBUTE_NODE));
             if (!__pyx_t_1) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":184
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":205
  *                         context_node = None
  *                 elif c_context_node.type in (tree.XML_ATTRIBUTE_NODE,
  *                                              tree.XML_TEXT_NODE,             # <<<<<<<<<<<<<<
@@ -144641,7 +145715,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             }
             if (!__pyx_t_13) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":185
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":206
  *                 elif c_context_node.type in (tree.XML_ATTRIBUTE_NODE,
  *                                              tree.XML_TEXT_NODE,
  *                                              tree.XML_CDATA_SECTION_NODE):             # <<<<<<<<<<<<<<
@@ -144653,44 +145727,44 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             } else {
               __pyx_t_14 = __pyx_t_13;
             }
-            __pyx_t_13 = __pyx_t_14;
+            __pyx_t_13 = (__pyx_t_14 != 0);
             if (__pyx_t_13) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":189
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":210
  *                     # nodes, as the smart-string factory must
  *                     # instantiate the parent proxy somehow...
  *                     raise TypeError("Unsupported element type: %d" % c_context_node.type)             # <<<<<<<<<<<<<<
  *                 else:
  *                     context_node  = _newReadOnlyProxy(self_node, c_context_node)
  */
-              __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_t_8 = PyInt_FromLong(__pyx_v_c_context_node->type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_8);
-              __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_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_136), __pyx_t_8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __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;}
+              __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_8);
               PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_t_11));
               __Pyx_GIVEREF(((PyObject *)__pyx_t_11));
               __pyx_t_11 = 0;
-              __pyx_t_11 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L25;}
+              __pyx_t_11 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_11);
               __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
               __Pyx_Raise(__pyx_t_11, 0, 0, 0);
               __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-              {__pyx_filename = __pyx_f[19]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L25;}
+              {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
               goto __pyx_L28;
             }
             /*else*/ {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":191
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":212
  *                     raise TypeError("Unsupported element type: %d" % c_context_node.type)
  *                 else:
  *                     context_node  = _newReadOnlyProxy(self_node, c_context_node)             # <<<<<<<<<<<<<<
  * 
  *                 # run the XSLT extension
  */
-              __pyx_t_11 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(__pyx_v_self_node, __pyx_v_c_context_node)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L25;}
+              __pyx_t_11 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(__pyx_v_self_node, __pyx_v_c_context_node)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_11);
               __Pyx_DECREF(((PyObject *)__pyx_v_context_node));
               __pyx_v_context_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_11);
@@ -144698,30 +145772,30 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             }
             __pyx_L28:;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":194
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":215
  * 
  *                 # run the XSLT extension
  *                 context._extension_element_proxy = self_node             # <<<<<<<<<<<<<<
  *                 extension.execute(context, self_node, context_node, output_parent)
  *             finally:
  */
-            if (!(likely(((((PyObject *)__pyx_v_self_node)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_self_node), __pyx_ptype_4lxml_5etree__ReadOnlyElementProxy))))) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L25;}
+            if (!(likely(((((PyObject *)__pyx_v_self_node)) == Py_None) || likely(__Pyx_TypeTest(((PyObject *)__pyx_v_self_node), __pyx_ptype_4lxml_5etree__ReadOnlyElementProxy))))) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L25;}
             __Pyx_INCREF(((PyObject *)__pyx_v_self_node));
             __Pyx_GIVEREF(((PyObject *)__pyx_v_self_node));
             __Pyx_GOTREF(__pyx_v_context->_extension_element_proxy);
             __Pyx_DECREF(((PyObject *)__pyx_v_context->_extension_element_proxy));
             __pyx_v_context->_extension_element_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *)__pyx_v_self_node);
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":195
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":216
  *                 # run the XSLT extension
  *                 context._extension_element_proxy = self_node
  *                 extension.execute(context, self_node, context_node, output_parent)             # <<<<<<<<<<<<<<
  *             finally:
  *                 context._extension_element_proxy = None
  */
-            __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_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 = 216; __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_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L25;}
             __Pyx_GOTREF(__pyx_t_8);
             __Pyx_INCREF(((PyObject *)__pyx_v_context));
             PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_context));
@@ -144735,14 +145809,14 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             __Pyx_INCREF(__pyx_v_output_parent);
             PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_v_output_parent);
             __Pyx_GIVEREF(__pyx_v_output_parent);
-            __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L25;}
+            __pyx_t_10 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L25;}
             __Pyx_GOTREF(__pyx_t_10);
             __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
             __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
             __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
           }
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":197
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":218
  *                 extension.execute(context, self_node, context_node, output_parent)
  *             finally:
  *                 context._extension_element_proxy = None             # <<<<<<<<<<<<<<
@@ -144772,7 +145846,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             __Pyx_DECREF(((PyObject *)__pyx_v_context->_extension_element_proxy));
             __pyx_v_context->_extension_element_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *)Py_None);
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":198
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":219
  *             finally:
  *                 context._extension_element_proxy = None
  *                 if self_node is not None:             # <<<<<<<<<<<<<<
@@ -144780,16 +145854,17 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  *         except Exception, e:
  */
             __pyx_t_13 = (((PyObject *)__pyx_v_self_node) != Py_None);
-            if (__pyx_t_13) {
+            __pyx_t_14 = (__pyx_t_13 != 0);
+            if (__pyx_t_14) {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":199
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":220
  *                 context._extension_element_proxy = None
  *                 if self_node is not None:
  *                     _freeReadOnlyProxies(self_node)             # <<<<<<<<<<<<<<
  *         except Exception, e:
  *             try:
  */
-              __pyx_t_10 = __pyx_f_4lxml_5etree__freeReadOnlyProxies(__pyx_v_self_node); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L30_error;}
+              __pyx_t_10 = __pyx_f_4lxml_5etree__freeReadOnlyProxies(__pyx_v_self_node); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L30_error;}
               __Pyx_GOTREF(__pyx_t_10);
               __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
               goto __pyx_L31;
@@ -144826,7 +145901,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
         __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
         __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":200
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":221
  *                 if self_node is not None:
  *                     _freeReadOnlyProxies(self_node)
  *         except Exception, e:             # <<<<<<<<<<<<<<
@@ -144836,14 +145911,14 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
         __pyx_t_15 = PyErr_ExceptionMatches(__pyx_builtin_Exception);
         if (__pyx_t_15) {
           __Pyx_AddTraceback("lxml.etree._callExtensionElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
-          if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_8, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+          if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_8, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
           __Pyx_GOTREF(__pyx_t_10);
           __Pyx_GOTREF(__pyx_t_8);
           __Pyx_GOTREF(__pyx_t_11);
           __Pyx_INCREF(__pyx_t_8);
           __pyx_v_e = __pyx_t_8;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":201
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":222
  *                     _freeReadOnlyProxies(self_node)
  *         except Exception, e:
  *             try:             # <<<<<<<<<<<<<<
@@ -144857,22 +145932,22 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             __Pyx_XGOTREF(__pyx_t_18);
             /*try:*/ {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":202
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":223
  *         except Exception, e:
  *             try:
  *                 e = unicode(e).encode(u"UTF-8")             # <<<<<<<<<<<<<<
  *             except:
  *                 e = repr(e).encode(u"UTF-8")
  */
-              __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
+              __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
               __Pyx_GOTREF(__pyx_t_9);
               __Pyx_INCREF(__pyx_v_e);
               PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_e);
               __Pyx_GIVEREF(__pyx_v_e);
-              __pyx_t_19 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
+              __pyx_t_19 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_19)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
               __Pyx_GOTREF(__pyx_t_19);
               __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
-              __pyx_t_9 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_t_19))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
+              __pyx_t_9 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_t_19))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
               __Pyx_GOTREF(((PyObject *)__pyx_t_9));
               __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
               __Pyx_DECREF(__pyx_v_e);
@@ -144887,7 +145962,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
             __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":203
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":224
  *             try:
  *                 e = unicode(e).encode(u"UTF-8")
  *             except:             # <<<<<<<<<<<<<<
@@ -144896,24 +145971,24 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
             /*except:*/ {
               __Pyx_AddTraceback("lxml.etree._callExtensionElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
-              if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_19, &__pyx_t_20) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
+              if (__Pyx_GetException(&__pyx_t_9, &__pyx_t_19, &__pyx_t_20) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
               __Pyx_GOTREF(__pyx_t_9);
               __Pyx_GOTREF(__pyx_t_19);
               __Pyx_GOTREF(__pyx_t_20);
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":204
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":225
  *                 e = unicode(e).encode(u"UTF-8")
  *             except:
  *                 e = repr(e).encode(u"UTF-8")             # <<<<<<<<<<<<<<
  *             message = python.PyBytes_FromFormat(
  *                 "Error executing extension element '%s': %s",
  */
-              __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_t_21 = PyObject_Repr(__pyx_v_e); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
               __Pyx_GOTREF(__pyx_t_21);
-              __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_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s__encode); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __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_380), 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_385), NULL); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __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);
@@ -144938,29 +146013,29 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
             __pyx_L42_try_end:;
           }
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":207
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":228
  *             message = python.PyBytes_FromFormat(
  *                 "Error executing extension element '%s': %s",
  *                 c_inst_node.name, _cstr(e))             # <<<<<<<<<<<<<<
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()
  */
-          __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_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_386, __pyx_v_c_inst_node->name, PyBytes_AS_STRING(__pyx_v_e))); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
           __Pyx_GOTREF(__pyx_t_20);
           __pyx_v_message = ((PyObject*)__pyx_t_20);
           __pyx_t_20 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":208
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":229
  *                 "Error executing extension element '%s': %s",
  *                 c_inst_node.name, _cstr(e))
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)             # <<<<<<<<<<<<<<
  *             context._exc._store_raised()
  *         except:
  */
-          __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;}
+          __pyx_t_23 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_message)); if (unlikely((!__pyx_t_23) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 229; __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
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":230
  *                 c_inst_node.name, _cstr(e))
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()             # <<<<<<<<<<<<<<
@@ -144974,7 +146049,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
           goto __pyx_L14_exception_handled;
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":210
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":231
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()
  *         except:             # <<<<<<<<<<<<<<
@@ -144983,34 +146058,34 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
         /*except:*/ {
           __Pyx_AddTraceback("lxml.etree._callExtensionElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
-          if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_8, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+          if (__Pyx_GetException(&__pyx_t_11, &__pyx_t_8, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
           __Pyx_GOTREF(__pyx_t_11);
           __Pyx_GOTREF(__pyx_t_8);
           __Pyx_GOTREF(__pyx_t_10);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":213
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":234
  *             # just in case
  *             message = python.PyBytes_FromFormat(
  *                 "Error executing extension element '%s'", c_inst_node.name)             # <<<<<<<<<<<<<<
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()
  */
-          __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_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_387, __pyx_v_c_inst_node->name)); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
           __Pyx_GOTREF(__pyx_t_20);
           __pyx_v_message = ((PyObject*)__pyx_t_20);
           __pyx_t_20 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":214
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":235
  *             message = python.PyBytes_FromFormat(
  *                 "Error executing extension element '%s'", c_inst_node.name)
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)             # <<<<<<<<<<<<<<
  *             context._exc._store_raised()
  *     except:
  */
-          __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;}
+          __pyx_t_23 = __Pyx_PyObject_AsString(((PyObject *)__pyx_v_message)); if (unlikely((!__pyx_t_23) && PyErr_Occurred())) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 235; __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
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":236
  *                 "Error executing extension element '%s'", c_inst_node.name)
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()             # <<<<<<<<<<<<<<
@@ -145051,7 +146126,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
     __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":216
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":237
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()
  *     except:             # <<<<<<<<<<<<<<
@@ -145060,21 +146135,21 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._callExtensionElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_8, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_10, &__pyx_t_8, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_10);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_11);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":218
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":239
  *     except:
  *         # no Python functions here - everything can fail...
  *         xslt.xsltTransformError(c_ctxt, NULL, c_inst_node,             # <<<<<<<<<<<<<<
  *                                 "Error during XSLT extension element evaluation")
  *         context._exc._store_raised()
  */
-      xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_k_383);
+      xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_k_388);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":220
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":241
  *         xslt.xsltTransformError(c_ctxt, NULL, c_inst_node,
  *                                 "Error during XSLT extension element evaluation")
  *         context._exc._store_raised()             # <<<<<<<<<<<<<<
@@ -145294,7 +146369,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_4assertValid(struct __pyx_ob
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_4 = (!__pyx_t_3);
+  __pyx_t_4 = ((!__pyx_t_3) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3261
@@ -145306,7 +146381,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_4assertValid(struct __pyx_ob
  */
     __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_384)); 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_389)); 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
@@ -145398,7 +146473,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_6assert_(struct __pyx_obj_4l
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_4 = (!__pyx_t_3);
+  __pyx_t_4 = ((!__pyx_t_3) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3271
@@ -145408,7 +146483,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_6assert_(struct __pyx_obj_4l
  *                 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_384)); 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_389)); 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;
@@ -145799,8 +146874,8 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_9error_log___get__(struct __
  */
   #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_309));
+  if (unlikely(!(__pyx_t_1 != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_310));
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -145857,7 +146932,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__assertValidDTDNode(PyObject *__py
  * @cython.internal
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_c_node != NULL))) {
+  if (unlikely(!((__pyx_v_c_node != NULL) != 0))) {
     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(__pyx_v_node);
@@ -145866,7 +146941,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__assertValidDTDNode(PyObject *__py
     __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_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_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_390), __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));
@@ -146014,7 +147089,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_DTDElementContentDecl_2__repr__(struct
   __pyx_t_4 = 0;
   __pyx_t_5 = 0;
   __pyx_t_7 = 0;
-  __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_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_391), ((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);
@@ -146086,7 +147161,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_DTDElementContentDecl_4name___get__(st
  *     property type:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->name != NULL)) {
+  if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -146567,7 +147642,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_DTDElementContentDecl_4left___get__(st
  *                node = _DTDElementContentDecl()
  *                node._dtd = self._dtd
  */
-  __pyx_t_3 = (__pyx_v_c1 != NULL);
+  __pyx_t_3 = ((__pyx_v_c1 != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":73
@@ -146707,7 +147782,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_DTDElementContentDecl_5right___get__(s
  *                node = _DTDElementContentDecl()
  *                node._dtd = self._dtd
  */
-  __pyx_t_3 = (__pyx_v_c2 != NULL);
+  __pyx_t_3 = ((__pyx_v_c2 != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":85
@@ -146933,7 +148008,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_DTDAttributeDecl_2__repr__(struct __py
   __pyx_t_7 = 0;
   __pyx_t_8 = 0;
   __pyx_t_10 = 0;
-  __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_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_392), ((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);
@@ -147008,7 +148083,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_DTDAttributeDecl_4name___get__(struct
  *     property elemname:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->name != NULL)) {
+  if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -147081,7 +148156,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_DTDAttributeDecl_8elemname___get__(str
  *     property prefix:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->elem != NULL)) {
+  if (((__pyx_v_self->_c_node->elem != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->elem); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -147154,7 +148229,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_DTDAttributeDecl_6prefix___get__(struc
  *     property type:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->prefix != NULL)) {
+  if (((__pyx_v_self->_c_node->prefix != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->prefix); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -147797,7 +148872,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_DTDAttributeDecl_13default_value___get
  *     def itervalues(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->defaultValue != NULL)) {
+  if (((__pyx_v_self->_c_node->defaultValue != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->defaultValue); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -147929,7 +149004,7 @@ static PyObject *__pyx_gb_4lxml_5etree_17_DTDAttributeDecl_6generator(__pyx_Gene
  *             c_node = c_node.next
  */
   while (1) {
-    __pyx_t_3 = (__pyx_cur_scope->__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_cur_scope->__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":169
@@ -148168,7 +149243,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_2__repr__(struct __pyx_
   __pyx_t_4 = 0;
   __pyx_t_5 = 0;
   __pyx_t_7 = 0;
-  __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_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_393), ((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);
@@ -148240,7 +149315,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_4name___get__(struct __
  *     property prefix:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->name != NULL)) {
+  if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -148313,7 +149388,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_6prefix___get__(struct
  *     property type:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->prefix != NULL)) {
+  if (((__pyx_v_self->_c_node->prefix != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->prefix); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -148396,7 +149471,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_4type___get__(struct __
  *                return "undefined"
  *            elif type == tree.XML_ELEMENT_TYPE_EMPTY:
  */
-  __pyx_t_3 = (__pyx_v_type == XML_ELEMENT_TYPE_UNDEFINED);
+  __pyx_t_3 = ((__pyx_v_type == XML_ELEMENT_TYPE_UNDEFINED) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":201
@@ -148420,7 +149495,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_4type___get__(struct __
  *                return "empty"
  *            elif type == tree.XML_ELEMENT_TYPE_ANY:
  */
-  __pyx_t_3 = (__pyx_v_type == XML_ELEMENT_TYPE_EMPTY);
+  __pyx_t_3 = ((__pyx_v_type == XML_ELEMENT_TYPE_EMPTY) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":203
@@ -148444,7 +149519,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_4type___get__(struct __
  *                return "any"
  *            elif type == tree.XML_ELEMENT_TYPE_MIXED:
  */
-  __pyx_t_3 = (__pyx_v_type == XML_ELEMENT_TYPE_ANY);
+  __pyx_t_3 = ((__pyx_v_type == XML_ELEMENT_TYPE_ANY) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":205
@@ -148468,7 +149543,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_4type___get__(struct __
  *                return "mixed"
  *            elif type == tree.XML_ELEMENT_TYPE_ELEMENT:
  */
-  __pyx_t_3 = (__pyx_v_type == XML_ELEMENT_TYPE_MIXED);
+  __pyx_t_3 = ((__pyx_v_type == XML_ELEMENT_TYPE_MIXED) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":207
@@ -148492,7 +149567,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_4type___get__(struct __
  *                return "element"
  *            else:
  */
-  __pyx_t_3 = (__pyx_v_type == XML_ELEMENT_TYPE_ELEMENT);
+  __pyx_t_3 = ((__pyx_v_type == XML_ELEMENT_TYPE_ELEMENT) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":209
@@ -148594,7 +149669,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_7content___get__(struct
  *                node = _DTDElementContentDecl()
  *                node._dtd = self._dtd
  */
-  __pyx_t_3 = (__pyx_v_content != NULL);
+  __pyx_t_3 = ((__pyx_v_content != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":218
@@ -148781,7 +149856,7 @@ static PyObject *__pyx_gb_4lxml_5etree_15_DTDElementDecl_6generator1(__pyx_Gener
  *             node._dtd = self._dtd
  */
   while (1) {
-    __pyx_t_3 = (__pyx_cur_scope->__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_cur_scope->__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":229
@@ -149045,7 +150120,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_DTDEntityDecl_2__repr__(struct __pyx_o
   __pyx_t_3 = 0;
   __pyx_t_1 = 0;
   __pyx_t_5 = 0;
-  __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_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_394), ((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);
@@ -149115,7 +150190,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_DTDEntityDecl_4name___get__(struct __p
  *     property orig:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->name != NULL)) {
+  if (((__pyx_v_self->_c_node->name != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -149188,7 +150263,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_DTDEntityDecl_4orig___get__(struct __p
  *     property content:
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->orig != NULL)) {
+  if (((__pyx_v_self->_c_node->orig != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->orig); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -149261,7 +150336,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_DTDEntityDecl_7content___get__(struct
  * ################################################################################
  */
   __Pyx_XDECREF(__pyx_r);
-  if ((__pyx_v_self->_c_node->content != NULL)) {
+  if (((__pyx_v_self->_c_node->content != NULL) != 0)) {
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->content); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = __pyx_t_3;
@@ -149406,14 +150481,14 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
-  PyObject *__pyx_t_7 = NULL;
+  int __pyx_t_5;
+  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_7;
   PyObject *__pyx_t_8 = NULL;
   PyObject *__pyx_t_9 = NULL;
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
-  int __pyx_t_12;
+  PyObject *__pyx_t_12 = NULL;
   xmlDtd *__pyx_t_13;
   const xmlChar *__pyx_t_14;
   int __pyx_lineno = 0;
@@ -149450,7 +150525,8 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *                 file = _encodeFilename(file)
  */
   __pyx_t_4 = (__pyx_v_file != Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":282
  *         _Validator.__init__(self)
@@ -149459,8 +150535,8 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *                 file = _encodeFilename(file)
  *                 with self._error_log:
  */
-    __pyx_t_4 = _isString(__pyx_v_file);
-    if (__pyx_t_4) {
+    __pyx_t_5 = (_isString(__pyx_v_file) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":283
  *         if file is not None:
@@ -149483,15 +150559,15 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *             elif hasattr(file, 'read'):
  */
       /*with:*/ {
-        __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;}
+        __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[20]; __pyx_lineno = 284; __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[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         /*try:*/ {
           {
-            __Pyx_ExceptionSave(&__pyx_t_7, &__pyx_t_8, &__pyx_t_9);
-            __Pyx_XGOTREF(__pyx_t_7);
+            __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
             __Pyx_XGOTREF(__pyx_t_8);
             __Pyx_XGOTREF(__pyx_t_9);
+            __Pyx_XGOTREF(__pyx_t_10);
             /*try:*/ {
 
               /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":285
@@ -149503,9 +150579,9 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  */
               __pyx_v_self->_c_dtd = xmlParseDTD(NULL, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_file));
             }
-            __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;
+            __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
             goto __pyx_L16_try_end;
             __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
             __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -149524,26 +150600,26 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
               __Pyx_GOTREF(__pyx_t_3);
               __Pyx_GOTREF(__pyx_t_2);
               __Pyx_GOTREF(__pyx_t_1);
-              __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
-              __Pyx_GOTREF(__pyx_t_10);
+              __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+              __Pyx_GOTREF(__pyx_t_11);
               __Pyx_INCREF(__pyx_t_3);
-              PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);
+              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);
               __Pyx_GIVEREF(__pyx_t_3);
               __Pyx_INCREF(__pyx_t_2);
-              PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2);
+              PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2);
               __Pyx_GIVEREF(__pyx_t_2);
               __Pyx_INCREF(__pyx_t_1);
-              PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_1);
+              PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_1);
               __Pyx_GIVEREF(__pyx_t_1);
-              __pyx_t_11 = PyObject_Call(__pyx_t_5, __pyx_t_10, NULL);
-              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-              if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
-              __Pyx_GOTREF(__pyx_t_11);
-              __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_11);
-              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-              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_t_12 = PyObject_Call(__pyx_t_6, __pyx_t_11, NULL);
+              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+              if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+              __Pyx_GOTREF(__pyx_t_12);
+              __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12);
+              __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+              if (__pyx_t_5 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L11_except_error;}
+              __pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
+              if (__pyx_t_4) {
                 __Pyx_GIVEREF(__pyx_t_3);
                 __Pyx_GIVEREF(__pyx_t_2);
                 __Pyx_GIVEREF(__pyx_t_1);
@@ -149553,40 +150629,40 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
                 goto __pyx_L19;
               }
               __pyx_L19:;
-              __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
+              __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
               __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
               __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
               __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
               goto __pyx_L10_exception_handled;
             }
             __pyx_L11_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);
+            __Pyx_XGIVEREF(__pyx_t_10);
+            __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
             goto __pyx_L1_error;
             __pyx_L10_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_XGIVEREF(__pyx_t_10);
+            __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
             __pyx_L16_try_end:;
           }
         }
         /*finally:*/ {
-          if (__pyx_t_5) {
-            __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 (__pyx_t_12 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          if (__pyx_t_6) {
+            __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_395, NULL);
+            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+            if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __Pyx_GOTREF(__pyx_t_10);
+            __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_10);
+            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+            if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
         }
         goto __pyx_L20;
         __pyx_L5_error:;
-        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         goto __pyx_L1_error;
         __pyx_L20:;
       }
@@ -149600,8 +150676,9 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *                 self._c_dtd = _parseDtdFromFilelike(file)
  *             else:
  */
-    __pyx_t_12 = PyObject_HasAttr(__pyx_v_file, ((PyObject *)__pyx_n_s__read)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_12) {
+    __pyx_t_4 = PyObject_HasAttr(__pyx_v_file, ((PyObject *)__pyx_n_s__read)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = (__pyx_t_4 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":287
  *                     self._c_dtd = xmlparser.xmlParseDTD(NULL, _xcstr(file))
@@ -149625,7 +150702,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  */
       __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_391), 0, 0);
+      __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_396), 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;}
     }
@@ -149640,8 +150717,9 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *             with self._error_log:
  *                 self._c_dtd = xmlparser.xmlParseDTD(<const_xmlChar*>external_id, NULL)
  */
-  __pyx_t_12 = (__pyx_v_external_id != Py_None);
-  if (__pyx_t_12) {
+  __pyx_t_5 = (__pyx_v_external_id != Py_None);
+  __pyx_t_4 = (__pyx_t_5 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":291
  *                 raise DTDParseError, u"file must be a filename or file-like object"
@@ -149651,15 +150729,15 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *         else:
  */
     /*with:*/ {
-      __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;}
+      __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[20]; __pyx_lineno = 291; __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[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L21_error;}
       /*try:*/ {
         {
-          __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_8, &__pyx_t_7);
+          __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8);
+          __Pyx_XGOTREF(__pyx_t_10);
           __Pyx_XGOTREF(__pyx_t_9);
           __Pyx_XGOTREF(__pyx_t_8);
-          __Pyx_XGOTREF(__pyx_t_7);
           /*try:*/ {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":292
@@ -149672,12 +150750,12 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
             __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_10); __pyx_t_10 = 0;
           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
           __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
-          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
           goto __pyx_L32_try_end;
           __pyx_L25_error:;
-          __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
+          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
           __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
           __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
           __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -149695,26 +150773,26 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
             __Pyx_GOTREF(__pyx_t_1);
             __Pyx_GOTREF(__pyx_t_2);
             __Pyx_GOTREF(__pyx_t_3);
-            __pyx_t_10 = PyTuple_New(3); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
-            __Pyx_GOTREF(__pyx_t_10);
+            __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
+            __Pyx_GOTREF(__pyx_t_11);
             __Pyx_INCREF(__pyx_t_1);
-            PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_1);
+            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
             __Pyx_GIVEREF(__pyx_t_1);
             __Pyx_INCREF(__pyx_t_2);
-            PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2);
+            PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2);
             __Pyx_GIVEREF(__pyx_t_2);
             __Pyx_INCREF(__pyx_t_3);
-            PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_3);
+            PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_3);
             __Pyx_GIVEREF(__pyx_t_3);
-            __pyx_t_11 = PyObject_Call(__pyx_t_5, __pyx_t_10, NULL);
-            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-            if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
-            __Pyx_GOTREF(__pyx_t_11);
-            __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_11);
-            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-            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_t_12 = PyObject_Call(__pyx_t_6, __pyx_t_11, NULL);
+            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+            if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
+            __Pyx_GOTREF(__pyx_t_12);
+            __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_12);
+            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+            if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L27_except_error;}
+            __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
+            if (__pyx_t_5) {
               __Pyx_GIVEREF(__pyx_t_1);
               __Pyx_GIVEREF(__pyx_t_2);
               __Pyx_GIVEREF(__pyx_t_3);
@@ -149724,40 +150802,40 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
               goto __pyx_L35;
             }
             __pyx_L35:;
-            __Pyx_DECREF(((PyObject *)__pyx_t_10)); __pyx_t_10 = 0;
+            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
             __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
             __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
             __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
             goto __pyx_L26_exception_handled;
           }
           __pyx_L27_except_error:;
+          __Pyx_XGIVEREF(__pyx_t_10);
           __Pyx_XGIVEREF(__pyx_t_9);
           __Pyx_XGIVEREF(__pyx_t_8);
-          __Pyx_XGIVEREF(__pyx_t_7);
-          __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
+          __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
           goto __pyx_L1_error;
           __pyx_L26_exception_handled:;
+          __Pyx_XGIVEREF(__pyx_t_10);
           __Pyx_XGIVEREF(__pyx_t_9);
           __Pyx_XGIVEREF(__pyx_t_8);
-          __Pyx_XGIVEREF(__pyx_t_7);
-          __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_8, __pyx_t_7);
+          __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
           __pyx_L32_try_end:;
         }
       }
       /*finally:*/ {
-        if (__pyx_t_5) {
-          __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 (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__pyx_t_6) {
+          __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_397, NULL);
+          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+          if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_8);
+          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8);
+          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+          if (__pyx_t_5 < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
       }
       goto __pyx_L36;
       __pyx_L21_error:;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L1_error;
       __pyx_L36:;
     }
@@ -149774,7 +150852,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  */
     __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_393), 0, 0);
+    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_398), 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;}
   }
@@ -149787,8 +150865,8 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *             raise DTDParseError(
  *                 self._error_log._buildExceptionMessage(u"error parsing DTD"),
  */
-  __pyx_t_4 = (__pyx_v_self->_c_dtd == NULL);
-  if (__pyx_t_4) {
+  __pyx_t_5 = ((__pyx_v_self->_c_dtd == NULL) != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":297
  * 
@@ -149807,7 +150885,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *                 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_394)); 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_399)); 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
@@ -149842,7 +150920,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_10);
+  __Pyx_XDECREF(__pyx_t_11);
   __Pyx_AddTraceback("lxml.etree.DTD.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -149891,9 +150969,9 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_4name___get__(struct __pyx_obj_4lxml
  *     property external_id:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = (__pyx_v_self->_c_dtd != NULL);
+  __pyx_t_2 = ((__pyx_v_self->_c_dtd != NULL) != 0);
   if (__pyx_t_2) {
-    __pyx_t_3 = (__pyx_v_self->_c_dtd->name != NULL);
+    __pyx_t_3 = ((__pyx_v_self->_c_dtd->name != NULL) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -149964,9 +151042,9 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_11external_id___get__(struct __pyx_o
  *     property system_url:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = (__pyx_v_self->_c_dtd != NULL);
+  __pyx_t_2 = ((__pyx_v_self->_c_dtd != NULL) != 0);
   if (__pyx_t_2) {
-    __pyx_t_3 = (__pyx_v_self->_c_dtd->ExternalID != NULL);
+    __pyx_t_3 = ((__pyx_v_self->_c_dtd->ExternalID != NULL) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -150037,9 +151115,9 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_10system_url___get__(struct __pyx_ob
  *     def iterelements(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = (__pyx_v_self->_c_dtd != NULL);
+  __pyx_t_2 = ((__pyx_v_self->_c_dtd != NULL) != 0);
   if (__pyx_t_2) {
-    __pyx_t_3 = (__pyx_v_self->_c_dtd->SystemID != NULL);
+    __pyx_t_3 = ((__pyx_v_self->_c_dtd->SystemID != NULL) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -150155,7 +151233,7 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_6generator2(__pyx_GeneratorObject *_
  *         while c_node is not NULL:
  *             if c_node.type == tree.XML_ELEMENT_DECL:
  */
-  if ((__pyx_cur_scope->__pyx_v_self->_c_dtd != NULL)) {
+  if (((__pyx_cur_scope->__pyx_v_self->_c_dtd != NULL) != 0)) {
     __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->_c_dtd->children;
   } else {
     __pyx_t_1 = NULL;
@@ -150170,7 +151248,7 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_6generator2(__pyx_GeneratorObject *_
  *                 node = _DTDElementDecl()
  */
   while (1) {
-    __pyx_t_2 = (__pyx_cur_scope->__pyx_v_c_node != NULL);
+    __pyx_t_2 = ((__pyx_cur_scope->__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":316
@@ -150180,7 +151258,7 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_6generator2(__pyx_GeneratorObject *_
  *                 node = _DTDElementDecl()
  *                 node._dtd = self
  */
-    __pyx_t_2 = (__pyx_cur_scope->__pyx_v_c_node->type == XML_ELEMENT_DECL);
+    __pyx_t_2 = ((__pyx_cur_scope->__pyx_v_c_node->type == XML_ELEMENT_DECL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":317
@@ -150415,7 +151493,7 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_11generator3(__pyx_GeneratorObject *
  *         while c_node is not NULL:
  *             if c_node.type == tree.XML_ENTITY_DECL:
  */
-  if ((__pyx_cur_scope->__pyx_v_self->_c_dtd != NULL)) {
+  if (((__pyx_cur_scope->__pyx_v_self->_c_dtd != NULL) != 0)) {
     __pyx_t_1 = __pyx_cur_scope->__pyx_v_self->_c_dtd->children;
   } else {
     __pyx_t_1 = NULL;
@@ -150430,7 +151508,7 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_11generator3(__pyx_GeneratorObject *
  *                 node = _DTDEntityDecl()
  */
   while (1) {
-    __pyx_t_2 = (__pyx_cur_scope->__pyx_v_c_node != NULL);
+    __pyx_t_2 = ((__pyx_cur_scope->__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":329
@@ -150440,7 +151518,7 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_11generator3(__pyx_GeneratorObject *
  *                 node = _DTDEntityDecl()
  *                 node._dtd = self
  */
-    __pyx_t_2 = (__pyx_cur_scope->__pyx_v_c_node->type == XML_ENTITY_DECL);
+    __pyx_t_2 = ((__pyx_cur_scope->__pyx_v_c_node->type == XML_ENTITY_DECL) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":330
@@ -150728,8 +151806,8 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  *         root_node = _rootNodeOrRaise(etree)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_dtd != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_395));
+  if (unlikely(!((__pyx_v_self->_c_dtd != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_400));
     {__pyx_filename = __pyx_f[20]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -150774,7 +151852,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  *             raise DTDError(u"Failed to create validation context")
  * 
  */
-  __pyx_t_2 = (__pyx_v_valid_ctxt == NULL);
+  __pyx_t_2 = ((__pyx_v_valid_ctxt == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":361
@@ -150786,7 +151864,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  */
     __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_397), 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_402), 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);
@@ -150891,7 +151969,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
             __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_12);
             __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
             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);
+            __pyx_t_13 = ((!(__pyx_t_2 != 0)) != 0);
             if (__pyx_t_13) {
               __Pyx_GIVEREF(__pyx_t_3);
               __Pyx_GIVEREF(__pyx_t_1);
@@ -150924,7 +152002,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
       }
       /*finally:*/ {
         if (__pyx_t_4) {
-          __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_398, NULL);
+          __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_403, 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);
@@ -150985,7 +152063,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  *             raise DTDValidateError(u"Internal error in DTD validation",
  *                                    self._error_log)
  */
-  __pyx_t_13 = (__pyx_v_ret == -1);
+  __pyx_t_13 = ((__pyx_v_ret == -1) != 0);
   if (__pyx_t_13) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":372
@@ -151007,9 +152085,9 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  */
     __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_399));
-    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_399));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_399));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_404));
+    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_404));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_404));
     __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));
@@ -151031,7 +152109,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  *             return True
  *         else:
  */
-  __pyx_t_13 = (__pyx_v_ret == 1);
+  __pyx_t_13 = ((__pyx_v_ret == 1) != 0);
   if (__pyx_t_13) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":375
@@ -151230,7 +152308,7 @@ static xmlDtd *__pyx_f_4lxml_5etree__parseDtdFromFilelike(PyObject *__pyx_v_file
           __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_11);
           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
           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);
+          __pyx_t_12 = ((!(__pyx_t_10 != 0)) != 0);
           if (__pyx_t_12) {
             __Pyx_GIVEREF(__pyx_t_2);
             __Pyx_GIVEREF(__pyx_t_1);
@@ -151263,7 +152341,7 @@ static xmlDtd *__pyx_f_4lxml_5etree__parseDtdFromFilelike(PyObject *__pyx_v_file
     }
     /*finally:*/ {
       if (__pyx_t_3) {
-        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_400, NULL);
+        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_405, 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);
@@ -151295,7 +152373,7 @@ static xmlDtd *__pyx_f_4lxml_5etree__parseDtdFromFilelike(PyObject *__pyx_v_file
  *         raise DTDParseError(u"error parsing DTD", error_log)
  *     return c_dtd
  */
-  __pyx_t_12 = (__pyx_v_c_dtd == NULL);
+  __pyx_t_12 = ((__pyx_v_c_dtd == NULL) != 0);
   if (__pyx_t_12) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":394
@@ -151309,9 +152387,9 @@ static xmlDtd *__pyx_f_4lxml_5etree__parseDtdFromFilelike(PyObject *__pyx_v_file
     __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_394));
-    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_394));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_394));
+    __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_error_log));
     PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_error_log));
@@ -151381,7 +152459,7 @@ static struct __pyx_obj_4lxml_5etree_DTD *__pyx_f_4lxml_5etree__dtdFactory(xmlDt
  *         return None
  *     dtd = DTD.__new__(DTD)
  */
-  __pyx_t_1 = (__pyx_v_c_dtd == NULL);
+  __pyx_t_1 = ((__pyx_v_c_dtd == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":401
@@ -151428,7 +152506,7 @@ static struct __pyx_obj_4lxml_5etree_DTD *__pyx_f_4lxml_5etree__dtdFactory(xmlDt
  *         raise MemoryError()
  *     _Validator.__init__(dtd)
  */
-  __pyx_t_1 = (__pyx_v_dtd->_c_dtd == NULL);
+  __pyx_t_1 = ((__pyx_v_dtd->_c_dtd == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":405
@@ -151613,8 +152691,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
-  xmlNode *__pyx_t_5;
-  int __pyx_t_6;
+  int __pyx_t_5;
+  xmlNode *__pyx_t_6;
   int __pyx_t_7;
   xmlDoc *__pyx_t_8;
   PyObject *__pyx_t_9 = NULL;
@@ -151666,7 +152744,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *             root_node = _rootNodeOrRaise(etree)
  */
   __pyx_t_4 = (__pyx_v_etree != Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":42
  *         fake_c_doc = NULL
@@ -151699,8 +152778,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *             # work around for libxml2 crash bug if document is not RNG at all
  *             if _LIBXML_VERSION_INT < 20624:
  */
-    __pyx_t_5 = __pyx_v_root_node->_c_node;
-    __pyx_v_c_node = __pyx_t_5;
+    __pyx_t_6 = __pyx_v_root_node->_c_node;
+    __pyx_v_c_node = __pyx_t_6;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":46
  *             c_node = root_node._c_node
@@ -151709,8 +152788,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                 c_href = _getNs(c_node)
  *                 if c_href is NULL or \
  */
-    __pyx_t_4 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20624);
-    if (__pyx_t_4) {
+    __pyx_t_5 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20624) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":47
  *             # work around for libxml2 crash bug if document is not RNG at all
@@ -151728,8 +152807,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                        tree.xmlStrcmp(
  *                            c_href, <unsigned char*>'http://relaxng.org/ns/structure/1.0') != 0:
  */
-      __pyx_t_4 = (__pyx_v_c_href == NULL);
-      if (!__pyx_t_4) {
+      __pyx_t_5 = ((__pyx_v_c_href == NULL) != 0);
+      if (!__pyx_t_5) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":50
  *                 if c_href is NULL or \
@@ -151738,10 +152817,10 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                     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_401))) != 0);
-        __pyx_t_7 = __pyx_t_6;
-      } else {
+        __pyx_t_4 = ((xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_406))) != 0) != 0);
         __pyx_t_7 = __pyx_t_4;
+      } else {
+        __pyx_t_7 = __pyx_t_5;
       }
       if (__pyx_t_7) {
 
@@ -151754,7 +152833,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  */
         __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_402), 0, 0);
+        __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_407), 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;
@@ -151793,7 +152872,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                 doc = None
  */
   __pyx_t_7 = (__pyx_v_file != Py_None);
-  if (__pyx_t_7) {
+  __pyx_t_5 = (__pyx_t_7 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":55
  *             parser_ctxt = relaxng.xmlRelaxNGNewDocParserCtxt(fake_c_doc)
@@ -151802,8 +152882,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                 doc = None
  *                 filename = _encodeFilename(file)
  */
-    __pyx_t_7 = _isString(__pyx_v_file);
-    if (__pyx_t_7) {
+    __pyx_t_5 = (_isString(__pyx_v_file) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":56
  *         elif file is not None:
@@ -151891,11 +152971,11 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
               __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
               if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
               __Pyx_GOTREF(__pyx_t_15);
-              __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_15);
+              __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_15);
               __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
-              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) {
+              if (__pyx_t_5 < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L13_except_error;}
+              __pyx_t_7 = ((!(__pyx_t_5 != 0)) != 0);
+              if (__pyx_t_7) {
                 __Pyx_GIVEREF(__pyx_t_3);
                 __Pyx_GIVEREF(__pyx_t_2);
                 __Pyx_GIVEREF(__pyx_t_1);
@@ -151927,13 +153007,13 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
         }
         /*finally:*/ {
           if (__pyx_t_9) {
-            __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_403, NULL);
+            __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_408, 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_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_13);
             __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
-            if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            if (__pyx_t_7 < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
         }
         goto __pyx_L22;
@@ -151981,7 +153061,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  */
     __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_404), 0, 0);
+    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_409), 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;}
   }
@@ -151994,8 +153074,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *             if fake_c_doc is not NULL:
  *                 _destroyFakeDoc(doc._c_doc, fake_c_doc)
  */
-  __pyx_t_4 = (__pyx_v_parser_ctxt == NULL);
-  if (__pyx_t_4) {
+  __pyx_t_7 = ((__pyx_v_parser_ctxt == NULL) != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":67
  * 
@@ -152004,8 +153084,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                 _destroyFakeDoc(doc._c_doc, fake_c_doc)
  *             raise RelaxNGParseError(
  */
-    __pyx_t_4 = (__pyx_v_fake_c_doc != NULL);
-    if (__pyx_t_4) {
+    __pyx_t_7 = ((__pyx_v_fake_c_doc != NULL) != 0);
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":68
  *         if parser_ctxt is NULL:
@@ -152036,7 +153116,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                     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_405)); 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_410)); 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
@@ -152090,8 +153170,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *             relaxng.xmlRelaxNGFreeParserCtxt(parser_ctxt)
  *         if self._c_schema is NULL:
  */
-  __pyx_t_4 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20624);
-  if (__pyx_t_4) {
+  __pyx_t_7 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20624) != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":79
  * 
@@ -152112,8 +153192,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *             if fake_c_doc is not NULL:
  *                 if _LIBXML_VERSION_INT < 20624:
  */
-  __pyx_t_4 = (__pyx_v_self->_c_schema == NULL);
-  if (__pyx_t_4) {
+  __pyx_t_7 = ((__pyx_v_self->_c_schema == NULL) != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":81
  *             relaxng.xmlRelaxNGFreeParserCtxt(parser_ctxt)
@@ -152122,8 +153202,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                 if _LIBXML_VERSION_INT < 20624:
  *                     relaxng.xmlRelaxNGFreeParserCtxt(parser_ctxt)
  */
-    __pyx_t_4 = (__pyx_v_fake_c_doc != NULL);
-    if (__pyx_t_4) {
+    __pyx_t_7 = ((__pyx_v_fake_c_doc != NULL) != 0);
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":82
  *         if self._c_schema is NULL:
@@ -152132,8 +153212,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                     relaxng.xmlRelaxNGFreeParserCtxt(parser_ctxt)
  *                 _destroyFakeDoc(doc._c_doc, fake_c_doc)
  */
-      __pyx_t_4 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20624);
-      if (__pyx_t_4) {
+      __pyx_t_7 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20624) != 0);
+      if (__pyx_t_7) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":83
  *             if fake_c_doc is not NULL:
@@ -152176,7 +153256,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                     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_406)); 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_411)); 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
@@ -152212,8 +153292,8 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *             _destroyFakeDoc(doc._c_doc, fake_c_doc)
  * 
  */
-  __pyx_t_4 = (__pyx_v_fake_c_doc != NULL);
-  if (__pyx_t_4) {
+  __pyx_t_7 = ((__pyx_v_fake_c_doc != NULL) != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":90
  *                 self._error_log)
@@ -152365,8 +153445,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  *         root_node = _rootNodeOrRaise(etree)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_schema != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_407));
+  if (unlikely(!((__pyx_v_self->_c_schema != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_412));
     {__pyx_filename = __pyx_f[21]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -152411,7 +153491,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  *             raise MemoryError()
  * 
  */
-  __pyx_t_2 = (__pyx_v_valid_ctxt == NULL);
+  __pyx_t_2 = ((__pyx_v_valid_ctxt == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":113
@@ -152508,7 +153588,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  *             raise RelaxNGValidateError(
  *                 u"Internal error in Relax NG validation",
  */
-  __pyx_t_2 = (__pyx_v_ret == -1);
+  __pyx_t_2 = ((__pyx_v_ret == -1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":125
@@ -152518,7 +153598,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  *                 u"Internal error in Relax NG validation",
  *                 self._error_log)
  */
-    __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_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_413); 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
@@ -152530,9 +153610,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  */
     __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_409));
-    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_409));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_409));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_414));
+    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_414));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_414));
     __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));
@@ -152554,7 +153634,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  *             return True
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_ret == 0);
+  __pyx_t_2 = ((__pyx_v_ret == 0) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":129
@@ -152688,7 +153768,7 @@ static int __pyx_pw_4lxml_5etree_9XMLSchema_3__init__(PyObject *__pyx_v_self, Py
  */
     values[0] = ((PyObject *)Py_None);
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_410;
+    values[2] = __pyx_k_415;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -152753,8 +153833,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
-  xmlNode *__pyx_t_5;
-  int __pyx_t_6;
+  int __pyx_t_5;
+  xmlNode *__pyx_t_6;
   int __pyx_t_7;
   xmlDoc *__pyx_t_8;
   int __pyx_lineno = 0;
@@ -152809,7 +153889,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *             root_node = _rootNodeOrRaise(etree)
  */
   __pyx_t_1 = (__pyx_v_etree != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_5 = (__pyx_t_1 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":55
  *         fake_c_doc = NULL
@@ -152842,8 +153923,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                 c_node = root_node._c_node
  *                 c_href = _getNs(c_node)
  */
-    __pyx_t_1 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20624);
-    if (__pyx_t_1) {
+    __pyx_t_5 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT < 20624) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":60
  *             # work around for libxml2 bug if document is not XML schema at all
@@ -152852,8 +153933,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                 c_href = _getNs(c_node)
  *                 if c_href is NULL or \
  */
-      __pyx_t_5 = __pyx_v_root_node->_c_node;
-      __pyx_v_c_node = __pyx_t_5;
+      __pyx_t_6 = __pyx_v_root_node->_c_node;
+      __pyx_v_c_node = __pyx_t_6;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":61
  *             if _LIBXML_VERSION_INT < 20624:
@@ -152871,8 +153952,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                        tree.xmlStrcmp(
  *                            c_href, <unsigned char*>'http://www.w3.org/2001/XMLSchema') != 0:
  */
-      __pyx_t_1 = (__pyx_v_c_href == NULL);
-      if (!__pyx_t_1) {
+      __pyx_t_5 = ((__pyx_v_c_href == NULL) != 0);
+      if (!__pyx_t_5) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":64
  *                 if c_href is NULL or \
@@ -152881,10 +153962,10 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                     raise XMLSchemaParseError, u"Document is not XML Schema"
  * 
  */
-        __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_1 = ((xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_416))) != 0) != 0);
         __pyx_t_7 = __pyx_t_1;
+      } else {
+        __pyx_t_7 = __pyx_t_5;
       }
       if (__pyx_t_7) {
 
@@ -152897,7 +153978,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  */
         __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_412), 0, 0);
+        __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_417), 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;
@@ -152936,7 +154017,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                 doc = None
  */
   __pyx_t_7 = (__pyx_v_file != Py_None);
-  if (__pyx_t_7) {
+  __pyx_t_5 = (__pyx_t_7 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":70
  *             parser_ctxt = xmlschema.xmlSchemaNewDocParserCtxt(fake_c_doc)
@@ -152945,8 +154027,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                 doc = None
  *                 filename = _encodeFilename(file)
  */
-    __pyx_t_7 = _isString(__pyx_v_file);
-    if (__pyx_t_7) {
+    __pyx_t_5 = (_isString(__pyx_v_file) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":71
  *         elif file is not None:
@@ -153017,7 +154099,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  */
     __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_404), 0, 0);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_409), 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;}
   }
@@ -153030,8 +154112,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *             xmlschema.xmlSchemaSetParserStructuredErrors(
  *                 parser_ctxt, _receiveError, <void*>self._error_log)
  */
-  __pyx_t_7 = (__pyx_v_parser_ctxt != NULL);
-  if (__pyx_t_7) {
+  __pyx_t_5 = ((__pyx_v_parser_ctxt != NULL) != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":82
  *         if parser_ctxt is not NULL:
@@ -153049,7 +154131,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                 with nogil:
  *                     self._c_schema = xmlschema.xmlSchemaParse(parser_ctxt)
  */
-    __pyx_t_7 = (((PyObject *)__pyx_v_doc) == Py_None);
+    __pyx_t_5 = (((PyObject *)__pyx_v_doc) == Py_None);
+    __pyx_t_7 = (__pyx_t_5 != 0);
     if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":84
@@ -153132,7 +154215,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                 xmlschema.xmlSchemaFreeParserCtxt(parser_ctxt)
  * 
  */
-    __pyx_t_7 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20624);
+    __pyx_t_7 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20624) != 0);
     if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":96
@@ -153157,7 +154240,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *             _destroyFakeDoc(doc._c_doc, fake_c_doc)
  * 
  */
-  __pyx_t_7 = (__pyx_v_fake_c_doc != NULL);
+  __pyx_t_7 = ((__pyx_v_fake_c_doc != NULL) != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":99
@@ -153179,7 +154262,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *             raise XMLSchemaParseError(
  *                 self._error_log._buildExceptionMessage(
  */
-  __pyx_t_7 = (__pyx_v_self->_c_schema == NULL);
+  __pyx_t_7 = ((__pyx_v_self->_c_schema == NULL) != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":102
@@ -153199,7 +154282,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                     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_413)); 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_418)); 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
@@ -153236,7 +154319,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *         self._add_attribute_defaults = attribute_defaults and \
  */
   __pyx_t_7 = (((PyObject *)__pyx_v_doc) != Py_None);
-  if (__pyx_t_7) {
+  __pyx_t_5 = (__pyx_t_7 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":108
  * 
@@ -153253,9 +154337,9 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
     __pyx_t_2 = PyObject_Call(((PyObject *)__pyx_v_4lxml_5etree__check_for_default_attributes), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_v_self->_has_default_attributes = __pyx_t_7;
+    __pyx_v_self->_has_default_attributes = __pyx_t_5;
     goto __pyx_L15;
   }
   __pyx_L15:;
@@ -153267,8 +154351,8 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                                        self._has_default_attributes
  * 
  */
-  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_attribute_defaults); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_7) {
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_attribute_defaults); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":110
  *             self._has_default_attributes = _check_for_default_attributes(doc)
@@ -153285,7 +154369,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
     __Pyx_INCREF(__pyx_v_attribute_defaults);
     __pyx_t_3 = __pyx_v_attribute_defaults;
   }
-  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 109; __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/xmlschema.pxi":109
@@ -153295,7 +154379,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                                        self._has_default_attributes
  * 
  */
-  __pyx_v_self->_add_attribute_defaults = __pyx_t_7;
+  __pyx_v_self->_add_attribute_defaults = __pyx_t_5;
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -153434,8 +154518,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  *         root_node = _rootNodeOrRaise(etree)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_schema != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_414));
+  if (unlikely(!((__pyx_v_self->_c_schema != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_419));
     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -153480,7 +154564,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  *             raise MemoryError()
  * 
  */
-  __pyx_t_2 = (__pyx_v_valid_ctxt == NULL);
+  __pyx_t_2 = ((__pyx_v_valid_ctxt == NULL) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":134
@@ -153502,7 +154586,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  *             xmlschema.xmlSchemaSetValidOptions(
  *                 valid_ctxt, xmlschema.XML_SCHEMA_VAL_VC_I_CREATE)
  */
-  if (__pyx_v_self->_add_attribute_defaults) {
+  __pyx_t_2 = (__pyx_v_self->_add_attribute_defaults != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":138
  *         if self._add_attribute_defaults:
@@ -153598,7 +154683,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  *             raise XMLSchemaValidateError(
  *                 u"Internal error in XML Schema validation.",
  */
-  __pyx_t_2 = (__pyx_v_ret == -1);
+  __pyx_t_2 = ((__pyx_v_ret == -1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":151
@@ -153608,7 +154693,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  *                 u"Internal error in XML Schema validation.",
  *                 self._error_log)
  */
-    __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_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_420); 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
@@ -153620,9 +154705,9 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  */
     __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_416));
-    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_416));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_416));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_421));
+    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_421));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_421));
     __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));
@@ -153644,7 +154729,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  *             return True
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_ret == 0);
+  __pyx_t_2 = ((__pyx_v_ret == 0) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":155
@@ -153944,8 +155029,8 @@ static struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *__pyx_f_4lx
  */
   #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_417));
+  if (unlikely(!(__pyx_t_1 != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_422));
     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -153994,6 +155079,7 @@ static struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *__pyx_f_4lx
 
 static void __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_inject_default_attributes(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *__pyx_v_self, xmlDoc *__pyx_v_c_doc) {
   __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
   __Pyx_RefNannySetupContext("inject_default_attributes", 0);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":194
@@ -154003,7 +155089,8 @@ static void __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_inject_default
  *             with nogil:
  *                 xmlschema.xmlSchemaValidateDoc(self._valid_ctxt, c_doc)
  */
-  if (__pyx_v_self->_add_default_attributes) {
+  __pyx_t_1 = (__pyx_v_self->_add_default_attributes != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":195
  *         # time
@@ -154061,6 +155148,7 @@ static int __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect(struct
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -154073,7 +155161,7 @@ static int __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect(struct
  *             self._valid_ctxt = xmlschema.xmlSchemaNewValidCtxt(
  *                 self._schema._c_schema)
  */
-  __pyx_t_1 = (__pyx_v_self->_valid_ctxt == NULL);
+  __pyx_t_1 = ((__pyx_v_self->_valid_ctxt == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":200
@@ -154092,7 +155180,7 @@ static int __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect(struct
  *                 raise MemoryError()
  *             if self._add_default_attributes:
  */
-    __pyx_t_1 = (__pyx_v_self->_valid_ctxt == NULL);
+    __pyx_t_1 = ((__pyx_v_self->_valid_ctxt == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":203
@@ -154114,7 +155202,8 @@ static int __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect(struct
  *                 xmlschema.xmlSchemaSetValidOptions(
  *                     self._valid_ctxt, xmlschema.XML_SCHEMA_VAL_VC_I_CREATE)
  */
-    if (__pyx_v_self->_add_default_attributes) {
+    __pyx_t_1 = (__pyx_v_self->_add_default_attributes != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":206
  *             if self._add_default_attributes:
@@ -154139,7 +155228,8 @@ static int __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect(struct
  *                 self._valid_ctxt, _receiveError, <void*>error_log)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_error_log) != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":209
  *         if error_log is not None:
@@ -154192,7 +155282,7 @@ static void __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_disconnect(str
  *             xmlschema.xmlSchemaSAXUnplug(self._sax_plug)
  *             self._sax_plug = NULL
  */
-  __pyx_t_1 = (__pyx_v_self->_sax_plug != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_sax_plug != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":215
@@ -154223,7 +155313,7 @@ static void __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_disconnect(str
  *             xmlschema.xmlSchemaSetValidStructuredErrors(
  *                 self._valid_ctxt, NULL, NULL)
  */
-  __pyx_t_1 = (__pyx_v_self->_valid_ctxt != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_valid_ctxt != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":219
@@ -154262,7 +155352,7 @@ static int __pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid(struct
  *             return 1 # valid
  *         return xmlschema.xmlSchemaIsValid(self._valid_ctxt)
  */
-  __pyx_t_1 = (__pyx_v_self->_valid_ctxt == NULL);
+  __pyx_t_1 = ((__pyx_v_self->_valid_ctxt == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":223
@@ -154423,15 +155513,15 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_t_4;
-  xmlDoc *__pyx_t_5;
-  PyObject *__pyx_t_6 = NULL;
-  int __pyx_t_7;
-  PyObject *__pyx_t_8 = NULL;
+  int __pyx_t_5;
+  xmlDoc *__pyx_t_6;
+  PyObject *__pyx_t_7 = NULL;
+  int __pyx_t_8;
   PyObject *__pyx_t_9 = NULL;
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
   PyObject *__pyx_t_12 = NULL;
-  int __pyx_t_13;
+  PyObject *__pyx_t_13 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -154464,7 +155554,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *             raise SchematronError, \
  *                 u"lxml.etree was compiled without Schematron support."
  */
-  __pyx_t_4 = (!ENABLE_SCHEMATRON);
+  __pyx_t_4 = ((!(ENABLE_SCHEMATRON != 0)) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":85
@@ -154476,7 +155566,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  */
     __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_418), 0, 0);
+    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_423), 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;
@@ -154491,7 +155581,8 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *             root_node = _rootNodeOrRaise(etree)
  */
   __pyx_t_4 = (__pyx_v_etree != Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":88
  *                 u"lxml.etree was compiled without Schematron support."
@@ -154524,8 +155615,8 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *             parser_ctxt = schematron.xmlSchematronNewDocParserCtxt(self._c_schema_doc)
  *         elif file is not None:
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__copyDocRoot(__pyx_v_doc->_c_doc, __pyx_v_root_node->_c_node); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_self->_c_schema_doc = __pyx_t_5;
+    __pyx_t_6 = __pyx_f_4lxml_5etree__copyDocRoot(__pyx_v_doc->_c_doc, __pyx_v_root_node->_c_node); if (unlikely(__pyx_t_6 == NULL)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_self->_c_schema_doc = __pyx_t_6;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":91
  *             root_node = _rootNodeOrRaise(etree)
@@ -154545,7 +155636,8 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *             filename = _getFilenameForFile(file)
  *             if filename is None:
  */
-  __pyx_t_4 = (__pyx_v_file != Py_None);
+  __pyx_t_5 = (__pyx_v_file != Py_None);
+  __pyx_t_4 = (__pyx_t_5 != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":93
@@ -154568,7 +155660,8 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *                 filename = file
  */
     __pyx_t_4 = (__pyx_v_filename == Py_None);
-    if (__pyx_t_4) {
+    __pyx_t_5 = (__pyx_t_4 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":96
  *             if filename is None:
@@ -154605,15 +155698,15 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *         else:
  */
     /*with:*/ {
-      __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;}
+      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
+      __pyx_t_8 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L6_error;}
       /*try:*/ {
         {
-          __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
-          __Pyx_XGOTREF(__pyx_t_8);
+          __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
           __Pyx_XGOTREF(__pyx_t_9);
           __Pyx_XGOTREF(__pyx_t_10);
+          __Pyx_XGOTREF(__pyx_t_11);
           /*try:*/ {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":99
@@ -154625,9 +155718,9 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  */
             __pyx_v_parser_ctxt = xmlSchematronNewParserCtxt(PyBytes_AS_STRING(__pyx_v_filename));
           }
-          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
           __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
+          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
           goto __pyx_L17_try_end;
           __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
           __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -154646,26 +155739,26 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
             __Pyx_GOTREF(__pyx_t_3);
             __Pyx_GOTREF(__pyx_t_2);
             __Pyx_GOTREF(__pyx_t_1);
-            __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}
-            __Pyx_GOTREF(__pyx_t_11);
+            __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}
+            __Pyx_GOTREF(__pyx_t_12);
             __Pyx_INCREF(__pyx_t_3);
-            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_3);
+            PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_3);
             __Pyx_GIVEREF(__pyx_t_3);
             __Pyx_INCREF(__pyx_t_2);
-            PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2);
+            PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2);
             __Pyx_GIVEREF(__pyx_t_2);
             __Pyx_INCREF(__pyx_t_1);
-            PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_1);
+            PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_1);
             __Pyx_GIVEREF(__pyx_t_1);
-            __pyx_t_12 = PyObject_Call(__pyx_t_6, __pyx_t_11, NULL);
-            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-            if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}
-            __Pyx_GOTREF(__pyx_t_12);
-            __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_12);
-            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-            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_t_13 = PyObject_Call(__pyx_t_7, __pyx_t_12, NULL);
+            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+            if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}
+            __Pyx_GOTREF(__pyx_t_13);
+            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_13);
+            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+            if (__pyx_t_5 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L12_except_error;}
+            __pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
+            if (__pyx_t_4) {
               __Pyx_GIVEREF(__pyx_t_3);
               __Pyx_GIVEREF(__pyx_t_2);
               __Pyx_GIVEREF(__pyx_t_1);
@@ -154675,40 +155768,40 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
               goto __pyx_L20;
             }
             __pyx_L20:;
-            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
+            __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
             __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
             __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
             __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
             goto __pyx_L11_exception_handled;
           }
           __pyx_L12_except_error:;
-          __Pyx_XGIVEREF(__pyx_t_8);
           __Pyx_XGIVEREF(__pyx_t_9);
           __Pyx_XGIVEREF(__pyx_t_10);
-          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
+          __Pyx_XGIVEREF(__pyx_t_11);
+          __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
           goto __pyx_L1_error;
           __pyx_L11_exception_handled:;
-          __Pyx_XGIVEREF(__pyx_t_8);
           __Pyx_XGIVEREF(__pyx_t_9);
           __Pyx_XGIVEREF(__pyx_t_10);
-          __Pyx_ExceptionReset(__pyx_t_8, __pyx_t_9, __pyx_t_10);
+          __Pyx_XGIVEREF(__pyx_t_11);
+          __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
           __pyx_L17_try_end:;
         }
       }
       /*finally:*/ {
-        if (__pyx_t_6) {
-          __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 (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__pyx_t_7) {
+          __pyx_t_11 = PyObject_Call(__pyx_t_7, __pyx_k_tuple_424, NULL);
+          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+          if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_11);
+          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_11);
+          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+          if (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
       }
       goto __pyx_L21;
       __pyx_L6_error:;
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L1_error;
       __pyx_L21:;
     }
@@ -154723,9 +155816,9 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  * 
  *         if parser_ctxt is NULL:
  */
-    __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_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_425); 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_404), 0, 0);
+    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_409), 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;}
   }
@@ -154738,8 +155831,8 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *             if self._c_schema_doc is not NULL:
  *                 tree.xmlFreeDoc(self._c_schema_doc)
  */
-  __pyx_t_13 = (__pyx_v_parser_ctxt == NULL);
-  if (__pyx_t_13) {
+  __pyx_t_4 = ((__pyx_v_parser_ctxt == NULL) != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":104
  * 
@@ -154748,8 +155841,8 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *                 tree.xmlFreeDoc(self._c_schema_doc)
  *                 self._c_schema_doc = NULL
  */
-    __pyx_t_13 = (__pyx_v_self->_c_schema_doc != NULL);
-    if (__pyx_t_13) {
+    __pyx_t_4 = ((__pyx_v_self->_c_schema_doc != NULL) != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":105
  *         if parser_ctxt is NULL:
@@ -154801,15 +155894,15 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *         finally:
  */
     /*with:*/ {
-      __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;}
+      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->__pyx_base._error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
+      __Pyx_GOTREF(__pyx_t_7);
+      __pyx_t_8 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->__pyx_base._error_log); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L27_error;}
       /*try:*/ {
         {
-          __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_9, &__pyx_t_8);
+          __Pyx_ExceptionSave(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
+          __Pyx_XGOTREF(__pyx_t_11);
           __Pyx_XGOTREF(__pyx_t_10);
           __Pyx_XGOTREF(__pyx_t_9);
-          __Pyx_XGOTREF(__pyx_t_8);
           /*try:*/ {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":111
@@ -154821,11 +155914,11 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  */
             __pyx_v_self->_c_schema = xmlSchematronParse(__pyx_v_parser_ctxt);
           }
+          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
           __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
           __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
-          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
           goto __pyx_L38_try_end;
-          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
           __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
           __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
           __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -154843,26 +155936,26 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
             __Pyx_GOTREF(__pyx_t_1);
             __Pyx_GOTREF(__pyx_t_2);
             __Pyx_GOTREF(__pyx_t_3);
-            __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L33_except_error;}
-            __Pyx_GOTREF(__pyx_t_11);
+            __pyx_t_12 = PyTuple_New(3); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L33_except_error;}
+            __Pyx_GOTREF(__pyx_t_12);
             __Pyx_INCREF(__pyx_t_1);
-            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
+            PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_1);
             __Pyx_GIVEREF(__pyx_t_1);
             __Pyx_INCREF(__pyx_t_2);
-            PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_2);
+            PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2);
             __Pyx_GIVEREF(__pyx_t_2);
             __Pyx_INCREF(__pyx_t_3);
-            PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_3);
+            PyTuple_SET_ITEM(__pyx_t_12, 2, __pyx_t_3);
             __Pyx_GIVEREF(__pyx_t_3);
-            __pyx_t_12 = PyObject_Call(__pyx_t_6, __pyx_t_11, NULL);
-            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-            if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L33_except_error;}
-            __Pyx_GOTREF(__pyx_t_12);
-            __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12);
-            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-            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_t_13 = PyObject_Call(__pyx_t_7, __pyx_t_12, NULL);
+            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+            if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L33_except_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 (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L33_except_error;}
+            __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
+            if (__pyx_t_5) {
               __Pyx_GIVEREF(__pyx_t_1);
               __Pyx_GIVEREF(__pyx_t_2);
               __Pyx_GIVEREF(__pyx_t_3);
@@ -154872,40 +155965,40 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
               goto __pyx_L41;
             }
             __pyx_L41:;
-            __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
+            __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
             __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
             __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
             __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
             goto __pyx_L32_exception_handled;
           }
           __pyx_L33_except_error:;
+          __Pyx_XGIVEREF(__pyx_t_11);
           __Pyx_XGIVEREF(__pyx_t_10);
           __Pyx_XGIVEREF(__pyx_t_9);
-          __Pyx_XGIVEREF(__pyx_t_8);
-          __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
+          __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9);
           goto __pyx_L25;
           __pyx_L32_exception_handled:;
+          __Pyx_XGIVEREF(__pyx_t_11);
           __Pyx_XGIVEREF(__pyx_t_10);
           __Pyx_XGIVEREF(__pyx_t_9);
-          __Pyx_XGIVEREF(__pyx_t_8);
-          __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_9, __pyx_t_8);
+          __Pyx_ExceptionReset(__pyx_t_11, __pyx_t_10, __pyx_t_9);
           __pyx_L38_try_end:;
         }
       }
       /*finally:*/ {
-        if (__pyx_t_6) {
-          __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 (__pyx_t_4 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
+        if (__pyx_t_7) {
+          __pyx_t_9 = PyObject_Call(__pyx_t_7, __pyx_k_tuple_426, NULL);
+          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+          if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
+          __Pyx_GOTREF(__pyx_t_9);
+          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9);
+          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+          if (__pyx_t_5 < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
         }
       }
       goto __pyx_L42;
       __pyx_L27_error:;
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L25;
       __pyx_L42:;
     }
@@ -154926,7 +156019,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
     __pyx_why = 0; goto __pyx_L26;
     __pyx_L25: {
       __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
       __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -154955,8 +156048,8 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *             raise SchematronParseError(
  *                 u"Document is not a valid Schematron schema",
  */
-  __pyx_t_4 = (__pyx_v_self->_c_schema == NULL);
-  if (__pyx_t_4) {
+  __pyx_t_5 = ((__pyx_v_self->_c_schema == NULL) != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":116
  * 
@@ -154965,7 +156058,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *                 u"Document is not a valid Schematron schema",
  *                 self._error_log)
  */
-    __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_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_425); 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
@@ -154977,9 +156070,9 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  */
     __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_422));
-    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_422));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_422));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_427));
+    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_427));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_427));
     __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));
@@ -155000,7 +156093,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_11);
+  __Pyx_XDECREF(__pyx_t_12);
   __Pyx_AddTraceback("lxml.etree.Schematron.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -155049,7 +156142,7 @@ static void __pyx_pf_4lxml_5etree_10Schematron_4__dealloc__(struct __pyx_obj_4lx
  *             # earlier libxml2 versions may have freed the document in
  *             # xmlSchematronFree() already, we don't know ...
  */
-  __pyx_t_1 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20631);
+  __pyx_t_1 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20631) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":125
@@ -155059,7 +156152,7 @@ static void __pyx_pf_4lxml_5etree_10Schematron_4__dealloc__(struct __pyx_obj_4lx
  *                 tree.xmlFreeDoc(self._c_schema_doc)
  * 
  */
-    __pyx_t_1 = (__pyx_v_self->_c_schema_doc != NULL);
+    __pyx_t_1 = ((__pyx_v_self->_c_schema_doc != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":126
@@ -155178,8 +156271,8 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *         root_node = _rootNodeOrRaise(etree)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  if (unlikely(!(__pyx_v_self->_c_schema != NULL))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_423));
+  if (unlikely(!((__pyx_v_self->_c_schema != NULL) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_428));
     {__pyx_filename = __pyx_f[23]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -155215,7 +156308,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *                 schematron.XML_SCHEMATRON_OUT_ERROR != 0:
  *             options = schematron.XML_SCHEMATRON_OUT_ERROR
  */
-  __pyx_t_2 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20632);
+  __pyx_t_2 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20632) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":146
@@ -155225,7 +156318,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *             options = schematron.XML_SCHEMATRON_OUT_ERROR
  *         else:
  */
-    __pyx_t_3 = (XML_SCHEMATRON_OUT_ERROR != 0);
+    __pyx_t_3 = ((XML_SCHEMATRON_OUT_ERROR != 0) != 0);
     __pyx_t_4 = __pyx_t_3;
   } else {
     __pyx_t_4 = __pyx_t_2;
@@ -155280,7 +156373,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *             raise MemoryError()
  * 
  */
-  __pyx_t_4 = (__pyx_v_valid_ctxt == NULL);
+  __pyx_t_4 = ((__pyx_v_valid_ctxt == NULL) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":156
@@ -155302,7 +156395,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *             schematron.xmlSchematronSetValidStructuredErrors(
  *                 valid_ctxt, _receiveError, <void*>self._error_log)
  */
-  __pyx_t_4 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20632);
+  __pyx_t_4 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT >= 20632) != 0);
   if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":160
@@ -155497,7 +156590,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
             __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_14);
             __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
             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);
+            __pyx_t_2 = ((!(__pyx_t_4 != 0)) != 0);
             if (__pyx_t_2) {
               __Pyx_GIVEREF(__pyx_t_1);
               __Pyx_GIVEREF(__pyx_t_11);
@@ -155530,7 +156623,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
       }
       /*finally:*/ {
         if (__pyx_t_6) {
-          __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_424, NULL);
+          __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_429, 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);
@@ -155564,7 +156657,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *             raise SchematronValidateError(
  *                 u"Internal error in Schematron validation",
  */
-  __pyx_t_2 = (__pyx_v_ret == -1);
+  __pyx_t_2 = ((__pyx_v_ret == -1) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":176
@@ -155574,7 +156667,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *                 u"Internal error in Schematron validation",
  *                 self._error_log)
  */
-    __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_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_430); 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
@@ -155586,9 +156679,9 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  */
     __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_426));
-    PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_u_426));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_426));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_431));
+    PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_u_431));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_431));
     __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));
@@ -155610,7 +156703,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *             return True
  *         else:
  */
-  __pyx_t_2 = (__pyx_v_ret == 0);
+  __pyx_t_2 = ((__pyx_v_ret == 0) != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":180
@@ -155798,10 +156891,10 @@ struct LxmlElementTree *newElementTree(struct LxmlElement *__pyx_v_context_node,
  *         raise TypeError
  *     _assertValidNode(context_node)
  */
-  __pyx_t_1 = (((void *)__pyx_v_context_node) == NULL);
+  __pyx_t_1 = ((((void *)__pyx_v_context_node) == NULL) != 0);
   if (!__pyx_t_1) {
     __pyx_t_2 = (((PyObject *)__pyx_v_context_node) == Py_None);
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
@@ -155886,10 +156979,10 @@ struct LxmlElement *elementFactory(struct LxmlDocument *__pyx_v_doc, xmlNode *__
  *         raise TypeError
  *     return _elementFactory(doc, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (!__pyx_t_1) {
     __pyx_t_2 = (((PyObject *)__pyx_v_doc) == Py_None);
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
@@ -156207,7 +157300,7 @@ int tagMatches(xmlNode *__pyx_v_c_node, const xmlChar *__pyx_v_c_href, const xml
  *         return -1
  *     return _tagMatches(c_node, c_href, c_name)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/public-api.pxi":50
@@ -156408,7 +157501,7 @@ PyObject *textOf(xmlNode *__pyx_v_c_node) {
  *         return None
  *     return _collectText(c_node.children)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/public-api.pxi":67
@@ -156477,7 +157570,7 @@ PyObject *tailOf(xmlNode *__pyx_v_c_node) {
  *         return None
  *     return _collectText(c_node.next)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/public-api.pxi":72
@@ -156546,7 +157639,7 @@ int setNodeText(xmlNode *__pyx_v_c_node, PyObject *__pyx_v_text) {
  *         raise ValueError
  *     return _setNodeText(c_node, text)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/public-api.pxi":77
@@ -156608,7 +157701,7 @@ int setTailText(xmlNode *__pyx_v_c_node, PyObject *__pyx_v_text) {
  *         raise ValueError
  *     return _setTailText(c_node, text)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/public-api.pxi":82
@@ -157234,7 +158327,7 @@ PyObject *pyunicode(const xmlChar *__pyx_v_s) {
  *         raise TypeError
  *     return funicode(s)
  */
-  __pyx_t_1 = (__pyx_v_s == NULL);
+  __pyx_t_1 = ((__pyx_v_s == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/public-api.pxi":138
@@ -157562,7 +158655,8 @@ xmlNs *findOrBuildNodeNsPrefix(struct LxmlDocument *__pyx_v_doc, xmlNode *__pyx_
   xmlNs *__pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  xmlNs *__pyx_t_2;
+  int __pyx_t_2;
+  xmlNs *__pyx_t_3;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -157576,7 +158670,8 @@ xmlNs *findOrBuildNodeNsPrefix(struct LxmlDocument *__pyx_v_doc, xmlNode *__pyx_
  *     return doc._findOrBuildNodeNs(c_node, href, prefix, 0)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_doc) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/public-api.pxi":165
  *         _Document doc, xmlNode* c_node, const_xmlChar* href, const_xmlChar* prefix) except NULL:
@@ -157595,8 +158690,8 @@ xmlNs *findOrBuildNodeNsPrefix(struct LxmlDocument *__pyx_v_doc, xmlNode *__pyx_
  *         raise TypeError
  *     return doc._findOrBuildNodeNs(c_node, href, prefix, 0)             # <<<<<<<<<<<<<<
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_node, __pyx_v_href, __pyx_v_prefix, 0); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_r = __pyx_t_2;
+  __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_doc, __pyx_v_c_node, __pyx_v_href, __pyx_v_prefix, 0); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[24]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_r = __pyx_t_3;
   goto __pyx_L0;
 
   __pyx_r = 0;
@@ -157766,7 +158861,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_4dict_size(CYTHON_UNUSED struc
  *             raise MemoryError()
  *         return tree.xmlDictSize(c_dict)
  */
-  __pyx_t_1 = (__pyx_v_c_dict == NULL);
+  __pyx_t_1 = ((__pyx_v_c_dict == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":33
@@ -157887,11 +158982,12 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
-  char const *__pyx_t_5;
-  Py_ssize_t __pyx_t_6;
+  PyObject *__pyx_t_5 = NULL;
+  char const *__pyx_t_6;
+  Py_ssize_t __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -157906,7 +159002,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *         elif isinstance(output_file, unicode):
  */
   __pyx_t_1 = (__pyx_v_output_file == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":50
  *         cdef Py_ssize_t c_count
@@ -157915,9 +159012,9 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *         elif isinstance(output_file, unicode):
  *             output_file.encode(sys.getfilesystemencoding())
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_b_427));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_b_432));
     __Pyx_DECREF(__pyx_v_output_file);
-    __pyx_v_output_file = ((PyObject *)__pyx_kp_b_427);
+    __pyx_v_output_file = ((PyObject *)__pyx_kp_b_432);
     goto __pyx_L3;
   }
 
@@ -157928,7 +159025,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *             output_file.encode(sys.getfilesystemencoding())
  * 
  */
-  __pyx_t_1 = PyUnicode_Check(__pyx_v_output_file); 
+  __pyx_t_2 = PyUnicode_Check(__pyx_v_output_file); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":52
@@ -157938,23 +159036,23 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  * 
  *         f = stdio.fopen(output_file, "w")
  */
-    __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 = __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_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__encode); 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_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_433); 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);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = PyTuple_New(1); 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);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
-    __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_t_4 = 0;
-    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), 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);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_4 = PyTuple_New(1); 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);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_5);
+    __pyx_t_5 = 0;
+    __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -157966,8 +159064,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *         if f is NULL:
  *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
  */
-  __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);
+  __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_output_file); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_f = fopen(__pyx_t_6, __pyx_k__w);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":55
  * 
@@ -157976,7 +159074,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
  *         try:
  */
-  __pyx_t_1 = (__pyx_v_f == NULL);
+  __pyx_t_1 = ((__pyx_v_f == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":56
@@ -157986,35 +159084,35 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *         try:
  *             if tree.LIBXML_VERSION < 20700:
  */
-    __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_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_433); 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 = __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_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); 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);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
-    __pyx_t_2 = 0;
-    __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), 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_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_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;}
-    __Pyx_GOTREF(__pyx_t_2);
-    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+    __pyx_t_4 = PyTuple_New(1); 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);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
     __pyx_t_3 = 0;
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_IOError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); 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_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __Pyx_Raise(__pyx_t_3, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_434), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_3 = PyTuple_New(1); 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);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
+    __pyx_t_4 = 0;
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_IOError, ((PyObject *)__pyx_t_3), NULL); 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_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -158036,7 +159134,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *                 tree.xmlMemDisplay(f)
  *             elif byte_count is None:
  */
-    __pyx_t_1 = (LIBXML_VERSION < 20700);
+    __pyx_t_1 = ((LIBXML_VERSION < 20700) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":59
@@ -158058,7 +159156,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *             else:
  */
     __pyx_t_1 = (__pyx_v_byte_count == Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":61
  *                 tree.xmlMemDisplay(f)
@@ -158079,8 +159178,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *                 tree.xmlMemDisplayLast(f, c_count)
  *         finally:
  */
-      __pyx_t_6 = __Pyx_PyIndex_AsSsize_t(__pyx_v_byte_count); if (unlikely((__pyx_t_6 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L6;}
-      __pyx_v_c_count = __pyx_t_6;
+      __pyx_t_7 = __Pyx_PyIndex_AsSsize_t(__pyx_v_byte_count); if (unlikely((__pyx_t_7 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L6;}
+      __pyx_v_c_count = __pyx_t_7;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":64
  *             else:
@@ -158109,9 +159208,306 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
     __pyx_why = 0; goto __pyx_L7;
     __pyx_L6: {
       __pyx_why = 4;
+      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
+      __pyx_exc_lineno = __pyx_lineno;
+      goto __pyx_L7;
+    }
+    __pyx_L7:;
+    fclose(__pyx_v_f);
+    switch (__pyx_why) {
+      case 4: {
+        __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
+        __pyx_lineno = __pyx_exc_lineno;
+        __pyx_exc_type = 0;
+        __pyx_exc_value = 0;
+        __pyx_exc_tb = 0;
+        goto __pyx_L1_error;
+      }
+    }
+  }
+
+  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_AddTraceback("lxml.etree._MemDebug.dump", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_output_file);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* Python wrapper */
+static PyObject *__pyx_pw_4lxml_5etree_9_MemDebug_9show(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static char __pyx_doc_4lxml_5etree_9_MemDebug_8show[] = "show(self, output_file=None, block_count=None)\n\n        Dumps the current memory blocks allocated by libxml2 to a file.\n        The output file format is suitable for line diffing.\n\n        The optional parameter 'output_file' specifies the file path.  It defaults\n        to the file \".memorydump\" in the current directory.\n\n        The optional parameter 'block_count' limits the number of blocks\n        in the dump.\n        ";
+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);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__output_file,&__pyx_n_s__block_count,0};
+    PyObject* values[2] = {0,0};
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":68
+ *             stdio.fclose(f)
+ * 
+ *     def show(self, output_file=None, block_count=None):             # <<<<<<<<<<<<<<
+ *         """show(self, output_file=None, block_count=None)
+ * 
+ */
+    values[0] = ((PyObject *)Py_None);
+    values[1] = ((PyObject *)Py_None);
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (kw_args > 0) {
+          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__output_file);
+          if (value) { values[0] = value; kw_args--; }
+        }
+        case  1:
+        if (kw_args > 0) {
+          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__block_count);
+          if (value) { values[1] = value; kw_args--; }
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "show") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      }
+    } else {
+      switch (PyTuple_GET_SIZE(__pyx_args)) {
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+    }
+    __pyx_v_output_file = values[0];
+    __pyx_v_block_count = values[1];
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("show", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("lxml.etree._MemDebug.show", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_4lxml_5etree_9_MemDebug_8show(((struct __pyx_obj_4lxml_5etree__MemDebug *)__pyx_v_self), __pyx_v_output_file, __pyx_v_block_count);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+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) {
+  FILE *__pyx_v_f;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
+  char const *__pyx_t_6;
+  int __pyx_t_7;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("show", 0);
+  __Pyx_INCREF(__pyx_v_output_file);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":80
+ *         in the dump.
+ *         """
+ *         if output_file is None:             # <<<<<<<<<<<<<<
+ *             output_file = b'.memorydump'
+ *         elif isinstance(output_file, unicode):
+ */
+  __pyx_t_1 = (__pyx_v_output_file == Py_None);
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":81
+ *         """
+ *         if output_file is None:
+ *             output_file = b'.memorydump'             # <<<<<<<<<<<<<<
+ *         elif isinstance(output_file, unicode):
+ *             output_file.encode(sys.getfilesystemencoding())
+ */
+    __Pyx_INCREF(((PyObject *)__pyx_kp_b_435));
+    __Pyx_DECREF(__pyx_v_output_file);
+    __pyx_v_output_file = ((PyObject *)__pyx_kp_b_435);
+    goto __pyx_L3;
+  }
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":82
+ *         if output_file is None:
+ *             output_file = b'.memorydump'
+ *         elif isinstance(output_file, unicode):             # <<<<<<<<<<<<<<
+ *             output_file.encode(sys.getfilesystemencoding())
+ * 
+ */
+  __pyx_t_2 = PyUnicode_Check(__pyx_v_output_file); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
+  if (__pyx_t_1) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":83
+ *             output_file = b'.memorydump'
+ *         elif isinstance(output_file, unicode):
+ *             output_file.encode(sys.getfilesystemencoding())             # <<<<<<<<<<<<<<
+ * 
+ *         f = stdio.fopen(output_file, "w")
+ */
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__encode); 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 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_433); 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);
+    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_4 = PyTuple_New(1); 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);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_5);
+    __pyx_t_5 = 0;
+    __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    goto __pyx_L3;
+  }
+  __pyx_L3:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":85
+ *             output_file.encode(sys.getfilesystemencoding())
+ * 
+ *         f = stdio.fopen(output_file, "w")             # <<<<<<<<<<<<<<
+ *         if f is NULL:
+ *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
+ */
+  __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_output_file); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_f = fopen(__pyx_t_6, __pyx_k__w);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":86
+ * 
+ *         f = stdio.fopen(output_file, "w")
+ *         if f is NULL:             # <<<<<<<<<<<<<<
+ *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
+ *         try:
+ */
+  __pyx_t_1 = ((__pyx_v_f == NULL) != 0);
+  if (__pyx_t_1) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":87
+ *         f = stdio.fopen(output_file, "w")
+ *         if f is NULL:
+ *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))             # <<<<<<<<<<<<<<
+ *         try:
+ *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())
+ */
+    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_433); 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_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); 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_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_4 = PyTuple_New(1); 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);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_t_3 = 0;
+    __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); 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_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_434), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_3 = PyTuple_New(1); 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);
+    PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
+    __pyx_t_4 = 0;
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_IOError, ((PyObject *)__pyx_t_3), NULL); 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_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    goto __pyx_L4;
+  }
+  __pyx_L4:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":88
+ *         if f is NULL:
+ *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
+ *         try:             # <<<<<<<<<<<<<<
+ *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())
+ *         finally:
+ */
+  /*try:*/ {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":89
+ *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
+ *         try:
+ *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())             # <<<<<<<<<<<<<<
+ *         finally:
+ *             stdio.fclose(f)
+ */
+    __pyx_t_1 = (__pyx_v_block_count != Py_None);
+    if ((__pyx_t_1 != 0)) {
+      __Pyx_INCREF(__pyx_v_block_count);
+      __pyx_t_4 = __pyx_v_block_count;
+    } else {
+      __pyx_t_3 = PyInt_FromLong(xmlMemBlocks()); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L6;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_4 = __pyx_t_3;
+      __pyx_t_3 = 0;
+    }
+    __pyx_t_7 = __Pyx_PyInt_AsInt(__pyx_t_4); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    xmlMemShow(__pyx_v_f, __pyx_t_7);
+  }
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":91
+ *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())
+ *         finally:
+ *             stdio.fclose(f)             # <<<<<<<<<<<<<<
+ * 
+ * memory_debugger = _MemDebug()
+ */
+  /*finally:*/ {
+    int __pyx_why;
+    PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
+    int __pyx_exc_lineno;
+    __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
+    __pyx_why = 0; goto __pyx_L7;
+    __pyx_L6: {
+      __pyx_why = 4;
+      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
       __pyx_exc_lineno = __pyx_lineno;
       goto __pyx_L7;
@@ -158133,303 +159529,9 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_AddTraceback("lxml.etree._MemDebug.dump", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = NULL;
-  __pyx_L0:;
-  __Pyx_XDECREF(__pyx_v_output_file);
-  __Pyx_XGIVEREF(__pyx_r);
-  __Pyx_RefNannyFinishContext();
-  return __pyx_r;
-}
-
-/* Python wrapper */
-static PyObject *__pyx_pw_4lxml_5etree_9_MemDebug_9show(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
-static char __pyx_doc_4lxml_5etree_9_MemDebug_8show[] = "show(self, output_file=None, block_count=None)\n\n        Dumps the current memory blocks allocated by libxml2 to a file.\n        The output file format is suitable for line diffing.\n\n        The optional parameter 'output_file' specifies the file path.  It defaults\n        to the file \".memorydump\" in the current directory.\n\n        The optional parameter 'block_count' limits the number of blocks\n        in the dump.\n        ";
-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);
-  {
-    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__output_file,&__pyx_n_s__block_count,0};
-    PyObject* values[2] = {0,0};
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":68
- *             stdio.fclose(f)
- * 
- *     def show(self, output_file=None, block_count=None):             # <<<<<<<<<<<<<<
- *         """show(self, output_file=None, block_count=None)
- * 
- */
-    values[0] = ((PyObject *)Py_None);
-    values[1] = ((PyObject *)Py_None);
-    if (unlikely(__pyx_kwds)) {
-      Py_ssize_t kw_args;
-      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
-      switch (pos_args) {
-        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
-        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
-        case  0: break;
-        default: goto __pyx_L5_argtuple_error;
-      }
-      kw_args = PyDict_Size(__pyx_kwds);
-      switch (pos_args) {
-        case  0:
-        if (kw_args > 0) {
-          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__output_file);
-          if (value) { values[0] = value; kw_args--; }
-        }
-        case  1:
-        if (kw_args > 0) {
-          PyObject* value = PyDict_GetItem(__pyx_kwds, __pyx_n_s__block_count);
-          if (value) { values[1] = value; kw_args--; }
-        }
-      }
-      if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "show") < 0)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-      }
-    } else {
-      switch (PyTuple_GET_SIZE(__pyx_args)) {
-        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
-        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
-        case  0: break;
-        default: goto __pyx_L5_argtuple_error;
-      }
-    }
-    __pyx_v_output_file = values[0];
-    __pyx_v_block_count = values[1];
-  }
-  goto __pyx_L4_argument_unpacking_done;
-  __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("show", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[25]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-  __pyx_L3_error:;
-  __Pyx_AddTraceback("lxml.etree._MemDebug.show", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __Pyx_RefNannyFinishContext();
-  return NULL;
-  __pyx_L4_argument_unpacking_done:;
-  __pyx_r = __pyx_pf_4lxml_5etree_9_MemDebug_8show(((struct __pyx_obj_4lxml_5etree__MemDebug *)__pyx_v_self), __pyx_v_output_file, __pyx_v_block_count);
-  __Pyx_RefNannyFinishContext();
-  return __pyx_r;
-}
-
-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) {
-  FILE *__pyx_v_f;
-  PyObject *__pyx_r = NULL;
-  __Pyx_RefNannyDeclarations
-  int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  PyObject *__pyx_t_3 = NULL;
-  PyObject *__pyx_t_4 = NULL;
-  char const *__pyx_t_5;
-  int __pyx_t_6;
-  int __pyx_lineno = 0;
-  const char *__pyx_filename = NULL;
-  int __pyx_clineno = 0;
-  __Pyx_RefNannySetupContext("show", 0);
-  __Pyx_INCREF(__pyx_v_output_file);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":80
- *         in the dump.
- *         """
- *         if output_file is None:             # <<<<<<<<<<<<<<
- *             output_file = b'.memorydump'
- *         elif isinstance(output_file, unicode):
- */
-  __pyx_t_1 = (__pyx_v_output_file == Py_None);
-  if (__pyx_t_1) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":81
- *         """
- *         if output_file is None:
- *             output_file = b'.memorydump'             # <<<<<<<<<<<<<<
- *         elif isinstance(output_file, unicode):
- *             output_file.encode(sys.getfilesystemencoding())
- */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_b_430));
-    __Pyx_DECREF(__pyx_v_output_file);
-    __pyx_v_output_file = ((PyObject *)__pyx_kp_b_430);
-    goto __pyx_L3;
-  }
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":82
- *         if output_file is None:
- *             output_file = b'.memorydump'
- *         elif isinstance(output_file, unicode):             # <<<<<<<<<<<<<<
- *             output_file.encode(sys.getfilesystemencoding())
- * 
- */
-  __pyx_t_1 = PyUnicode_Check(__pyx_v_output_file); 
-  if (__pyx_t_1) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":83
- *             output_file = b'.memorydump'
- *         elif isinstance(output_file, unicode):
- *             output_file.encode(sys.getfilesystemencoding())             # <<<<<<<<<<<<<<
- * 
- *         f = stdio.fopen(output_file, "w")
- */
-    __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 = __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);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = PyTuple_New(1); 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);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
-    __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_t_4 = 0;
-    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), 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);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    goto __pyx_L3;
-  }
-  __pyx_L3:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":85
- *             output_file.encode(sys.getfilesystemencoding())
- * 
- *         f = stdio.fopen(output_file, "w")             # <<<<<<<<<<<<<<
- *         if f is NULL:
- *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
- */
-  __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
- * 
- *         f = stdio.fopen(output_file, "w")
- *         if f is NULL:             # <<<<<<<<<<<<<<
- *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
- *         try:
- */
-  __pyx_t_1 = (__pyx_v_f == NULL);
-  if (__pyx_t_1) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":87
- *         f = stdio.fopen(output_file, "w")
- *         if f is NULL:
- *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))             # <<<<<<<<<<<<<<
- *         try:
- *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())
- */
-    __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 = __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_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = PyTuple_New(1); 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);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
-    __pyx_t_2 = 0;
-    __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), 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_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_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;}
-    __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_IOError, ((PyObject *)__pyx_t_2), NULL); 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_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[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    goto __pyx_L4;
-  }
-  __pyx_L4:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":88
- *         if f is NULL:
- *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
- *         try:             # <<<<<<<<<<<<<<
- *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())
- *         finally:
- */
-  /*try:*/ {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":89
- *             raise IOError("Failed to create file %s" % output_file.decode(sys.getfilesystemencoding()))
- *         try:
- *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())             # <<<<<<<<<<<<<<
- *         finally:
- *             stdio.fclose(f)
- */
-    __pyx_t_1 = (__pyx_v_block_count != Py_None);
-    if (__pyx_t_1) {
-      __Pyx_INCREF(__pyx_v_block_count);
-      __pyx_t_3 = __pyx_v_block_count;
-    } else {
-      __pyx_t_2 = PyInt_FromLong(xmlMemBlocks()); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L6;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = __pyx_t_2;
-      __pyx_t_2 = 0;
-    }
-    __pyx_t_6 = __Pyx_PyInt_AsInt(__pyx_t_3); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L6;}
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    xmlMemShow(__pyx_v_f, __pyx_t_6);
-  }
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/debug.pxi":91
- *             tree.xmlMemShow(f, block_count if block_count is not None else tree.xmlMemBlocks())
- *         finally:
- *             stdio.fclose(f)             # <<<<<<<<<<<<<<
- * 
- * memory_debugger = _MemDebug()
- */
-  /*finally:*/ {
-    int __pyx_why;
-    PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
-    int __pyx_exc_lineno;
-    __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
-    __pyx_why = 0; goto __pyx_L7;
-    __pyx_L6: {
-      __pyx_why = 4;
-      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
-      __pyx_exc_lineno = __pyx_lineno;
-      goto __pyx_L7;
-    }
-    __pyx_L7:;
-    fclose(__pyx_v_f);
-    switch (__pyx_why) {
-      case 4: {
-        __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
-        __pyx_lineno = __pyx_exc_lineno;
-        __pyx_exc_type = 0;
-        __pyx_exc_value = 0;
-        __pyx_exc_tb = 0;
-        goto __pyx_L1_error;
-      }
-    }
-  }
-
-  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.etree._MemDebug.show", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -158438,152 +159540,138 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_8show(CYTHON_UNUSED struct __p
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
-static struct __pyx_vtabstruct_4lxml_5etree__TempStore __pyx_vtable_4lxml_5etree__TempStore;
+static struct __pyx_vtabstruct_4lxml_5etree__BaseParser __pyx_vtable_4lxml_5etree__BaseParser;
 
-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;
+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;
   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);
+  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);
+  p->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)Py_None); Py_INCREF(Py_None);
+  p->_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
+  p->_push_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
+  p->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None); Py_INCREF(Py_None);
+  p->_filename = Py_None; Py_INCREF(Py_None);
+  p->target = Py_None; Py_INCREF(Py_None);
+  p->_default_encoding = Py_None; Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__TempStore(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__TempStore *p = (struct __pyx_obj_4lxml_5etree__TempStore *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__BaseParser(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__BaseParser *p = (struct __pyx_obj_4lxml_5etree__BaseParser *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_storage);
+  Py_CLEAR(p->_class_lookup);
+  Py_CLEAR(p->_resolvers);
+  Py_CLEAR(p->_parser_context);
+  Py_CLEAR(p->_push_parser_context);
+  Py_CLEAR(p->_schema);
+  Py_CLEAR(p->_filename);
+  Py_CLEAR(p->target);
+  Py_CLEAR(p->_default_encoding);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__TempStore(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__BaseParser(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__TempStore *p = (struct __pyx_obj_4lxml_5etree__TempStore *)o;
-  if (p->_storage) {
-    e = (*v)(p->_storage, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__BaseParser *p = (struct __pyx_obj_4lxml_5etree__BaseParser *)o;
+  if (p->_class_lookup) {
+    e = (*v)(((PyObject*)p->_class_lookup), a); if (e) return e;
+  }
+  if (p->_resolvers) {
+    e = (*v)(((PyObject*)p->_resolvers), a); if (e) return e;
+  }
+  if (p->_parser_context) {
+    e = (*v)(((PyObject*)p->_parser_context), a); if (e) return e;
+  }
+  if (p->_push_parser_context) {
+    e = (*v)(((PyObject*)p->_push_parser_context), a); if (e) return e;
+  }
+  if (p->_schema) {
+    e = (*v)(((PyObject*)p->_schema), a); if (e) return e;
+  }
+  if (p->_filename) {
+    e = (*v)(p->_filename, a); if (e) return e;
+  }
+  if (p->target) {
+    e = (*v)(p->target, a); if (e) return e;
+  }
+  if (p->_default_encoding) {
+    e = (*v)(p->_default_encoding, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__TempStore(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__TempStore *p = (struct __pyx_obj_4lxml_5etree__TempStore *)o;
+static int __pyx_tp_clear_4lxml_5etree__BaseParser(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__BaseParser *p = (struct __pyx_obj_4lxml_5etree__BaseParser *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_storage);
-  p->_storage = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_class_lookup);
+  p->_class_lookup = ((struct LxmlElementClassLookup *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_resolvers);
+  p->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_parser_context);
+  p->_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_push_parser_context);
+  p->_push_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_schema);
+  p->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_filename);
+  p->_filename = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->target);
+  p->target = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_default_encoding);
+  p->_default_encoding = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__TempStore[] = {
-  {0, 0, 0, 0}
-};
+static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_error_log(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_11_BaseParser_9error_log_1__get__(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number__TempStore = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_resolvers(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_11_BaseParser_9resolvers_1__get__(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__TempStore = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_version(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_11_BaseParser_7version_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__TempStore = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_target(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_11_BaseParser_6target_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__BaseParser[] = {
+  {__Pyx_NAMESTR("setElementClassLookup"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_3setElementClassLookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_2setElementClassLookup)},
+  {__Pyx_NAMESTR("set_element_class_lookup"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_5set_element_class_lookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_4set_element_class_lookup)},
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_7copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_6copy)},
+  {__Pyx_NAMESTR("makeelement"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_9makeelement, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_8makeelement)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__TempStore = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseParser[] = {
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_11_BaseParser_error_log, 0, __Pyx_DOCSTR(__pyx_k_436), 0},
+  {(char *)"resolvers", __pyx_getprop_4lxml_5etree_11_BaseParser_resolvers, 0, __Pyx_DOCSTR(__pyx_k_437), 0},
+  {(char *)"version", __pyx_getprop_4lxml_5etree_11_BaseParser_version, 0, __Pyx_DOCSTR(__pyx_k_438), 0},
+  {(char *)"target", __pyx_getprop_4lxml_5etree_11_BaseParser_target, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__TempStore = {
+static PyTypeObject __pyx_type_4lxml_5etree__BaseParser = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._TempStore"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__TempStore), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._BaseParser"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__BaseParser), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__TempStore, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -158593,34 +159681,34 @@ static PyTypeObject __pyx_type_4lxml_5etree__TempStore = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__TempStore, /*tp_as_number*/
-  &__pyx_tp_as_sequence__TempStore, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__TempStore, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__TempStore, /*tp_as_buffer*/
-  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+  0, /*tp_as_buffer*/
+  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__TempStore, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__TempStore, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__BaseParser, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__TempStore, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__BaseParser, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__BaseParser, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_10_TempStore_1__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_11_BaseParser_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__TempStore, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__BaseParser, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -158633,152 +159721,38 @@ static PyTypeObject __pyx_type_4lxml_5etree__TempStore = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext __pyx_vtable_4lxml_5etree__ExceptionContext;
+static struct __pyx_vtabstruct_4lxml_5etree__FeedParser __pyx_vtable_4lxml_5etree__FeedParser;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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 (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);
+  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 void __pyx_tp_dealloc_4lxml_5etree__ExceptionContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ExceptionContext *p = (struct __pyx_obj_4lxml_5etree__ExceptionContext *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_exc_info);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__ExceptionContext(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__ExceptionContext *p = (struct __pyx_obj_4lxml_5etree__ExceptionContext *)o;
-  if (p->_exc_info) {
-    e = (*v)(p->_exc_info, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__ExceptionContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ExceptionContext *p = (struct __pyx_obj_4lxml_5etree__ExceptionContext *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_exc_info);
-  p->_exc_info = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
+static PyObject *__pyx_getprop_4lxml_5etree_11_FeedParser_feed_error_log(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_11_FeedParser_14feed_error_log_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ExceptionContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__FeedParser[] = {
+  {__Pyx_NAMESTR("feed"), (PyCFunction)__pyx_pw_4lxml_5etree_11_FeedParser_1feed, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_FeedParser_feed)},
+  {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pw_4lxml_5etree_11_FeedParser_3close, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_FeedParser_2close)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__ExceptionContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ExceptionContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ExceptionContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ExceptionContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+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_439), 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__ExceptionContext = {
+static PyTypeObject __pyx_type_4lxml_5etree__FeedParser = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ExceptionContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ExceptionContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._FeedParser"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__FeedParser), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ExceptionContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -158788,34 +159762,38 @@ static PyTypeObject __pyx_type_4lxml_5etree__ExceptionContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ExceptionContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ExceptionContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ExceptionContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ExceptionContext, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__BaseParser, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ExceptionContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__FeedParser, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__FeedParser, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_11_BaseParser_1__init__, /*tp_init*/
+  #else
   0, /*tp_init*/
+  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ExceptionContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__FeedParser, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -158828,169 +159806,97 @@ static PyTypeObject __pyx_type_4lxml_5etree__ExceptionContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__Document __pyx_vtable_4lxml_5etree__Document;
+static struct __pyx_vtabstruct_4lxml_5etree_XMLParser __pyx_vtable_4lxml_5etree_XMLParser;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__Document(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
-  struct LxmlDocument *p;
-  PyObject *o;
-  o = (*t->tp_alloc)(t, 0);
+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__FeedParser(t, a, k);
   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);
-  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
+  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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__Document(PyObject *o) {
-  struct LxmlDocument *p = (struct LxmlDocument *)o;
-  PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_9_Document_1__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  Py_CLEAR(p->_prefix_tail);
-  Py_CLEAR(p->_parser);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__Document(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct LxmlDocument *p = (struct LxmlDocument *)o;
-  if (p->_prefix_tail) {
-    e = (*v)(p->_prefix_tail, a); if (e) return e;
-  }
-  if (p->_parser) {
-    e = (*v)(((PyObject*)p->_parser), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__Document(PyObject *o) {
-  struct LxmlDocument *p = (struct LxmlDocument *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_prefix_tail);
-  p->_prefix_tail = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_parser);
-  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__Document[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_XMLParser[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__Document = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_XMLParser = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.XMLParser"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XMLParser), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_XMLParser, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_9XMLParser_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_XMLParser, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_ETCompatXMLParser __pyx_vtable_4lxml_5etree_ETCompatXMLParser;
 
-static PySequenceMethods __pyx_tp_as_sequence__Document = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__Document = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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_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;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__Document = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree_ETCompatXMLParser[] = {
+  {0, 0, 0, 0}
 };
 
-DL_EXPORT(PyTypeObject) LxmlDocumentType = {
+static PyTypeObject __pyx_type_4lxml_5etree_ETCompatXMLParser = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._Document"), /*tp_name*/
-  sizeof(struct LxmlDocument), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.ETCompatXMLParser"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ETCompatXMLParser), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Document, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -159000,24 +159906,24 @@ DL_EXPORT(PyTypeObject) LxmlDocumentType = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__Document, /*tp_as_number*/
-  &__pyx_tp_as_sequence__Document, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__Document, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__Document, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__Document, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_ETCompatXMLParser, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -159025,9 +159931,9 @@ DL_EXPORT(PyTypeObject) LxmlDocumentType = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__Document, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_ETCompatXMLParser, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -159232,14 +160138,14 @@ static PyMethodDef __pyx_methods_4lxml_5etree__Element[] = {
 };
 
 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_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},
+  {(char *)"tag", __pyx_getprop_4lxml_5etree_8_Element_tag, __pyx_setprop_4lxml_5etree_8_Element_tag, __Pyx_DOCSTR(__pyx_k_440), 0},
+  {(char *)"attrib", __pyx_getprop_4lxml_5etree_8_Element_attrib, 0, __Pyx_DOCSTR(__pyx_k_441), 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_8_Element_text, __pyx_setprop_4lxml_5etree_8_Element_text, __Pyx_DOCSTR(__pyx_k_442), 0},
+  {(char *)"tail", __pyx_getprop_4lxml_5etree_8_Element_tail, __pyx_setprop_4lxml_5etree_8_Element_tail, __Pyx_DOCSTR(__pyx_k_443), 0},
+  {(char *)"prefix", __pyx_getprop_4lxml_5etree_8_Element_prefix, 0, __Pyx_DOCSTR(__pyx_k_444), 0},
+  {(char *)"sourceline", __pyx_getprop_4lxml_5etree_8_Element_sourceline, __pyx_setprop_4lxml_5etree_8_Element_sourceline, __Pyx_DOCSTR(__pyx_k_445), 0},
+  {(char *)"nsmap", __pyx_getprop_4lxml_5etree_8_Element_nsmap, 0, __Pyx_DOCSTR(__pyx_k_446), 0},
+  {(char *)"base", __pyx_getprop_4lxml_5etree_8_Element_base, __pyx_setprop_4lxml_5etree_8_Element_base, __Pyx_DOCSTR(__pyx_k_447), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -159320,27 +160226,6 @@ static PyMappingMethods __pyx_tp_as_mapping__Element = {
   __pyx_mp_ass_subscript_4lxml_5etree__Element, /*mp_ass_subscript*/
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__Element = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 DL_EXPORT(PyTypeObject) LxmlElementType = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree._Element"), /*tp_name*/
@@ -159364,7 +160249,7 @@ DL_EXPORT(PyTypeObject) LxmlElementType = {
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__Element, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -159396,236 +160281,101 @@ DL_EXPORT(PyTypeObject) LxmlElementType = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__BaseParser __pyx_vtable_4lxml_5etree__BaseParser;
+static struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement __pyx_vtable_4lxml_5etree___ContentOnlyElement;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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 (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);
-  p->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)Py_None); Py_INCREF(Py_None);
-  p->_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
-  p->_push_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
-  p->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None); Py_INCREF(Py_None);
-  p->_filename = Py_None; Py_INCREF(Py_None);
-  p->target = Py_None; Py_INCREF(Py_None);
-  p->_default_encoding = Py_None; Py_INCREF(Py_None);
+  p = ((struct __pyx_obj_4lxml_5etree___ContentOnlyElement *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
   return o;
 }
-
-static void __pyx_tp_dealloc_4lxml_5etree__BaseParser(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__BaseParser *p = (struct __pyx_obj_4lxml_5etree__BaseParser *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_class_lookup);
-  Py_CLEAR(p->_resolvers);
-  Py_CLEAR(p->_parser_context);
-  Py_CLEAR(p->_push_parser_context);
-  Py_CLEAR(p->_schema);
-  Py_CLEAR(p->_filename);
-  Py_CLEAR(p->target);
-  Py_CLEAR(p->_default_encoding);
-  (*Py_TYPE(o)->tp_free)(o);
+static PyObject *__pyx_sq_item_4lxml_5etree___ContentOnlyElement(PyObject *o, Py_ssize_t i) {
+  PyObject *r;
+  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
+  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
+  Py_DECREF(x);
+  return r;
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__BaseParser(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__BaseParser *p = (struct __pyx_obj_4lxml_5etree__BaseParser *)o;
-  if (p->_class_lookup) {
-    e = (*v)(((PyObject*)p->_class_lookup), a); if (e) return e;
-  }
-  if (p->_resolvers) {
-    e = (*v)(((PyObject*)p->_resolvers), a); if (e) return e;
-  }
-  if (p->_parser_context) {
-    e = (*v)(((PyObject*)p->_parser_context), a); if (e) return e;
-  }
-  if (p->_push_parser_context) {
-    e = (*v)(((PyObject*)p->_push_parser_context), a); if (e) return e;
-  }
-  if (p->_schema) {
-    e = (*v)(((PyObject*)p->_schema), a); if (e) return e;
-  }
-  if (p->_filename) {
-    e = (*v)(p->_filename, a); if (e) return e;
-  }
-  if (p->target) {
-    e = (*v)(p->target, a); if (e) return e;
+static int __pyx_mp_ass_subscript_4lxml_5etree___ContentOnlyElement(PyObject *o, PyObject *i, PyObject *v) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_7__setitem__(o, i, v);
   }
-  if (p->_default_encoding) {
-    e = (*v)(p->_default_encoding, a); if (e) return e;
+  else {
+    if (__pyx_ptype_4lxml_5etree__Element->tp_as_mapping && __pyx_ptype_4lxml_5etree__Element->tp_as_mapping->mp_ass_subscript)
+      return __pyx_ptype_4lxml_5etree__Element->tp_as_mapping->mp_ass_subscript(o, i, v);
+    PyErr_Format(PyExc_NotImplementedError,
+      "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name);
+    return -1;
   }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__BaseParser(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__BaseParser *p = (struct __pyx_obj_4lxml_5etree__BaseParser *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_class_lookup);
-  p->_class_lookup = ((struct LxmlElementClassLookup *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_resolvers);
-  p->_resolvers = ((struct __pyx_obj_4lxml_5etree__ResolverRegistry *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_parser_context);
-  p->_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_push_parser_context);
-  p->_push_parser_context = ((struct __pyx_obj_4lxml_5etree__ParserContext *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_schema);
-  p->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_filename);
-  p->_filename = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->target);
-  p->target = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_default_encoding);
-  p->_default_encoding = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_error_log(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_11_BaseParser_9error_log_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_resolvers(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_11_BaseParser_9resolvers_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_20__ContentOnlyElement_attrib(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_6attrib_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_version(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_11_BaseParser_7version_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_20__ContentOnlyElement_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_4text_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_11_BaseParser_target(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_11_BaseParser_6target_1__get__(o);
+static int __pyx_setprop_4lxml_5etree_20__ContentOnlyElement_text(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_4text_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
+  }
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__BaseParser[] = {
-  {__Pyx_NAMESTR("setElementClassLookup"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_3setElementClassLookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_2setElementClassLookup)},
-  {__Pyx_NAMESTR("set_element_class_lookup"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_5set_element_class_lookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_4set_element_class_lookup)},
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_7copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_6copy)},
-  {__Pyx_NAMESTR("makeelement"), (PyCFunction)__pyx_pw_4lxml_5etree_11_BaseParser_9makeelement, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_BaseParser_8makeelement)},
+static PyMethodDef __pyx_methods_4lxml_5etree___ContentOnlyElement[] = {
+  {__Pyx_NAMESTR("set"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_1set, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_set)},
+  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_3append, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_2append)},
+  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_5insert, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_4insert)},
+  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_13get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_12get)},
+  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_15keys, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_14keys)},
+  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_17items, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_16items)},
+  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_19values, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_18values)},
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseParser[] = {
-  {(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}
-};
-
-static PyNumberMethods __pyx_tp_as_number__BaseParser = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree___ContentOnlyElement[] = {
+  {(char *)"attrib", __pyx_getprop_4lxml_5etree_20__ContentOnlyElement_attrib, 0, 0, 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_20__ContentOnlyElement_text, __pyx_setprop_4lxml_5etree_20__ContentOnlyElement_text, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PySequenceMethods __pyx_tp_as_sequence__BaseParser = {
-  0, /*sq_length*/
+static PySequenceMethods __pyx_tp_as_sequence___ContentOnlyElement = {
+  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
   0, /*sq_concat*/
   0, /*sq_repeat*/
-  0, /*sq_item*/
+  __pyx_sq_item_4lxml_5etree___ContentOnlyElement, /*sq_item*/
   0, /*sq_slice*/
   0, /*sq_ass_item*/
   0, /*sq_ass_slice*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
+  #else
   0, /*sq_contains*/
+  #endif
   0, /*sq_inplace_concat*/
   0, /*sq_inplace_repeat*/
 };
 
-static PyMappingMethods __pyx_tp_as_mapping__BaseParser = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__BaseParser = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMappingMethods __pyx_tp_as_mapping___ContentOnlyElement = {
+  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
+  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
+  __pyx_mp_ass_subscript_4lxml_5etree___ContentOnlyElement, /*mp_ass_subscript*/
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__BaseParser = {
+static PyTypeObject __pyx_type_4lxml_5etree___ContentOnlyElement = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._BaseParser"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__BaseParser), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.__ContentOnlyElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree___ContentOnlyElement), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -159634,35 +160384,43 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseParser = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_31__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number__BaseParser, /*tp_as_number*/
-  &__pyx_tp_as_sequence__BaseParser, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__BaseParser, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  &__pyx_tp_as_sequence___ContentOnlyElement, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping___ContentOnlyElement, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__BaseParser, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__BaseParser, /*tp_methods*/
+  __pyx_methods_4lxml_5etree___ContentOnlyElement, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__BaseParser, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree___ContentOnlyElement, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_11_BaseParser_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__BaseParser, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree___ContentOnlyElement, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -159675,185 +160433,57 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseParser = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__ProcessingInstruction __pyx_vtable_4lxml_5etree__ProcessingInstruction;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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___ContentOnlyElement(t, a, k);
   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);
-  p->namespace = Py_None; Py_INCREF(Py_None);
+  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 void __pyx_tp_dealloc_4lxml_5etree_QName(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_QName *p = (struct __pyx_obj_4lxml_5etree_QName *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->text);
-  Py_CLEAR(p->localname);
-  Py_CLEAR(p->namespace);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree_QName(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree_QName *p = (struct __pyx_obj_4lxml_5etree_QName *)o;
-  if (p->text) {
-    e = (*v)(p->text, a); if (e) return e;
-  }
-  if (p->localname) {
-    e = (*v)(p->localname, a); if (e) return e;
-  }
-  if (p->namespace) {
-    e = (*v)(p->namespace, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree_QName(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_QName *p = (struct __pyx_obj_4lxml_5etree_QName *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->text);
-  p->text = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->localname);
-  p->localname = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->namespace);
-  p->namespace = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
+static PyObject *__pyx_getprop_4lxml_5etree_22_ProcessingInstruction_tag(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_3tag_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_5QName_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_5QName_4text_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_22_ProcessingInstruction_target(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_6target_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_5QName_localname(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_5QName_9localname_1__get__(o);
+static int __pyx_setprop_4lxml_5etree_22_ProcessingInstruction_target(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_6target_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
+  }
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_5QName_namespace(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_5QName_9namespace_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_22_ProcessingInstruction_attrib(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_6attrib_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_QName[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__ProcessingInstruction[] = {
+  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_22_ProcessingInstruction_3get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_ProcessingInstruction_2get)},
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_QName[] = {
-  {(char *)"text", __pyx_getprop_4lxml_5etree_5QName_text, 0, 0, 0},
-  {(char *)"localname", __pyx_getprop_4lxml_5etree_5QName_localname, 0, 0, 0},
-  {(char *)"namespace", __pyx_getprop_4lxml_5etree_5QName_namespace, 0, 0, 0},
+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_448), 0},
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_QName = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_QName = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_QName = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_QName = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_QName = {
+static PyTypeObject __pyx_type_4lxml_5etree__ProcessingInstruction = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.QName"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_QName), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ProcessingInstruction"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ProcessingInstruction), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_QName, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -159862,35 +160492,39 @@ static PyTypeObject __pyx_type_4lxml_5etree_QName = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_QName, /*tp_as_number*/
-  &__pyx_tp_as_sequence_QName, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_QName, /*tp_as_mapping*/
-  __pyx_pw_4lxml_5etree_5QName_5__hash__, /*tp_hash*/
+  __pyx_pw_4lxml_5etree_22_ProcessingInstruction_1__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
   0, /*tp_call*/
-  __pyx_pw_4lxml_5etree_5QName_3__str__, /*tp_str*/
+  0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_QName, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
-  __pyx_pw_4lxml_5etree_5QName_7__richcmp__, /*tp_richcompare*/
+  0, /*tp_doc*/
+  __pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
+  0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_QName, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ProcessingInstruction, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_QName, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__ProcessingInstruction, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_5QName_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_QName, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ProcessingInstruction, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -159903,214 +160537,107 @@ static PyTypeObject __pyx_type_4lxml_5etree_QName = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__LogEntry __pyx_vtable_4lxml_5etree__LogEntry;
+static struct __pyx_vtabstruct_4lxml_5etree_PIBase __pyx_vtable_4lxml_5etree_PIBase;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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__ProcessingInstruction(t, a, k);
   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);
-  p->filename = Py_None; Py_INCREF(Py_None);
+  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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__LogEntry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__LogEntry *p = (struct __pyx_obj_4lxml_5etree__LogEntry *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->message);
-  Py_CLEAR(p->filename);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__LogEntry(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__LogEntry *p = (struct __pyx_obj_4lxml_5etree__LogEntry *)o;
-  if (p->message) {
-    e = (*v)(p->message, a); if (e) return e;
-  }
-  if (p->filename) {
-    e = (*v)(p->filename, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__LogEntry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__LogEntry *p = (struct __pyx_obj_4lxml_5etree__LogEntry *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->message);
-  p->message = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->filename);
-  p->filename = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_domain_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_11domain_name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_type_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_9type_name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_level_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_10level_name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_domain(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_6domain_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_type(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_4type_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_level(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_5level_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_line(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_4line_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_column(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_6column_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_message(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_7message_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_filename(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9_LogEntry_8filename_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__LogEntry[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_PIBase[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__LogEntry[] = {
-  {(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},
-  {(char *)"line", __pyx_getprop_4lxml_5etree_9_LogEntry_line, 0, 0, 0},
-  {(char *)"column", __pyx_getprop_4lxml_5etree_9_LogEntry_column, 0, 0, 0},
-  {(char *)"message", __pyx_getprop_4lxml_5etree_9_LogEntry_message, 0, 0, 0},
-  {(char *)"filename", __pyx_getprop_4lxml_5etree_9_LogEntry_filename, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__LogEntry = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_PIBase = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.PIBase"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_PIBase), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_22_ProcessingInstruction_1__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
   #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
   #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_PIBase, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_6PIBase_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_PIBase, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__XSLTProcessingInstruction __pyx_vtable_4lxml_5etree__XSLTProcessingInstruction;
 
-static PySequenceMethods __pyx_tp_as_sequence__LogEntry = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__LogEntry = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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_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;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__LogEntry = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__XSLTProcessingInstruction[] = {
+  {__Pyx_NAMESTR("parseXSL"), (PyCFunction)__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_1parseXSL, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL)},
+  {__Pyx_NAMESTR("set"), (PyCFunction)__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_3set, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_26_XSLTProcessingInstruction_2set)},
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__LogEntry = {
+static PyTypeObject __pyx_type_4lxml_5etree__XSLTProcessingInstruction = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._LogEntry"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__LogEntry), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XSLTProcessingInstruction"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XSLTProcessingInstruction), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__LogEntry, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -160119,35 +160646,47 @@ static PyTypeObject __pyx_type_4lxml_5etree__LogEntry = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_9_LogEntry_1__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__LogEntry, /*tp_as_number*/
-  &__pyx_tp_as_sequence__LogEntry, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__LogEntry, /*tp_as_mapping*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_22_ProcessingInstruction_1__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__LogEntry, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  0, /*tp_doc*/
+  __pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__LogEntry, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__XSLTProcessingInstruction, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__LogEntry, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_6PIBase_1__init__, /*tp_init*/
+  #else
   0, /*tp_init*/
+  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__LogEntry, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XSLTProcessingInstruction, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -160160,171 +160699,66 @@ static PyTypeObject __pyx_type_4lxml_5etree__LogEntry = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog __pyx_vtable_4lxml_5etree__BaseErrorLog;
 
-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;
+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;
-  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);
-  p->last_error = Py_None; Py_INCREF(Py_None);
+  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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__BaseErrorLog *p = (struct __pyx_obj_4lxml_5etree__BaseErrorLog *)o;
+static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct__itervalues(PyObject *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->_first_error);
-  Py_CLEAR(p->last_error);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->__pyx_v_self);
+  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__BaseErrorLog(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct__itervalues(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__BaseErrorLog *p = (struct __pyx_obj_4lxml_5etree__BaseErrorLog *)o;
-  if (p->_first_error) {
-    e = (*v)(((PyObject*)p->_first_error), a); if (e) return e;
-  }
-  if (p->last_error) {
-    e = (*v)(p->last_error, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o;
+  if (p->__pyx_v_self) {
+    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__BaseErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__BaseErrorLog *p = (struct __pyx_obj_4lxml_5etree__BaseErrorLog *)o;
+static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct__itervalues(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_first_error);
-  p->_first_error = ((struct __pyx_obj_4lxml_5etree__LogEntry *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->last_error);
-  p->last_error = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->__pyx_v_self);
+  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_13_BaseErrorLog_last_error(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_13_BaseErrorLog_10last_error_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__BaseErrorLog[] = {
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_13_BaseErrorLog_3copy, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_13_BaseErrorLog_7receive, METH_O, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct__itervalues[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseErrorLog[] = {
-  {(char *)"last_error", __pyx_getprop_4lxml_5etree_13_BaseErrorLog_last_error, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__BaseErrorLog = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__BaseErrorLog = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__BaseErrorLog = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__BaseErrorLog = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__BaseErrorLog = {
+static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct__itervalues = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._BaseErrorLog"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__BaseErrorLog), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct__itervalues"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -160333,35 +160767,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseErrorLog = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_13_BaseErrorLog_5__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__BaseErrorLog, /*tp_as_number*/
-  &__pyx_tp_as_sequence__BaseErrorLog, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__BaseErrorLog, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__BaseErrorLog, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__BaseErrorLog, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__BaseErrorLog, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__BaseErrorLog, /*tp_methods*/
+  __pyx_methods_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__BaseErrorLog, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_13_BaseErrorLog_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__BaseErrorLog, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -160374,46 +160808,63 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseErrorLog = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ListErrorLog __pyx_vtable_4lxml_5etree__ListErrorLog;
+static struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry __pyx_vtable_4lxml_5etree__NamespaceRegistry;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree__NamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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 = ((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 (unlikely(__pyx_pw_4lxml_5etree_18_NamespaceRegistry_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ListErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ListErrorLog *p = (struct __pyx_obj_4lxml_5etree__ListErrorLog *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__NamespaceRegistry *)o;
   PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_ns_uri);
+  Py_CLEAR(p->_ns_uri_utf);
   Py_CLEAR(p->_entries);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog(o);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ListErrorLog(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__NamespaceRegistry(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__ListErrorLog *p = (struct __pyx_obj_4lxml_5etree__ListErrorLog *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__BaseErrorLog(o, v, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__NamespaceRegistry *)o;
+  if (p->_ns_uri) {
+    e = (*v)(p->_ns_uri, a); if (e) return e;
+  }
+  if (p->_ns_uri_utf) {
+    e = (*v)(p->_ns_uri_utf, a); if (e) return e;
+  }
   if (p->_entries) {
     e = (*v)(p->_entries, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__ListErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ListErrorLog *p = (struct __pyx_obj_4lxml_5etree__ListErrorLog *)o;
+static int __pyx_tp_clear_4lxml_5etree__NamespaceRegistry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__NamespaceRegistry *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__BaseErrorLog(o);
+  tmp = ((PyObject*)p->_ns_uri);
+  p->_ns_uri = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_ns_uri_utf);
+  p->_ns_uri_utf = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
   tmp = ((PyObject*)p->_entries);
   p->_entries = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
-static PyObject *__pyx_sq_item_4lxml_5etree__ListErrorLog(PyObject *o, Py_ssize_t i) {
+static PyObject *__pyx_sq_item_4lxml_5etree__NamespaceRegistry(PyObject *o, Py_ssize_t i) {
   PyObject *r;
   PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
   r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
@@ -160421,122 +160872,50 @@ static PyObject *__pyx_sq_item_4lxml_5etree__ListErrorLog(PyObject *o, Py_ssize_
   return r;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ListErrorLog[] = {
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_3copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_2copy)},
-  {__Pyx_NAMESTR("filter_domains"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_17filter_domains, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_16filter_domains)},
-  {__Pyx_NAMESTR("filter_types"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_19filter_types, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_18filter_types)},
-  {__Pyx_NAMESTR("filter_levels"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_21filter_levels, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_20filter_levels)},
-  {__Pyx_NAMESTR("filter_from_level"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_23filter_from_level, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_22filter_from_level)},
-  {__Pyx_NAMESTR("filter_from_fatals"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_25filter_from_fatals, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_24filter_from_fatals)},
-  {__Pyx_NAMESTR("filter_from_errors"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_27filter_from_errors, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_26filter_from_errors)},
-  {__Pyx_NAMESTR("filter_from_warnings"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_29filter_from_warnings, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_28filter_from_warnings)},
-  {0, 0, 0, 0}
-};
+static int __pyx_mp_ass_subscript_4lxml_5etree__NamespaceRegistry(PyObject *o, PyObject *i, PyObject *v) {
+  if (v) {
+    PyErr_Format(PyExc_NotImplementedError,
+      "Subscript assignment not supported by %s", Py_TYPE(o)->tp_name);
+    return -1;
+  }
+  else {
+    return __pyx_pw_4lxml_5etree_18_NamespaceRegistry_7__delitem__(o, i);
+  }
+}
 
-static PyNumberMethods __pyx_tp_as_number__ListErrorLog = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_15__nonzero__, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__NamespaceRegistry[] = {
+  {__Pyx_NAMESTR("update"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_3update, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_18_NamespaceRegistry_2update)},
+  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_11items, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("iteritems"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_13iteritems, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_15clear, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PySequenceMethods __pyx_tp_as_sequence__ListErrorLog = {
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*sq_length*/
+static PySequenceMethods __pyx_tp_as_sequence__NamespaceRegistry = {
+  0, /*sq_length*/
   0, /*sq_concat*/
   0, /*sq_repeat*/
-  __pyx_sq_item_4lxml_5etree__ListErrorLog, /*sq_item*/
+  __pyx_sq_item_4lxml_5etree__NamespaceRegistry, /*sq_item*/
   0, /*sq_slice*/
   0, /*sq_ass_item*/
   0, /*sq_ass_slice*/
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_13__contains__, /*sq_contains*/
+  0, /*sq_contains*/
   0, /*sq_inplace_concat*/
   0, /*sq_inplace_repeat*/
 };
 
-static PyMappingMethods __pyx_tp_as_mapping__ListErrorLog = {
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*mp_length*/
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_9__getitem__, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ListErrorLog = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMappingMethods __pyx_tp_as_mapping__NamespaceRegistry = {
+  0, /*mp_length*/
+  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_5__getitem__, /*mp_subscript*/
+  __pyx_mp_ass_subscript_4lxml_5etree__NamespaceRegistry, /*mp_ass_subscript*/
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__ListErrorLog = {
+static PyTypeObject __pyx_type_4lxml_5etree__NamespaceRegistry = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ListErrorLog"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ListErrorLog), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._NamespaceRegistry"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__NamespaceRegistry), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ListErrorLog, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -160545,25 +160924,25 @@ static PyTypeObject __pyx_type_4lxml_5etree__ListErrorLog = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__ListErrorLog, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ListErrorLog, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ListErrorLog, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  &__pyx_tp_as_sequence__NamespaceRegistry, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping__NamespaceRegistry, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ListErrorLog, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __Pyx_DOCSTR("Dictionary-like namespace registry"), /*tp_doc*/
+  __pyx_tp_traverse_4lxml_5etree__NamespaceRegistry, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__NamespaceRegistry, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_5__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ListErrorLog, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__NamespaceRegistry, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -160571,9 +160950,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ListErrorLog = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ListErrorLog, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__NamespaceRegistry, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -160586,126 +160965,50 @@ static PyTypeObject __pyx_type_4lxml_5etree__ListErrorLog = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__FunctionNamespaceRegistry __pyx_vtable_4lxml_5etree__FunctionNamespaceRegistry;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__ErrorLogContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
-  PyObject *o;
-  o = (*t->tp_alloc)(t, 0);
+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 (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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ErrorLogContext(PyObject *o) {
-  (*Py_TYPE(o)->tp_free)(o);
+static int __pyx_mp_ass_subscript_4lxml_5etree__FunctionNamespaceRegistry(PyObject *o, PyObject *i, PyObject *v) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_26_FunctionNamespaceRegistry_1__setitem__(o, i, v);
+  }
+  else {
+    if (__pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping && __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript)
+      return __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript(o, i, v);
+    PyErr_Format(PyExc_NotImplementedError,
+      "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name);
+    return -1;
+  }
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ErrorLogContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__FunctionNamespaceRegistry[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__ErrorLogContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ErrorLogContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ErrorLogContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ErrorLogContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
+static PyMappingMethods __pyx_tp_as_mapping__FunctionNamespaceRegistry = {
+  0, /*mp_length*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_5__getitem__, /*mp_subscript*/
+  #else
+  0, /*mp_subscript*/
   #endif
+  __pyx_mp_ass_subscript_4lxml_5etree__FunctionNamespaceRegistry, /*mp_ass_subscript*/
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__ErrorLogContext = {
+static PyTypeObject __pyx_type_4lxml_5etree__FunctionNamespaceRegistry = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ErrorLogContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ErrorLogContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._FunctionNamespaceRegistry"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__FunctionNamespaceRegistry), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ErrorLogContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -160714,25 +161017,29 @@ static PyTypeObject __pyx_type_4lxml_5etree__ErrorLogContext = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__ErrorLogContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ErrorLogContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ErrorLogContext, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_26_FunctionNamespaceRegistry_3__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping__FunctionNamespaceRegistry, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ErrorLogContext, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ErrorLogContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__FunctionNamespaceRegistry, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -160742,7 +161049,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__ErrorLogContext = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ErrorLogContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__FunctionNamespaceRegistry, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -160755,181 +161062,82 @@ static PyTypeObject __pyx_type_4lxml_5etree__ErrorLogContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ErrorLog __pyx_vtable_4lxml_5etree__ErrorLog;
+static struct __pyx_vtabstruct_4lxml_5etree__XPathFunctionNamespaceRegistry __pyx_vtable_4lxml_5etree__XPathFunctionNamespaceRegistry;
 
-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);
+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__FunctionNamespaceRegistry(t, a, k);
   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 (unlikely(__pyx_pw_4lxml_5etree_9_ErrorLog_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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);
+  p->_prefix_utf = Py_None; Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ErrorLog *p = (struct __pyx_obj_4lxml_5etree__ErrorLog *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__XPathFunctionNamespaceRegistry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_logContexts);
+  Py_CLEAR(p->_prefix);
+  Py_CLEAR(p->_prefix_utf);
   PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__ListErrorLog(o);
+  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ErrorLog(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__XPathFunctionNamespaceRegistry(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__ErrorLog *p = (struct __pyx_obj_4lxml_5etree__ErrorLog *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__ListErrorLog(o, v, a); if (e) return e;
-  if (p->_logContexts) {
-    e = (*v)(p->_logContexts, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__NamespaceRegistry(o, v, a); if (e) return e;
+  if (p->_prefix) {
+    e = (*v)(p->_prefix, a); if (e) return e;
+  }
+  if (p->_prefix_utf) {
+    e = (*v)(p->_prefix_utf, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__ErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ErrorLog *p = (struct __pyx_obj_4lxml_5etree__ErrorLog *)o;
+static int __pyx_tp_clear_4lxml_5etree__XPathFunctionNamespaceRegistry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__ListErrorLog(o);
-  tmp = ((PyObject*)p->_logContexts);
-  p->_logContexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__NamespaceRegistry(o);
+  tmp = ((PyObject*)p->_prefix);
+  p->_prefix = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_prefix_utf);
+  p->_prefix_utf = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ErrorLog[] = {
-  {__Pyx_NAMESTR("__exit__"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_5__exit__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_7clear, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_9copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_ErrorLog_8copy)},
-  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_13receive, METH_O, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ErrorLog = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_15__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_3__get__(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__ErrorLog = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_13__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_setprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_5__set__(o, v);
+  }
+  else {
+    return __pyx_pw_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_1__del__(o);
+  }
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__ErrorLog = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree__XPathFunctionNamespaceRegistry[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__ErrorLog = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+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_449), 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__ErrorLog = {
+static PyTypeObject __pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ErrorLog"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ErrorLog), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XPathFunctionNamespaceRegistry"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ErrorLog, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -160939,38 +161147,42 @@ static PyTypeObject __pyx_type_4lxml_5etree__ErrorLog = {
   0, /*reserved*/
   #endif
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
+  __pyx_pw_4lxml_5etree_26_FunctionNamespaceRegistry_3__repr__, /*tp_repr*/
   #else
   0, /*tp_repr*/
   #endif
-  &__pyx_tp_as_number__ErrorLog, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ErrorLog, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ErrorLog, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ErrorLog, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__ErrorLog, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__ErrorLog, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_9_ErrorLog_11__iter__, /*tp_iter*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ErrorLog, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_9_ErrorLog_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ErrorLog, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -160983,146 +161195,89 @@ static PyTypeObject __pyx_type_4lxml_5etree__ErrorLog = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__DomainErrorLog __pyx_vtable_4lxml_5etree__DomainErrorLog;
+static struct __pyx_vtabstruct_4lxml_5etree__FileReaderContext __pyx_vtable_4lxml_5etree__FileReaderContext;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree__FileReaderContext(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__FileReaderContext *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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;
+  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->_encoding = 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 (unlikely(__pyx_pw_4lxml_5etree_18_FileReaderContext_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__DomainErrorLog[] = {
-  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_15_DomainErrorLog_3receive, METH_O, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__DomainErrorLog = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_15__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static void __pyx_tp_dealloc_4lxml_5etree__FileReaderContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__FileReaderContext *p = (struct __pyx_obj_4lxml_5etree__FileReaderContext *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_filelike);
+  Py_CLEAR(p->_encoding);
+  Py_CLEAR(p->_url);
+  Py_CLEAR(p->_bytes);
+  Py_CLEAR(p->_exc_context);
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__DomainErrorLog = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_13__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_tp_traverse_4lxml_5etree__FileReaderContext(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__FileReaderContext *p = (struct __pyx_obj_4lxml_5etree__FileReaderContext *)o;
+  if (p->_filelike) {
+    e = (*v)(p->_filelike, a); if (e) return e;
+  }
+  if (p->_encoding) {
+    e = (*v)(p->_encoding, a); if (e) return e;
+  }
+  if (p->_url) {
+    e = (*v)(p->_url, a); if (e) return e;
+  }
+  if (p->_bytes) {
+    e = (*v)(p->_bytes, a); if (e) return e;
+  }
+  if (p->_exc_context) {
+    e = (*v)(((PyObject*)p->_exc_context), a); if (e) return e;
+  }
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__DomainErrorLog = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
+static int __pyx_tp_clear_4lxml_5etree__FileReaderContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__FileReaderContext *p = (struct __pyx_obj_4lxml_5etree__FileReaderContext *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_filelike);
+  p->_filelike = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_encoding);
+  p->_encoding = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_url);
+  p->_url = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_bytes);
+  p->_bytes = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_exc_context);
+  p->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__DomainErrorLog = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__FileReaderContext[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__DomainErrorLog = {
+static PyTypeObject __pyx_type_4lxml_5etree__FileReaderContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._DomainErrorLog"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__DomainErrorLog), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._FileReaderContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__FileReaderContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ErrorLog, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__FileReaderContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -161131,33 +161286,25 @@ static PyTypeObject __pyx_type_4lxml_5etree__DomainErrorLog = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
-  #else
   0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__DomainErrorLog, /*tp_as_number*/
-  &__pyx_tp_as_sequence__DomainErrorLog, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__DomainErrorLog, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__DomainErrorLog, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__ErrorLog, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__ErrorLog, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__FileReaderContext, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__FileReaderContext, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_9_ErrorLog_11__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__DomainErrorLog, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__FileReaderContext, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -161165,9 +161312,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__DomainErrorLog = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_15_DomainErrorLog_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__DomainErrorLog, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__FileReaderContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -161180,146 +161327,73 @@ static PyTypeObject __pyx_type_4lxml_5etree__DomainErrorLog = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__RotatingErrorLog __pyx_vtable_4lxml_5etree__RotatingErrorLog;
+static struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog __pyx_vtable_4lxml_5etree__BaseErrorLog;
 
-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);
+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;
+  o = (*t->tp_alloc)(t, 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;
+  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);
+  p->last_error = Py_None; Py_INCREF(Py_None);
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__RotatingErrorLog[] = {
-  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_17_RotatingErrorLog_3receive, METH_O, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
+static void __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__BaseErrorLog *p = (struct __pyx_obj_4lxml_5etree__BaseErrorLog *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_first_error);
+  Py_CLEAR(p->last_error);
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number__RotatingErrorLog = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_15__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static int __pyx_tp_traverse_4lxml_5etree__BaseErrorLog(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__BaseErrorLog *p = (struct __pyx_obj_4lxml_5etree__BaseErrorLog *)o;
+  if (p->_first_error) {
+    e = (*v)(((PyObject*)p->_first_error), a); if (e) return e;
+  }
+  if (p->last_error) {
+    e = (*v)(p->last_error, a); if (e) return e;
+  }
+  return 0;
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__RotatingErrorLog = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_13__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_tp_clear_4lxml_5etree__BaseErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__BaseErrorLog *p = (struct __pyx_obj_4lxml_5etree__BaseErrorLog *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_first_error);
+  p->_first_error = ((struct __pyx_obj_4lxml_5etree__LogEntry *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->last_error);
+  p->last_error = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__RotatingErrorLog = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_13_BaseErrorLog_last_error(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_13_BaseErrorLog_10last_error_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__BaseErrorLog[] = {
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_13_BaseErrorLog_3copy, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_13_BaseErrorLog_7receive, METH_O, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__RotatingErrorLog = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseErrorLog[] = {
+  {(char *)"last_error", __pyx_getprop_4lxml_5etree_13_BaseErrorLog_last_error, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__RotatingErrorLog = {
+static PyTypeObject __pyx_type_4lxml_5etree__BaseErrorLog = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._RotatingErrorLog"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__RotatingErrorLog), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._BaseErrorLog"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__BaseErrorLog), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ErrorLog, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -161328,43 +161402,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__RotatingErrorLog = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__RotatingErrorLog, /*tp_as_number*/
-  &__pyx_tp_as_sequence__RotatingErrorLog, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__RotatingErrorLog, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_13_BaseErrorLog_5__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__RotatingErrorLog, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__BaseErrorLog, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__BaseErrorLog, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_9_ErrorLog_11__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__RotatingErrorLog, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__BaseErrorLog, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__BaseErrorLog, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_17_RotatingErrorLog_1__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_13_BaseErrorLog_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__RotatingErrorLog, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__BaseErrorLog, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -161377,182 +161443,54 @@ static PyTypeObject __pyx_type_4lxml_5etree__RotatingErrorLog = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_PyErrorLog __pyx_vtable_4lxml_5etree_PyErrorLog;
+static struct __pyx_vtabstruct_4lxml_5etree__ElementTagMatcher __pyx_vtable_4lxml_5etree__ElementTagMatcher;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree__ElementTagMatcher(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+  struct LxmlElementTagMatcher *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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);
-  p->_map_level = Py_None; Py_INCREF(Py_None);
-  p->_log = Py_None; Py_INCREF(Py_None);
+  p = ((struct LxmlElementTagMatcher *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ElementTagMatcher;
+  p->_pystrings = Py_None; Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_PyErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_PyErrorLog *p = (struct __pyx_obj_4lxml_5etree_PyErrorLog *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ElementTagMatcher(PyObject *o) {
+  struct LxmlElementTagMatcher *p = (struct LxmlElementTagMatcher *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->level_map);
-  Py_CLEAR(p->_map_level);
-  Py_CLEAR(p->_log);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog(o);
+  Py_CLEAR(p->_pystrings);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_PyErrorLog(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ElementTagMatcher(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_PyErrorLog *p = (struct __pyx_obj_4lxml_5etree_PyErrorLog *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__BaseErrorLog(o, v, a); if (e) return e;
-  if (p->level_map) {
-    e = (*v)(p->level_map, a); if (e) return e;
-  }
-  if (p->_map_level) {
-    e = (*v)(p->_map_level, a); if (e) return e;
-  }
-  if (p->_log) {
-    e = (*v)(p->_log, a); if (e) return e;
+  struct LxmlElementTagMatcher *p = (struct LxmlElementTagMatcher *)o;
+  if (p->_pystrings) {
+    e = (*v)(p->_pystrings, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_PyErrorLog(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_PyErrorLog *p = (struct __pyx_obj_4lxml_5etree_PyErrorLog *)o;
+static int __pyx_tp_clear_4lxml_5etree__ElementTagMatcher(PyObject *o) {
+  struct LxmlElementTagMatcher *p = (struct LxmlElementTagMatcher *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__BaseErrorLog(o);
-  tmp = ((PyObject*)p->level_map);
-  p->level_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_map_level);
-  p->_map_level = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_log);
-  p->_log = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_pystrings);
+  p->_pystrings = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_10PyErrorLog_level_map(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_10PyErrorLog_9level_map_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_PyErrorLog[] = {
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_3copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10PyErrorLog_2copy)},
-  {__Pyx_NAMESTR("log"), (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_5log, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10PyErrorLog_4log)},
-  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_7receive, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10PyErrorLog_6receive)},
+static PyMethodDef __pyx_methods_4lxml_5etree__ElementTagMatcher[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_PyErrorLog[] = {
-  {(char *)"level_map", __pyx_getprop_4lxml_5etree_10PyErrorLog_level_map, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_PyErrorLog = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_PyErrorLog = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_PyErrorLog = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_PyErrorLog = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_PyErrorLog = {
+DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.PyErrorLog"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_PyErrorLog), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ElementTagMatcher"), /*tp_name*/
+  sizeof(struct LxmlElementTagMatcher), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_PyErrorLog, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementTagMatcher, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -161561,39 +161499,35 @@ static PyTypeObject __pyx_type_4lxml_5etree_PyErrorLog = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_13_BaseErrorLog_5__repr__, /*tp_repr*/
-  #else
   0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_PyErrorLog, /*tp_as_number*/
-  &__pyx_tp_as_sequence_PyErrorLog, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_PyErrorLog, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_PyErrorLog, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_PyErrorLog, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ElementTagMatcher, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_PyErrorLog, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_10PyErrorLog_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_PyErrorLog, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ElementTagMatcher, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -161606,217 +161540,105 @@ static PyTypeObject __pyx_type_4lxml_5etree_PyErrorLog = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_XSLT __pyx_vtable_4lxml_5etree_XSLT;
 
-static PyObject *__pyx_tp_new_4lxml_5etree_DocInfo(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree_DocInfo *p;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(o, a, k) < 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 (unlikely(__pyx_pw_4lxml_5etree_4XSLT_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_DocInfo(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_DocInfo *p = (struct __pyx_obj_4lxml_5etree_DocInfo *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_XSLT(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XSLT *p = (struct __pyx_obj_4lxml_5etree_XSLT *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_doc);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_4XSLT_5__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  Py_CLEAR(p->_context);
+  Py_CLEAR(p->_xslt_resolver_context);
+  Py_CLEAR(p->_access_control);
+  Py_CLEAR(p->_error_log);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_DocInfo(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_XSLT(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_DocInfo *p = (struct __pyx_obj_4lxml_5etree_DocInfo *)o;
-  if (p->_doc) {
-    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_XSLT *p = (struct __pyx_obj_4lxml_5etree_XSLT *)o;
+  if (p->_context) {
+    e = (*v)(((PyObject*)p->_context), a); if (e) return e;
+  }
+  if (p->_xslt_resolver_context) {
+    e = (*v)(((PyObject*)p->_xslt_resolver_context), a); if (e) return e;
+  }
+  if (p->_access_control) {
+    e = (*v)(((PyObject*)p->_access_control), a); if (e) return e;
+  }
+  if (p->_error_log) {
+    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_DocInfo(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_DocInfo *p = (struct __pyx_obj_4lxml_5etree_DocInfo *)o;
+static int __pyx_tp_clear_4lxml_5etree_XSLT(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XSLT *p = (struct __pyx_obj_4lxml_5etree_XSLT *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_doc);
-  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_context);
+  p->_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_xslt_resolver_context);
+  p->_xslt_resolver_context = ((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_access_control);
+  p->_access_control = ((struct __pyx_obj_4lxml_5etree_XSLTAccessControl *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_error_log);
+  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_root_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_9root_name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_public_id(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_9public_id_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_system_url(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_10system_url_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_xml_version(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_11xml_version_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_encoding(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_8encoding_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_4XSLT_error_log(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_4XSLT_9error_log_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_standalone(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_10standalone_1__get__(o);
-}
+static PyMethodDef __pyx_methods_4lxml_5etree_XSLT[] = {
+  {__Pyx_NAMESTR("strparam"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_7strparam, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_6strparam)},
+  {__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)},
+  {__Pyx_NAMESTR("apply"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_11apply, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_10apply)},
+  {__Pyx_NAMESTR("tostring"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_13tostring, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_12tostring)},
+  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_15__deepcopy__, METH_O, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_17__copy__, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
+};
 
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_URL(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_3URL_1__get__(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},
+  {0, 0, 0, 0, 0}
+};
 
-static int __pyx_setprop_4lxml_5etree_7DocInfo_URL(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_7DocInfo_3URL_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
-  }
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_doctype(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_7doctype_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_internalDTD(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_11internalDTD_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_externalDTD(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7DocInfo_11externalDTD_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_DocInfo[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_DocInfo[] = {
-  {(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}
-};
-
-static PyNumberMethods __pyx_tp_as_number_DocInfo = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_DocInfo = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_DocInfo = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_DocInfo = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_DocInfo = {
+static PyTypeObject __pyx_type_4lxml_5etree_XSLT = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.DocInfo"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_DocInfo), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.XSLT"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XSLT), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_DocInfo, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_XSLT, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -161826,34 +161648,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_DocInfo = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_DocInfo, /*tp_as_number*/
-  &__pyx_tp_as_sequence_DocInfo, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_DocInfo, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  0, /*tp_call*/
+  __pyx_pw_4lxml_5etree_4XSLT_19__call__, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_DocInfo, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_DocInfo, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_XSLT, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_DocInfo, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree_XSLT, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_4XSLT_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_DocInfo, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_XSLT, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -161866,184 +161688,74 @@ static PyTypeObject __pyx_type_4lxml_5etree_DocInfo = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement __pyx_vtable_4lxml_5etree___ContentOnlyElement;
+static struct __pyx_vtabstruct_4lxml_5etree_ElementDepthFirstIterator __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementDepthFirstIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 0);
   if (unlikely(!o)) return 0;
-  p = ((struct __pyx_obj_4lxml_5etree___ContentOnlyElement *)o);
-  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
+  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 (unlikely(__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
-static PyObject *__pyx_sq_item_4lxml_5etree___ContentOnlyElement(PyObject *o, Py_ssize_t i) {
-  PyObject *r;
-  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
-  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
-  Py_DECREF(x);
-  return r;
+
+static void __pyx_tp_dealloc_4lxml_5etree_ElementDepthFirstIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p = (struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_next_node);
+  Py_CLEAR(p->_top_node);
+  Py_CLEAR(p->_matcher);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_mp_ass_subscript_4lxml_5etree___ContentOnlyElement(PyObject *o, PyObject *i, PyObject *v) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_7__setitem__(o, i, v);
+static int __pyx_tp_traverse_4lxml_5etree_ElementDepthFirstIterator(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p = (struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)o;
+  if (p->_next_node) {
+    e = (*v)(((PyObject*)p->_next_node), a); if (e) return e;
   }
-  else {
-    if (__pyx_ptype_4lxml_5etree__Element->tp_as_mapping && __pyx_ptype_4lxml_5etree__Element->tp_as_mapping->mp_ass_subscript)
-      return __pyx_ptype_4lxml_5etree__Element->tp_as_mapping->mp_ass_subscript(o, i, v);
-    PyErr_Format(PyExc_NotImplementedError,
-      "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name);
-    return -1;
+  if (p->_top_node) {
+    e = (*v)(((PyObject*)p->_top_node), a); if (e) return e;
   }
+  if (p->_matcher) {
+    e = (*v)(((PyObject*)p->_matcher), a); if (e) return e;
+  }
+  return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_20__ContentOnlyElement_attrib(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_6attrib_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_20__ContentOnlyElement_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_4text_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_20__ContentOnlyElement_text(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_20__ContentOnlyElement_4text_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
-  }
+static int __pyx_tp_clear_4lxml_5etree_ElementDepthFirstIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p = (struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_next_node);
+  p->_next_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_top_node);
+  p->_top_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_matcher);
+  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree___ContentOnlyElement[] = {
-  {__Pyx_NAMESTR("set"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_1set, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_set)},
-  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_3append, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_2append)},
-  {__Pyx_NAMESTR("insert"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_5insert, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_4insert)},
-  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_13get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_12get)},
-  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_15keys, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_14keys)},
-  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_17items, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_16items)},
-  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_20__ContentOnlyElement_19values, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_20__ContentOnlyElement_18values)},
+static PyMethodDef __pyx_methods_4lxml_5etree_ElementDepthFirstIterator[] = {
+  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_5__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree___ContentOnlyElement[] = {
-  {(char *)"attrib", __pyx_getprop_4lxml_5etree_20__ContentOnlyElement_attrib, 0, 0, 0},
-  {(char *)"text", __pyx_getprop_4lxml_5etree_20__ContentOnlyElement_text, __pyx_setprop_4lxml_5etree_20__ContentOnlyElement_text, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number___ContentOnlyElement = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence___ContentOnlyElement = {
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  __pyx_sq_item_4lxml_5etree___ContentOnlyElement, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping___ContentOnlyElement = {
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  __pyx_mp_ass_subscript_4lxml_5etree___ContentOnlyElement, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer___ContentOnlyElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree___ContentOnlyElement = {
+static PyTypeObject __pyx_type_4lxml_5etree_ElementDepthFirstIterator = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.__ContentOnlyElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree___ContentOnlyElement), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.ElementDepthFirstIterator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_ElementDepthFirstIterator, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -162052,35 +161764,27 @@ static PyTypeObject __pyx_type_4lxml_5etree___ContentOnlyElement = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_31__repr__, /*tp_repr*/
-  #else
   0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number___ContentOnlyElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence___ContentOnlyElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping___ContentOnlyElement, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer___ContentOnlyElement, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree___ContentOnlyElement, /*tp_methods*/
+  __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_3__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_5__next__, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_ElementDepthFirstIterator, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree___ContentOnlyElement, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -162088,7 +161792,7 @@ static PyTypeObject __pyx_type_4lxml_5etree___ContentOnlyElement = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree___ContentOnlyElement, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_ElementDepthFirstIterator, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -162101,154 +161805,31 @@ static PyTypeObject __pyx_type_4lxml_5etree___ContentOnlyElement = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__Comment __pyx_vtable_4lxml_5etree__Comment;
 
-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___ContentOnlyElement(t, a, k);
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementClassLookup(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 0);
   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;
+  if (unlikely(__pyx_pw_4lxml_5etree_18ElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_8_Comment_tag(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_8_Comment_3tag_1__get__(o);
+static void __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup(PyObject *o) {
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__Comment[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_ElementClassLookup[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Comment[] = {
-  {(char *)"tag", __pyx_getprop_4lxml_5etree_8_Comment_tag, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__Comment = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__Comment = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__Comment = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__Comment = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__Comment = {
+DL_EXPORT(PyTypeObject) LxmlElementClassLookupType = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._Comment"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__Comment), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.ElementClassLookup"), /*tp_name*/
+  sizeof(struct LxmlElementClassLookup), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -162257,31 +161838,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__Comment = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_8_Comment_1__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__Comment, /*tp_as_number*/
-  &__pyx_tp_as_sequence__Comment, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__Comment, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__Comment, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__Comment, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_ElementClassLookup, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__Comment, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -162289,7 +161866,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__Comment = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__Comment, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_ElementClassLookup, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -162302,175 +161879,69 @@ static PyTypeObject __pyx_type_4lxml_5etree__Comment = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ProcessingInstruction __pyx_vtable_4lxml_5etree__ProcessingInstruction;
+static struct __pyx_vtabstruct_4lxml_5etree__ResolverRegistry __pyx_vtable_4lxml_5etree__ResolverRegistry;
 
-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___ContentOnlyElement(t, a, k);
+static PyObject *__pyx_tp_new_4lxml_5etree__ResolverRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 0);
   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;
+  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 (unlikely(__pyx_pw_4lxml_5etree_17_ResolverRegistry_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_22_ProcessingInstruction_tag(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_3tag_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_22_ProcessingInstruction_target(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_6target_1__get__(o);
+static void __pyx_tp_dealloc_4lxml_5etree__ResolverRegistry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_resolvers);
+  Py_CLEAR(p->_default_resolver);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_setprop_4lxml_5etree_22_ProcessingInstruction_target(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_6target_3__set__(o, v);
+static int __pyx_tp_traverse_4lxml_5etree__ResolverRegistry(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *)o;
+  if (p->_resolvers) {
+    e = (*v)(p->_resolvers, a); if (e) return e;
   }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
+  if (p->_default_resolver) {
+    e = (*v)(((PyObject*)p->_default_resolver), a); if (e) return e;
   }
+  return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_22_ProcessingInstruction_attrib(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_ProcessingInstruction_6attrib_1__get__(o);
+static int __pyx_tp_clear_4lxml_5etree__ResolverRegistry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_resolvers);
+  p->_resolvers = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_default_resolver);
+  p->_default_resolver = ((struct __pyx_obj_4lxml_5etree_Resolver *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ProcessingInstruction[] = {
-  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_22_ProcessingInstruction_3get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_ProcessingInstruction_2get)},
+static PyMethodDef __pyx_methods_4lxml_5etree__ResolverRegistry[] = {
+  {__Pyx_NAMESTR("add"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_3add, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_2add)},
+  {__Pyx_NAMESTR("remove"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_5remove, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_4remove)},
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_7copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_6copy)},
+  {__Pyx_NAMESTR("resolve"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_9resolve, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_8resolve)},
   {0, 0, 0, 0}
 };
 
-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_455), 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ProcessingInstruction = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ProcessingInstruction = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ProcessingInstruction = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ProcessingInstruction = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ProcessingInstruction = {
+static PyTypeObject __pyx_type_4lxml_5etree__ResolverRegistry = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ProcessingInstruction"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ProcessingInstruction), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ResolverRegistry"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ResolverRegistry), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ResolverRegistry, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -162479,31 +161950,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__ProcessingInstruction = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_22_ProcessingInstruction_1__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__ProcessingInstruction, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ProcessingInstruction, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ProcessingInstruction, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_17_ResolverRegistry_11__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ProcessingInstruction, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__Element, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__ResolverRegistry, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ResolverRegistry, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ProcessingInstruction, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ResolverRegistry, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ProcessingInstruction, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -162511,7 +161978,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__ProcessingInstruction = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ProcessingInstruction, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ResolverRegistry, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -162524,174 +161991,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__ProcessingInstruction = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__Entity __pyx_vtable_4lxml_5etree__Entity;
+static struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget __pyx_vtable_4lxml_5etree__SaxParserTarget;
 
-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___ContentOnlyElement(t, a, k);
+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;
+  o = (*t->tp_alloc)(t, 0);
   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;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7_Entity_tag(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7_Entity_3tag_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_7_Entity_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7_Entity_4name_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_7_Entity_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_7_Entity_4name_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
+  p = ((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__SaxParserTarget;
+  if (unlikely(__pyx_pw_4lxml_5etree_16_SaxParserTarget_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
   }
+  return o;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_7_Entity_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_7_Entity_4text_1__get__(o);
+static void __pyx_tp_dealloc_4lxml_5etree__SaxParserTarget(PyObject *o) {
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__Entity[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__SaxParserTarget[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Entity[] = {
-  {(char *)"tag", __pyx_getprop_4lxml_5etree_7_Entity_tag, 0, 0, 0},
-  {(char *)"name", __pyx_getprop_4lxml_5etree_7_Entity_name, __pyx_setprop_4lxml_5etree_7_Entity_name, 0, 0},
-  {(char *)"text", __pyx_getprop_4lxml_5etree_7_Entity_text, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__Entity = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__Entity = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__Entity = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__Entity = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__Entity = {
+static PyTypeObject __pyx_type_4lxml_5etree__SaxParserTarget = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._Entity"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__Entity), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._SaxParserTarget"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__SaxParserTarget), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__SaxParserTarget, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -162700,31 +162028,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__Entity = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_7_Entity_1__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__Entity, /*tp_as_number*/
-  &__pyx_tp_as_sequence__Entity, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__Entity, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__Entity, /*tp_as_buffer*/
-  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_as_buffer*/
+  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
   0, /*tp_doc*/
-  __pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
+  0, /*tp_traverse*/
+  0, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__Entity, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__SaxParserTarget, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__Entity, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -162732,7 +162056,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__Entity = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__Entity, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__SaxParserTarget, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -162745,807 +162069,102 @@ static PyTypeObject __pyx_type_4lxml_5etree__Entity = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ElementTree __pyx_vtable_4lxml_5etree__ElementTree;
+static struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder __pyx_vtable_4lxml_5etree_TreeBuilder;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__ElementTree(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
-  struct LxmlElementTree *p;
-  PyObject *o;
-  o = (*t->tp_alloc)(t, 0);
+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 (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);
-  p->_context_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  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);
+  p->_factory = Py_None; Py_INCREF(Py_None);
+  p->_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_element_stack_pop = Py_None; Py_INCREF(Py_None);
+  p->_last = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ElementTree(PyObject *o) {
-  struct LxmlElementTree *p = (struct LxmlElementTree *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_TreeBuilder(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_TreeBuilder *p = (struct __pyx_obj_4lxml_5etree_TreeBuilder *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_doc);
-  Py_CLEAR(p->_context_node);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->_parser);
+  Py_CLEAR(p->_factory);
+  Py_CLEAR(p->_data);
+  Py_CLEAR(p->_element_stack);
+  Py_CLEAR(p->_element_stack_pop);
+  Py_CLEAR(p->_last);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__SaxParserTarget(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ElementTree(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_TreeBuilder(PyObject *o, visitproc v, void *a) {
   int e;
-  struct LxmlElementTree *p = (struct LxmlElementTree *)o;
-  if (p->_doc) {
-    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_TreeBuilder *p = (struct __pyx_obj_4lxml_5etree_TreeBuilder *)o;
+  e = ((likely(__pyx_ptype_4lxml_5etree__SaxParserTarget)) ? ((__pyx_ptype_4lxml_5etree__SaxParserTarget->tp_traverse) ? __pyx_ptype_4lxml_5etree__SaxParserTarget->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4lxml_5etree_TreeBuilder)); if (e) return e;
+  if (p->_parser) {
+    e = (*v)(((PyObject*)p->_parser), a); if (e) return e;
   }
-  if (p->_context_node) {
-    e = (*v)(((PyObject*)p->_context_node), a); if (e) return e;
+  if (p->_factory) {
+    e = (*v)(p->_factory, a); if (e) return e;
+  }
+  if (p->_data) {
+    e = (*v)(p->_data, a); if (e) return e;
+  }
+  if (p->_element_stack) {
+    e = (*v)(p->_element_stack, a); if (e) return e;
+  }
+  if (p->_element_stack_pop) {
+    e = (*v)(p->_element_stack_pop, a); if (e) return e;
+  }
+  if (p->_last) {
+    e = (*v)(((PyObject*)p->_last), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__ElementTree(PyObject *o) {
-  struct LxmlElementTree *p = (struct LxmlElementTree *)o;
+static int __pyx_tp_clear_4lxml_5etree_TreeBuilder(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_TreeBuilder *p = (struct __pyx_obj_4lxml_5etree_TreeBuilder *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_doc);
-  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  if (likely(__pyx_ptype_4lxml_5etree__SaxParserTarget)) { if (__pyx_ptype_4lxml_5etree__SaxParserTarget->tp_clear) __pyx_ptype_4lxml_5etree__SaxParserTarget->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4lxml_5etree_TreeBuilder);
+  tmp = ((PyObject*)p->_parser);
+  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_context_node);
-  p->_context_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_factory);
+  p->_factory = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_data);
+  p->_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_element_stack);
+  p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_element_stack_pop);
+  p->_element_stack_pop = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_last);
+  p->_last = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_12_ElementTree_docinfo(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_12_ElementTree_7docinfo_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_12_ElementTree_parser(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_12_ElementTree_6parser_1__get__(o);
-}
+static PyMethodDef __pyx_methods_4lxml_5etree_TreeBuilder[] = {
+  {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_3close, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_2close)},
+  {__Pyx_NAMESTR("data"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_5data, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_4data)},
+  {__Pyx_NAMESTR("start"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_7start, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_6start)},
+  {__Pyx_NAMESTR("end"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_9end, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_8end)},
+  {__Pyx_NAMESTR("pi"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_11pi, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_10pi)},
+  {__Pyx_NAMESTR("comment"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_13comment, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_12comment)},
+  {0, 0, 0, 0}
+};
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ElementTree[] = {
-  {__Pyx_NAMESTR("parse"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_1parse, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_parse)},
-  {__Pyx_NAMESTR("_setroot"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_3_setroot, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_2_setroot)},
-  {__Pyx_NAMESTR("getroot"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_5getroot, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_4getroot)},
-  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_7__copy__, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_9__deepcopy__, METH_O, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_11write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_10write)},
-  {__Pyx_NAMESTR("getpath"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_13getpath, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_12getpath)},
-  {__Pyx_NAMESTR("getiterator"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_15getiterator, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_14getiterator)},
-  {__Pyx_NAMESTR("iter"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_17iter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_16iter)},
-  {__Pyx_NAMESTR("find"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_19find, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_18find)},
-  {__Pyx_NAMESTR("findtext"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_21findtext, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_20findtext)},
-  {__Pyx_NAMESTR("findall"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_23findall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_22findall)},
-  {__Pyx_NAMESTR("iterfind"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_25iterfind, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_24iterfind)},
-  {__Pyx_NAMESTR("xpath"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_27xpath, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_26xpath)},
-  {__Pyx_NAMESTR("xslt"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_29xslt, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_28xslt)},
-  {__Pyx_NAMESTR("relaxng"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_31relaxng, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_30relaxng)},
-  {__Pyx_NAMESTR("xmlschema"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_33xmlschema, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_32xmlschema)},
-  {__Pyx_NAMESTR("xinclude"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_35xinclude, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_34xinclude)},
-  {__Pyx_NAMESTR("write_c14n"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_37write_c14n, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_36write_c14n)},
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ElementTree[] = {
-  {(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}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ElementTree = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ElementTree = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ElementTree = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ElementTree = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-DL_EXPORT(PyTypeObject) LxmlElementTreeType = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ElementTree"), /*tp_name*/
-  sizeof(struct LxmlElementTree), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementTree, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__ElementTree, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ElementTree, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ElementTree, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ElementTree, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ElementTree, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ElementTree, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ElementTree, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-static PyObject *__pyx_tp_new_4lxml_5etree__Attrib(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__Attrib *p;
-  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 (unlikely(__pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree__Attrib(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__Attrib *p = (struct __pyx_obj_4lxml_5etree__Attrib *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_element);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__Attrib(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__Attrib *p = (struct __pyx_obj_4lxml_5etree__Attrib *)o;
-  if (p->_element) {
-    e = (*v)(((PyObject*)p->_element), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__Attrib(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__Attrib *p = (struct __pyx_obj_4lxml_5etree__Attrib *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_element);
-  p->_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-static PyObject *__pyx_sq_item_4lxml_5etree__Attrib(PyObject *o, Py_ssize_t i) {
-  PyObject *r;
-  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
-  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
-  Py_DECREF(x);
-  return r;
-}
-
-static int __pyx_mp_ass_subscript_4lxml_5etree__Attrib(PyObject *o, PyObject *i, PyObject *v) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_7_Attrib_3__setitem__(o, i, v);
-  }
-  else {
-    return __pyx_pw_4lxml_5etree_7_Attrib_5__delitem__(o, i);
-  }
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__Attrib[] = {
-  {__Pyx_NAMESTR("update"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_7update, METH_O, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("pop"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_9pop, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_11clear, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_15__copy__, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_17__deepcopy__, METH_O, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_25get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_27keys, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("iterkeys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_31iterkeys, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_33values, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("itervalues"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_35itervalues, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_37items, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("iteritems"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_39iteritems, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("has_key"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_41has_key, METH_O, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__Attrib = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  __pyx_pw_4lxml_5etree_7_Attrib_21__bool__, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__Attrib = {
-  __pyx_pw_4lxml_5etree_7_Attrib_23__len__, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  __pyx_sq_item_4lxml_5etree__Attrib, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  __pyx_pw_4lxml_5etree_7_Attrib_43__contains__, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__Attrib = {
-  __pyx_pw_4lxml_5etree_7_Attrib_23__len__, /*mp_length*/
-  __pyx_pw_4lxml_5etree_7_Attrib_19__getitem__, /*mp_subscript*/
-  __pyx_mp_ass_subscript_4lxml_5etree__Attrib, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__Attrib = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__Attrib = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._Attrib"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__Attrib), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Attrib, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  __pyx_pw_4lxml_5etree_7_Attrib_13__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__Attrib, /*tp_as_number*/
-  &__pyx_tp_as_sequence__Attrib, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__Attrib, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__Attrib, /*tp_as_buffer*/
-  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*/
-  __pyx_pw_4lxml_5etree_7_Attrib_45__richcmp__, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_7_Attrib_29__iter__, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__Attrib, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__Attrib, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-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;
-  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;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree__AttribIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__AttribIterator *p = (struct __pyx_obj_4lxml_5etree__AttribIterator *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_node);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__AttribIterator(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__AttribIterator *p = (struct __pyx_obj_4lxml_5etree__AttribIterator *)o;
-  if (p->_node) {
-    e = (*v)(((PyObject*)p->_node), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__AttribIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__AttribIterator *p = (struct __pyx_obj_4lxml_5etree__AttribIterator *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_node);
-  p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__AttribIterator[] = {
-  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_15_AttribIterator_3__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__AttribIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__AttribIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__AttribIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__AttribIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__AttribIterator = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._AttribIterator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__AttribIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__AttribIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__AttribIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence__AttribIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__AttribIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__AttribIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_15_AttribIterator_1__iter__, /*tp_iter*/
-  __pyx_pw_4lxml_5etree_15_AttribIterator_3__next__, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__AttribIterator, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__AttribIterator, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ElementTagMatcher __pyx_vtable_4lxml_5etree__ElementTagMatcher;
-
-static PyObject *__pyx_tp_new_4lxml_5etree__ElementTagMatcher(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
-  struct LxmlElementTagMatcher *p;
-  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);
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree__ElementTagMatcher(PyObject *o) {
-  struct LxmlElementTagMatcher *p = (struct LxmlElementTagMatcher *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_pystrings);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__ElementTagMatcher(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct LxmlElementTagMatcher *p = (struct LxmlElementTagMatcher *)o;
-  if (p->_pystrings) {
-    e = (*v)(p->_pystrings, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__ElementTagMatcher(PyObject *o) {
-  struct LxmlElementTagMatcher *p = (struct LxmlElementTagMatcher *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_pystrings);
-  p->_pystrings = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ElementTagMatcher[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ElementTagMatcher = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ElementTagMatcher = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ElementTagMatcher = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ElementTagMatcher = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType = {
+static PyTypeObject __pyx_type_4lxml_5etree_TreeBuilder = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ElementTagMatcher"), /*tp_name*/
-  sizeof(struct LxmlElementTagMatcher), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.TreeBuilder"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_TreeBuilder), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementTagMatcher, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_TreeBuilder, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -163555,222 +162174,24 @@ DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ElementTagMatcher, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ElementTagMatcher, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ElementTagMatcher, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ElementTagMatcher, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ElementTagMatcher, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ElementTagMatcher, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ElementIterator __pyx_vtable_4lxml_5etree__ElementIterator;
-
-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 (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);
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree__ElementIterator(PyObject *o) {
-  struct LxmlElementIterator *p = (struct LxmlElementIterator *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_node);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__ElementTagMatcher(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__ElementIterator(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct LxmlElementIterator *p = (struct LxmlElementIterator *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__ElementTagMatcher(o, v, a); if (e) return e;
-  if (p->_node) {
-    e = (*v)(((PyObject*)p->_node), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__ElementIterator(PyObject *o) {
-  struct LxmlElementIterator *p = (struct LxmlElementIterator *)o;
-  PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__ElementTagMatcher(o);
-  tmp = ((PyObject*)p->_node);
-  p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ElementIterator[] = {
-  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_16_ElementIterator_3__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ElementIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ElementIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ElementIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ElementIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-DL_EXPORT(PyTypeObject) LxmlElementIteratorType = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ElementIterator"), /*tp_name*/
-  sizeof(struct LxmlElementIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__ElementIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ElementIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ElementIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ElementIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_16_ElementIterator_1__iter__, /*tp_iter*/
-  __pyx_pw_4lxml_5etree_16_ElementIterator_3__next__, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ElementIterator, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_TreeBuilder, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -163778,9 +162199,9 @@ DL_EXPORT(PyTypeObject) LxmlElementIteratorType = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_11TreeBuilder_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ElementIterator, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_TreeBuilder, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -163793,4361 +162214,84 @@ DL_EXPORT(PyTypeObject) LxmlElementIteratorType = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__MultiTagMatcher __pyx_vtable_4lxml_5etree__MultiTagMatcher;
+static struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase __pyx_vtable_4lxml_5etree__XPathEvaluatorBase;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__MultiTagMatcher(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(o, a, k) < 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 (unlikely(__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__MultiTagMatcher(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p = (struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *p = (struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)o;
   PyObject_GC_UnTrack(o);
   {
     PyObject *etype, *eval, *etb;
     PyErr_Fetch(&etype, &eval, &etb);
     ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_16_MultiTagMatcher_3__dealloc__(o);
+    __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_5__dealloc__(o);
     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
     --Py_REFCNT(o);
     PyErr_Restore(etype, eval, etb);
   }
-  Py_CLEAR(p->_py_tags);
-  Py_CLEAR(p->_cached_doc);
+  Py_CLEAR(p->_context);
+  Py_CLEAR(p->_error_log);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__MultiTagMatcher(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p = (struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)o;
-  if (p->_py_tags) {
-    e = (*v)(p->_py_tags, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *p = (struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)o;
+  if (p->_context) {
+    e = (*v)(((PyObject*)p->_context), a); if (e) return e;
   }
-  if (p->_cached_doc) {
-    e = (*v)(((PyObject*)p->_cached_doc), a); if (e) return e;
+  if (p->_error_log) {
+    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__MultiTagMatcher(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p = (struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)o;
+static int __pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *p = (struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_py_tags);
-  p->_py_tags = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_context);
+  p->_context = ((struct __pyx_obj_4lxml_5etree__XPathContext *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_cached_doc);
-  p->_cached_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_error_log);
+  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__MultiTagMatcher[] = {
+static PyObject *__pyx_getprop_4lxml_5etree_19_XPathEvaluatorBase_error_log(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_9error_log_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__XPathEvaluatorBase[] = {
+  {__Pyx_NAMESTR("evaluate"), (PyCFunction)__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_7evaluate, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_19_XPathEvaluatorBase_6evaluate)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__MultiTagMatcher = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__XPathEvaluatorBase[] = {
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_19_XPathEvaluatorBase_error_log, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PySequenceMethods __pyx_tp_as_sequence__MultiTagMatcher = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__MultiTagMatcher = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__MultiTagMatcher = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__MultiTagMatcher = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._MultiTagMatcher"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__MultiTagMatcher), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__MultiTagMatcher, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__MultiTagMatcher, /*tp_as_number*/
-  &__pyx_tp_as_sequence__MultiTagMatcher, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__MultiTagMatcher, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__MultiTagMatcher, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__MultiTagMatcher, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__MultiTagMatcher, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator __pyx_vtable_4lxml_5etree__ElementMatchIterator;
-
-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;
-  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);
-  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ElementMatchIterator *p = (struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_node);
-  Py_CLEAR(p->_matcher);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__ElementMatchIterator(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__ElementMatchIterator *p = (struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)o;
-  if (p->_node) {
-    e = (*v)(((PyObject*)p->_node), a); if (e) return e;
-  }
-  if (p->_matcher) {
-    e = (*v)(((PyObject*)p->_matcher), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__ElementMatchIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ElementMatchIterator *p = (struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_node);
-  p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_matcher);
-  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ElementMatchIterator[] = {
-  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ElementMatchIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ElementMatchIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ElementMatchIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ElementMatchIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ElementMatchIterator = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ElementMatchIterator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ElementMatchIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__ElementMatchIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ElementMatchIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ElementMatchIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ElementMatchIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ElementMatchIterator, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ElementMatchIterator, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree_ElementChildIterator __pyx_vtable_4lxml_5etree_ElementChildIterator;
-
-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 (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 (unlikely(__pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_ElementChildIterator[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ElementChildIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ElementChildIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ElementChildIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ElementChildIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_ElementChildIterator = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ElementChildIterator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ElementChildIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_ElementChildIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementChildIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementChildIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementChildIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
-  #else
-  0, /*tp_iternext*/
-  #endif
-  __pyx_methods_4lxml_5etree_ElementChildIterator, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ElementChildIterator, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator __pyx_vtable_4lxml_5etree_SiblingsIterator;
-
-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 (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 (unlikely(__pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_SiblingsIterator[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_SiblingsIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_SiblingsIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_SiblingsIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_SiblingsIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_SiblingsIterator = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.SiblingsIterator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_SiblingsIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_SiblingsIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence_SiblingsIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_SiblingsIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_SiblingsIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
-  #else
-  0, /*tp_iternext*/
-  #endif
-  __pyx_methods_4lxml_5etree_SiblingsIterator, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_SiblingsIterator, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree_AncestorsIterator __pyx_vtable_4lxml_5etree_AncestorsIterator;
-
-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 (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 (unlikely(__pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_AncestorsIterator[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_AncestorsIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_AncestorsIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_AncestorsIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_AncestorsIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_AncestorsIterator = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.AncestorsIterator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_AncestorsIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_AncestorsIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence_AncestorsIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_AncestorsIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_AncestorsIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
-  #else
-  0, /*tp_iternext*/
-  #endif
-  __pyx_methods_4lxml_5etree_AncestorsIterator, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_AncestorsIterator, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree_ElementDepthFirstIterator __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator;
-
-static PyObject *__pyx_tp_new_4lxml_5etree_ElementDepthFirstIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p;
-  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 (unlikely(__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree_ElementDepthFirstIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p = (struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_next_node);
-  Py_CLEAR(p->_top_node);
-  Py_CLEAR(p->_matcher);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree_ElementDepthFirstIterator(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p = (struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)o;
-  if (p->_next_node) {
-    e = (*v)(((PyObject*)p->_next_node), a); if (e) return e;
-  }
-  if (p->_top_node) {
-    e = (*v)(((PyObject*)p->_top_node), a); if (e) return e;
-  }
-  if (p->_matcher) {
-    e = (*v)(((PyObject*)p->_matcher), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree_ElementDepthFirstIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *p = (struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_next_node);
-  p->_next_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_top_node);
-  p->_top_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_matcher);
-  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_ElementDepthFirstIterator[] = {
-  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_5__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ElementDepthFirstIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ElementDepthFirstIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ElementDepthFirstIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ElementDepthFirstIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_ElementDepthFirstIterator = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ElementDepthFirstIterator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_ElementDepthFirstIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_ElementDepthFirstIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementDepthFirstIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementDepthFirstIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementDepthFirstIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_3__iter__, /*tp_iter*/
-  __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_5__next__, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ElementDepthFirstIterator, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ElementDepthFirstIterator, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-static PyObject *__pyx_tp_new_4lxml_5etree_ElementTextIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p;
-  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 (unlikely(__pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree_ElementTextIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p = (struct __pyx_obj_4lxml_5etree_ElementTextIterator *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_nextEvent);
-  Py_CLEAR(p->_start_element);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree_ElementTextIterator(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p = (struct __pyx_obj_4lxml_5etree_ElementTextIterator *)o;
-  if (p->_nextEvent) {
-    e = (*v)(p->_nextEvent, a); if (e) return e;
-  }
-  if (p->_start_element) {
-    e = (*v)(((PyObject*)p->_start_element), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree_ElementTextIterator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p = (struct __pyx_obj_4lxml_5etree_ElementTextIterator *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_nextEvent);
-  p->_nextEvent = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_start_element);
-  p->_start_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_ElementTextIterator[] = {
-  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_19ElementTextIterator_5__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ElementTextIterator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ElementTextIterator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ElementTextIterator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ElementTextIterator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_ElementTextIterator = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ElementTextIterator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ElementTextIterator), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_ElementTextIterator, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_ElementTextIterator, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementTextIterator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementTextIterator, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementTextIterator, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_19ElementTextIterator_3__iter__, /*tp_iter*/
-  __pyx_pw_4lxml_5etree_19ElementTextIterator_5__next__, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ElementTextIterator, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ElementTextIterator, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-static PyObject *__pyx_tp_new_4lxml_5etree_CDATA(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree_CDATA *p;
-  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 (unlikely(__pyx_pw_4lxml_5etree_5CDATA_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree_CDATA(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_CDATA *p = (struct __pyx_obj_4lxml_5etree_CDATA *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_utf8_data);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree_CDATA(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree_CDATA *p = (struct __pyx_obj_4lxml_5etree_CDATA *)o;
-  if (p->_utf8_data) {
-    e = (*v)(p->_utf8_data, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree_CDATA(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_CDATA *p = (struct __pyx_obj_4lxml_5etree_CDATA *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_utf8_data);
-  p->_utf8_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_CDATA[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_CDATA = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_CDATA = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_CDATA = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_CDATA = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_CDATA = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.CDATA"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_CDATA), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_CDATA, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_CDATA, /*tp_as_number*/
-  &__pyx_tp_as_sequence_CDATA, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_CDATA, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_CDATA, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_CDATA, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_CDATA, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy __pyx_vtable_4lxml_5etree__ReadOnlyProxy;
-
-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;
-  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 (unlikely(__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *p = (struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_source_proxy);
-  Py_CLEAR(p->_dependent_proxies);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *p = (struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)o;
-  if (p->_source_proxy) {
-    e = (*v)(((PyObject*)p->_source_proxy), a); if (e) return e;
-  }
-  if (p->_dependent_proxies) {
-    e = (*v)(p->_dependent_proxies, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__ReadOnlyProxy(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *p = (struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_source_proxy);
-  p->_source_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_dependent_proxies);
-  p->_dependent_proxies = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-static PyObject *__pyx_sq_item_4lxml_5etree__ReadOnlyProxy(PyObject *o, Py_ssize_t i) {
-  PyObject *r;
-  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
-  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
-  Py_DECREF(x);
-  return r;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3tag_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_4text_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_4tail_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_10sourceline_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyProxy[] = {
-  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_11__deepcopy__, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_10__deepcopy__)},
-  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_13__copy__, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_12__copy__)},
-  {__Pyx_NAMESTR("iterchildren"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_17iterchildren, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_16iterchildren)},
-  {__Pyx_NAMESTR("getchildren"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_19getchildren, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_18getchildren)},
-  {__Pyx_NAMESTR("getparent"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_21getparent, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_20getparent)},
-  {__Pyx_NAMESTR("getnext"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_23getnext, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_22getnext)},
-  {__Pyx_NAMESTR("getprevious"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_25getprevious, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_24getprevious)},
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyProxy[] = {
-  {(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}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ReadOnlyProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ReadOnlyProxy = {
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  __pyx_sq_item_4lxml_5etree__ReadOnlyProxy, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ReadOnlyProxy = {
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ReadOnlyProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ReadOnlyProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__ReadOnlyProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ReadOnlyProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ReadOnlyProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ReadOnlyProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ReadOnlyProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ReadOnlyProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ReadOnlyProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy __pyx_vtable_4lxml_5etree__ReadOnlyPIProxy;
-
-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 (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;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_16_ReadOnlyPIProxy_target(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_16_ReadOnlyPIProxy_6target_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyPIProxy[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyPIProxy[] = {
-  {(char *)"target", __pyx_getprop_4lxml_5etree_16_ReadOnlyPIProxy_target, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ReadOnlyPIProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ReadOnlyPIProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ReadOnlyPIProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ReadOnlyPIProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyPIProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ReadOnlyPIProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyPIProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__ReadOnlyPIProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ReadOnlyPIProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ReadOnlyPIProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ReadOnlyPIProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ReadOnlyPIProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ReadOnlyPIProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ReadOnlyPIProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyEntityProxy __pyx_vtable_4lxml_5etree__ReadOnlyEntityProxy;
-
-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 (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;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_20_ReadOnlyEntityProxy_4name_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_20_ReadOnlyEntityProxy_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_20_ReadOnlyEntityProxy_4name_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
-  }
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_20_ReadOnlyEntityProxy_4text_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyEntityProxy[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyEntityProxy[] = {
-  {(char *)"name", __pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_name, __pyx_setprop_4lxml_5etree_20_ReadOnlyEntityProxy_name, 0, 0},
-  {(char *)"text", __pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_text, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ReadOnlyEntityProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ReadOnlyEntityProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ReadOnlyEntityProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ReadOnlyEntityProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyEntityProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ReadOnlyEntityProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyEntityProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__ReadOnlyEntityProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ReadOnlyEntityProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ReadOnlyEntityProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ReadOnlyEntityProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ReadOnlyEntityProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ReadOnlyEntityProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ReadOnlyEntityProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyElementProxy __pyx_vtable_4lxml_5etree__ReadOnlyElementProxy;
-
-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 (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 PyObject *__pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_attrib(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_6attrib_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_prefix(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_6prefix_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyElementProxy[] = {
-  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_1get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_get)},
-  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_3keys, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_2keys)},
-  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_5values, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_4values)},
-  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_7items, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_6items)},
-  {0, 0, 0, 0}
-};
-
-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_435), 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ReadOnlyElementProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ReadOnlyElementProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ReadOnlyElementProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ReadOnlyElementProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyElementProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ReadOnlyElementProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__ReadOnlyElementProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ReadOnlyElementProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ReadOnlyElementProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ReadOnlyElementProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ReadOnlyElementProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ReadOnlyElementProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ReadOnlyElementProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-static PyObject *__pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
-  PyObject *o;
-  o = (*t->tp_alloc)(t, 0);
-  if (unlikely(!o)) return 0;
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_5etree__OpaqueNodeWrapper(PyObject *o) {
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__OpaqueNodeWrapper[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__OpaqueNodeWrapper = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__OpaqueNodeWrapper = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__OpaqueNodeWrapper = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__OpaqueNodeWrapper = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__OpaqueNodeWrapper = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._OpaqueNodeWrapper"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__OpaqueNodeWrapper, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__OpaqueNodeWrapper, /*tp_as_number*/
-  &__pyx_tp_as_sequence__OpaqueNodeWrapper, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__OpaqueNodeWrapper, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__OpaqueNodeWrapper, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__OpaqueNodeWrapper, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_18_OpaqueNodeWrapper_1__init__, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__OpaqueDocumentWrapper __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper;
-
-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 (unlikely(!o)) return 0;
-  p = ((struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *)o);
-  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper;
-  return o;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__OpaqueDocumentWrapper[] = {
-  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_4lxml_5etree_22_OpaqueDocumentWrapper_1append, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_OpaqueDocumentWrapper_append)},
-  {__Pyx_NAMESTR("extend"), (PyCFunction)__pyx_pw_4lxml_5etree_22_OpaqueDocumentWrapper_3extend, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_OpaqueDocumentWrapper_2extend)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__OpaqueDocumentWrapper = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__OpaqueDocumentWrapper = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__OpaqueDocumentWrapper = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__OpaqueDocumentWrapper = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__OpaqueDocumentWrapper = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._OpaqueDocumentWrapper"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__OpaqueNodeWrapper, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__OpaqueDocumentWrapper, /*tp_as_number*/
-  &__pyx_tp_as_sequence__OpaqueDocumentWrapper, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__OpaqueDocumentWrapper, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__OpaqueDocumentWrapper, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__OpaqueDocumentWrapper, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_18_OpaqueNodeWrapper_1__init__, /*tp_init*/
-  #else
-  0, /*tp_init*/
-  #endif
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__OpaqueDocumentWrapper, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy;
-
-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 (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;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_23_ModifyContentOnlyProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_23_ModifyContentOnlyProxy_4text_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_23_ModifyContentOnlyProxy_text(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_23_ModifyContentOnlyProxy_4text_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
-  }
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ModifyContentOnlyProxy[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ModifyContentOnlyProxy[] = {
-  {(char *)"text", __pyx_getprop_4lxml_5etree_23_ModifyContentOnlyProxy_text, __pyx_setprop_4lxml_5etree_23_ModifyContentOnlyProxy_text, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ModifyContentOnlyProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ModifyContentOnlyProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ModifyContentOnlyProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ModifyContentOnlyProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ModifyContentOnlyProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ModifyContentOnlyProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__ModifyContentOnlyProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ModifyContentOnlyProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ModifyContentOnlyProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ModifyContentOnlyProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ModifyContentOnlyProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ModifyContentOnlyProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ModifyContentOnlyProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyPIProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyPIProxy;
-
-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__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;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_25_ModifyContentOnlyPIProxy_6target_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_25_ModifyContentOnlyPIProxy_6target_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
-  }
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ModifyContentOnlyPIProxy[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ModifyContentOnlyPIProxy[] = {
-  {(char *)"target", __pyx_getprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target, __pyx_setprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ModifyContentOnlyPIProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ModifyContentOnlyPIProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ModifyContentOnlyPIProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ModifyContentOnlyPIProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ModifyContentOnlyPIProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ModifyContentOnlyPIProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__ModifyContentOnlyPIProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ModifyContentOnlyPIProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ModifyContentOnlyPIProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ModifyContentOnlyPIProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ModifyContentOnlyPIProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ModifyContentOnlyPIProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ModifyContentOnlyPIProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyEntityProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyEntityProxy;
-
-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__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;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
-  }
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ModifyContentOnlyEntityProxy[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ModifyContentOnlyEntityProxy[] = {
-  {(char *)"name", __pyx_getprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name, __pyx_setprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ModifyContentOnlyEntityProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ModifyContentOnlyEntityProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ModifyContentOnlyEntityProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ModifyContentOnlyEntityProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ModifyContentOnlyEntityProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ModifyContentOnlyEntityProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__ModifyContentOnlyEntityProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ModifyContentOnlyEntityProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ModifyContentOnlyEntityProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ModifyContentOnlyEntityProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ModifyContentOnlyEntityProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ModifyContentOnlyEntityProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ModifyContentOnlyEntityProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree__AppendOnlyElementProxy __pyx_vtable_4lxml_5etree__AppendOnlyElementProxy;
-
-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__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 PyObject *__pyx_getprop_4lxml_5etree_23_AppendOnlyElementProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_4text_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_23_AppendOnlyElementProxy_text(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_4text_3__set__(o, v);
-  }
-  else {
-    PyErr_SetString(PyExc_NotImplementedError, "__del__");
-    return -1;
-  }
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__AppendOnlyElementProxy[] = {
-  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_1append, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_23_AppendOnlyElementProxy_append)},
-  {__Pyx_NAMESTR("extend"), (PyCFunction)__pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_3extend, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_23_AppendOnlyElementProxy_2extend)},
-  {0, 0, 0, 0}
-};
-
-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_458), 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__AppendOnlyElementProxy = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__AppendOnlyElementProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__AppendOnlyElementProxy = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__AppendOnlyElementProxy = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__AppendOnlyElementProxy = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._AppendOnlyElementProxy"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__AppendOnlyElementProxy, /*tp_as_number*/
-  &__pyx_tp_as_sequence__AppendOnlyElementProxy, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__AppendOnlyElementProxy, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__AppendOnlyElementProxy, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__AppendOnlyElementProxy, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__AppendOnlyElementProxy, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__AppendOnlyElementProxy, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-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 (unlikely(!o)) return 0;
-  return o;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_ElementBase[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ElementBase = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ElementBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_35__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ElementBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_35__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_33__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ElementBase = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-DL_EXPORT(PyTypeObject) LxmlElementBaseType = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ElementBase"), /*tp_name*/
-  sizeof(struct LxmlElementBase), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_31__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_ElementBase, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementBase, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementBase, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementBase, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ElementBase, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_11ElementBase_1__init__, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ElementBase, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree_CommentBase __pyx_vtable_4lxml_5etree_CommentBase;
-
-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__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;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_CommentBase[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_CommentBase = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_CommentBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_CommentBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_CommentBase = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_CommentBase = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.CommentBase"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_CommentBase), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Comment_1__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_CommentBase, /*tp_as_number*/
-  &__pyx_tp_as_sequence_CommentBase, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_CommentBase, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_CommentBase, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_CommentBase, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_11CommentBase_1__init__, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_CommentBase, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree_PIBase __pyx_vtable_4lxml_5etree_PIBase;
-
-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__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;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_PIBase[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_PIBase = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_PIBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_PIBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_PIBase = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_PIBase = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.PIBase"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_PIBase), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_22_ProcessingInstruction_1__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_PIBase, /*tp_as_number*/
-  &__pyx_tp_as_sequence_PIBase, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_PIBase, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_PIBase, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_PIBase, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_6PIBase_1__init__, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_PIBase, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-static struct __pyx_vtabstruct_4lxml_5etree_EntityBase __pyx_vtable_4lxml_5etree_EntityBase;
-
-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__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;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_EntityBase[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_EntityBase = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_EntityBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_EntityBase = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_EntityBase = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_EntityBase = {
+static PyTypeObject __pyx_type_4lxml_5etree__XPathEvaluatorBase = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.EntityBase"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_EntityBase), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XPathEvaluatorBase"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -168156,43 +162300,35 @@ static PyTypeObject __pyx_type_4lxml_5etree_EntityBase = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_7_Entity_1__repr__, /*tp_repr*/
-  #else
   0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_EntityBase, /*tp_as_number*/
-  &__pyx_tp_as_sequence_EntityBase, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_EntityBase, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_EntityBase, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  0, /*tp_doc*/
+  __pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_EntityBase, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__XPathEvaluatorBase, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__XPathEvaluatorBase, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_10EntityBase_1__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_EntityBase, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XPathEvaluatorBase, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -168205,129 +162341,128 @@ static PyTypeObject __pyx_type_4lxml_5etree_EntityBase = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator __pyx_vtable_4lxml_5etree_XPathElementEvaluator;
 
-static PyObject *__pyx_tp_new_4lxml_5etree_ElementClassLookup(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
-  PyObject *o;
-  o = (*t->tp_alloc)(t, 0);
+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 (unlikely(!o)) return 0;
-  if (unlikely(__pyx_pw_4lxml_5etree_18ElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup(PyObject *o) {
-  (*Py_TYPE(o)->tp_free)(o);
+static void __pyx_tp_dealloc_4lxml_5etree_XPathElementEvaluator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *p = (struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_element);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_ElementClassLookup[] = {
+static int __pyx_tp_traverse_4lxml_5etree_XPathElementEvaluator(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *p = (struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase(o, v, a); if (e) return e;
+  if (p->_element) {
+    e = (*v)(((PyObject*)p->_element), a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_5etree_XPathElementEvaluator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *p = (struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)o;
+  PyObject* tmp;
+  __pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase(o);
+  tmp = ((PyObject*)p->_element);
+  p->_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_XPathElementEvaluator[] = {
+  {__Pyx_NAMESTR("register_namespace"), (PyCFunction)__pyx_pw_4lxml_5etree_21XPathElementEvaluator_3register_namespace, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21XPathElementEvaluator_2register_namespace)},
+  {__Pyx_NAMESTR("register_namespaces"), (PyCFunction)__pyx_pw_4lxml_5etree_21XPathElementEvaluator_5register_namespaces, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21XPathElementEvaluator_4register_namespaces)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_ElementClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_XPathElementEvaluator = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.XPathElementEvaluator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XPathElementEvaluator), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_XPathElementEvaluator, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  __pyx_pw_4lxml_5etree_21XPathElementEvaluator_7__call__, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_XPathElementEvaluator, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_XPathElementEvaluator, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_XPathDocumentEvaluator __pyx_vtable_4lxml_5etree_XPathDocumentEvaluator;
 
-static PySequenceMethods __pyx_tp_as_sequence_ElementClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ElementClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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 (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;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_ElementClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree_XPathDocumentEvaluator[] = {
+  {0, 0, 0, 0}
 };
 
-DL_EXPORT(PyTypeObject) LxmlElementClassLookupType = {
+static PyTypeObject __pyx_type_4lxml_5etree_XPathDocumentEvaluator = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ElementClassLookup"), /*tp_name*/
-  sizeof(struct LxmlElementClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.XPathDocumentEvaluator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XPathDocumentEvaluator), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_XPathElementEvaluator, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -168337,24 +162472,24 @@ DL_EXPORT(PyTypeObject) LxmlElementClassLookupType = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_ElementClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementClassLookup, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  0, /*tp_call*/
+  __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_3__call__, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementClassLookup, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ElementClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_XPathDocumentEvaluator, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -168362,9 +162497,9 @@ DL_EXPORT(PyTypeObject) LxmlElementClassLookupType = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ElementClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_XPathDocumentEvaluator, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -168377,167 +162512,153 @@ DL_EXPORT(PyTypeObject) LxmlElementClassLookupType = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup __pyx_vtable_4lxml_5etree_FallbackElementClassLookup;
 
-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 (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 (unlikely(__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 0;
+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;
+  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;
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup(PyObject *o) {
-  struct LxmlFallbackElementClassLookup *p = (struct LxmlFallbackElementClassLookup *)o;
+static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->fallback);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup(o);
+  Py_CLEAR(p->__pyx_v_node);
+  Py_CLEAR(p->__pyx_v_self);
+  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_FallbackElementClassLookup(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyObject *o, visitproc v, void *a) {
   int e;
-  struct LxmlFallbackElementClassLookup *p = (struct LxmlFallbackElementClassLookup *)o;
-  e = ((likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) ? ((__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse) ? __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup)); if (e) return e;
-  if (p->fallback) {
-    e = (*v)(((PyObject*)p->fallback), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o;
+  if (p->__pyx_v_node) {
+    e = (*v)(((PyObject*)p->__pyx_v_node), a); if (e) return e;
+  }
+  if (p->__pyx_v_self) {
+    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup(PyObject *o) {
-  struct LxmlFallbackElementClassLookup *p = (struct LxmlFallbackElementClassLookup *)o;
+static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o;
   PyObject* tmp;
-  if (likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) { if (__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear) __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup);
-  tmp = ((PyObject*)p->fallback);
-  p->fallback = ((struct LxmlElementClassLookup *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->__pyx_v_node);
+  p->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->__pyx_v_self);
+  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_26FallbackElementClassLookup_fallback(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_8fallback_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_FallbackElementClassLookup[] = {
-  {__Pyx_NAMESTR("set_fallback"), (PyCFunction)__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_5set_fallback, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_26FallbackElementClassLookup_4set_fallback)},
+static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct_1_iterattributes[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_FallbackElementClassLookup[] = {
-  {(char *)"fallback", __pyx_getprop_4lxml_5etree_26FallbackElementClassLookup_fallback, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_FallbackElementClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct_1_iterattributes"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__Comment __pyx_vtable_4lxml_5etree__Comment;
 
-static PySequenceMethods __pyx_tp_as_sequence_FallbackElementClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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___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;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_FallbackElementClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_8_Comment_tag(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_8_Comment_3tag_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__Comment[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_FallbackElementClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Comment[] = {
+  {(char *)"tag", __pyx_getprop_4lxml_5etree_8_Comment_tag, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType = {
+static PyTypeObject __pyx_type_4lxml_5etree__Comment = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.FallbackElementClassLookup"), /*tp_name*/
-  sizeof(struct LxmlFallbackElementClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._Comment"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__Comment), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -168546,35 +162667,39 @@ DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_FallbackElementClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_FallbackElementClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_FallbackElementClassLookup, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_8_Comment_1__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_FallbackElementClassLookup, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  0, /*tp_doc*/
+  __pyx_tp_traverse_4lxml_5etree__Element, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__Element, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_FallbackElementClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__Comment, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_FallbackElementClassLookup, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__Comment, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_FallbackElementClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__Comment, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -168587,203 +162712,74 @@ DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__MultiTagMatcher __pyx_vtable_4lxml_5etree__MultiTagMatcher;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree__MultiTagMatcher(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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 (unlikely(__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_ElementDefaultClassLookup(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__MultiTagMatcher(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p = (struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->element_class);
-  Py_CLEAR(p->comment_class);
-  Py_CLEAR(p->pi_class);
-  Py_CLEAR(p->entity_class);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup(o);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_16_MultiTagMatcher_3__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  Py_CLEAR(p->_py_tags);
+  Py_CLEAR(p->_cached_doc);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_ElementDefaultClassLookup(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__MultiTagMatcher(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)o;
-  e = ((likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) ? ((__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse) ? __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4lxml_5etree_ElementDefaultClassLookup)); if (e) return e;
-  if (p->element_class) {
-    e = (*v)(p->element_class, a); if (e) return e;
-  }
-  if (p->comment_class) {
-    e = (*v)(p->comment_class, a); if (e) return e;
-  }
-  if (p->pi_class) {
-    e = (*v)(p->pi_class, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p = (struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)o;
+  if (p->_py_tags) {
+    e = (*v)(p->_py_tags, a); if (e) return e;
   }
-  if (p->entity_class) {
-    e = (*v)(p->entity_class, a); if (e) return e;
+  if (p->_cached_doc) {
+    e = (*v)(((PyObject*)p->_cached_doc), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_ElementDefaultClassLookup(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)o;
+static int __pyx_tp_clear_4lxml_5etree__MultiTagMatcher(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__MultiTagMatcher *p = (struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)o;
   PyObject* tmp;
-  if (likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) { if (__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear) __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4lxml_5etree_ElementDefaultClassLookup);
-  tmp = ((PyObject*)p->element_class);
-  p->element_class = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->comment_class);
-  p->comment_class = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->pi_class);
-  p->pi_class = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_py_tags);
+  p->_py_tags = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->entity_class);
-  p->entity_class = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_cached_doc);
+  p->_cached_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_element_class(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_13element_class_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_comment_class(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_13comment_class_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_pi_class(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_8pi_class_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_entity_class(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_12entity_class_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_ElementDefaultClassLookup[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__MultiTagMatcher[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_ElementDefaultClassLookup[] = {
-  {(char *)"element_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_element_class, 0, 0, 0},
-  {(char *)"comment_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_comment_class, 0, 0, 0},
-  {(char *)"pi_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_pi_class, 0, 0, 0},
-  {(char *)"entity_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_entity_class, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ElementDefaultClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ElementDefaultClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ElementDefaultClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ElementDefaultClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_ElementDefaultClassLookup = {
+static PyTypeObject __pyx_type_4lxml_5etree__MultiTagMatcher = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ElementDefaultClassLookup"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._MultiTagMatcher"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__MultiTagMatcher), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_ElementDefaultClassLookup, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__MultiTagMatcher, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -168793,34 +162789,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementDefaultClassLookup = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_ElementDefaultClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementDefaultClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementDefaultClassLookup, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementDefaultClassLookup, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ElementDefaultClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__MultiTagMatcher, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_ElementDefaultClassLookup, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ElementDefaultClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__MultiTagMatcher, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -168833,165 +162829,147 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementDefaultClassLookup = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_AttributeBasedElementClassLookup __pyx_vtable_4lxml_5etree_AttributeBasedElementClassLookup;
+static struct __pyx_vtabstruct_4lxml_5etree_XPath __pyx_vtable_4lxml_5etree_XPath;
 
-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);
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_5XPath_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_AttributeBasedElementClassLookup(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *p = (struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_XPath(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XPath *p = (struct __pyx_obj_4lxml_5etree_XPath *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_class_mapping);
-  Py_CLEAR(p->_pytag);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_5XPath_7__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  Py_CLEAR(p->_path);
   PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup(o);
+  __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_AttributeBasedElementClassLookup(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_XPath(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *p = (struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o;
-  e = __pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup(o, v, a); if (e) return e;
-  if (p->_class_mapping) {
-    e = (*v)(p->_class_mapping, a); if (e) return e;
-  }
-  if (p->_pytag) {
-    e = (*v)(p->_pytag, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_XPath *p = (struct __pyx_obj_4lxml_5etree_XPath *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase(o, v, a); if (e) return e;
+  if (p->_path) {
+    e = (*v)(p->_path, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_AttributeBasedElementClassLookup(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *p = (struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o;
+static int __pyx_tp_clear_4lxml_5etree_XPath(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XPath *p = (struct __pyx_obj_4lxml_5etree_XPath *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup(o);
-  tmp = ((PyObject*)p->_class_mapping);
-  p->_class_mapping = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_pytag);
-  p->_pytag = Py_None; Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase(o);
+  tmp = ((PyObject*)p->_path);
+  p->_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_AttributeBasedElementClassLookup[] = {
+static PyObject *__pyx_getprop_4lxml_5etree_5XPath_path(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_5XPath_4path_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_XPath[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_AttributeBasedElementClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XPath[] = {
+  {(char *)"path", __pyx_getprop_4lxml_5etree_5XPath_path, 0, __Pyx_DOCSTR(__pyx_k_451), 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree_XPath = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.XPath"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XPath), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_XPath, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  __pyx_pw_4lxml_5etree_5XPath_9__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  __pyx_pw_4lxml_5etree_5XPath_5__call__, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_XPath, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree_XPath, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_5XPath_3__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_XPath, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_ETXPath __pyx_vtable_4lxml_5etree_ETXPath;
 
-static PySequenceMethods __pyx_tp_as_sequence_AttributeBasedElementClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_AttributeBasedElementClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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 (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;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_AttributeBasedElementClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree_ETXPath[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup = {
+static PyTypeObject __pyx_type_4lxml_5etree_ETXPath = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.AttributeBasedElementClassLookup"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.ETXPath"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ETXPath), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_XPath, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -169000,25 +162978,33 @@ static PyTypeObject __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_5XPath_9__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number_AttributeBasedElementClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_AttributeBasedElementClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_AttributeBasedElementClassLookup, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_5XPath_5__call__, /*tp_call*/
+  #else
   0, /*tp_call*/
+  #endif
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_AttributeBasedElementClassLookup, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_ETXPath, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -169026,9 +163012,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_3__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_7ETXPath_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_ETXPath, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -169041,126 +163027,67 @@ static PyTypeObject __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_ParserBasedElementClassLookup __pyx_vtable_4lxml_5etree_ParserBasedElementClassLookup;
+static struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup __pyx_vtable_4lxml_5etree_FallbackElementClassLookup;
 
-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);
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_29ParserBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+  p = ((struct LxmlFallbackElementClassLookup *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
+  p->fallback = ((struct LxmlElementClassLookup *)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_ParserBasedElementClassLookup[] = {
-  {0, 0, 0, 0}
-};
+static void __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup(PyObject *o) {
+  struct LxmlFallbackElementClassLookup *p = (struct LxmlFallbackElementClassLookup *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->fallback);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number_ParserBasedElementClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static int __pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct LxmlFallbackElementClassLookup *p = (struct LxmlFallbackElementClassLookup *)o;
+  e = ((likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) ? ((__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse) ? __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup)); if (e) return e;
+  if (p->fallback) {
+    e = (*v)(((PyObject*)p->fallback), a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup(PyObject *o) {
+  struct LxmlFallbackElementClassLookup *p = (struct LxmlFallbackElementClassLookup *)o;
+  PyObject* tmp;
+  if (likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) { if (__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear) __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup);
+  tmp = ((PyObject*)p->fallback);
+  p->fallback = ((struct LxmlElementClassLookup *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PySequenceMethods __pyx_tp_as_sequence_ParserBasedElementClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_26FallbackElementClassLookup_fallback(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_8fallback_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_ParserBasedElementClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree_FallbackElementClassLookup[] = {
+  {__Pyx_NAMESTR("set_fallback"), (PyCFunction)__pyx_pw_4lxml_5etree_26FallbackElementClassLookup_5set_fallback, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_26FallbackElementClassLookup_4set_fallback)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_ParserBasedElementClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_FallbackElementClassLookup[] = {
+  {(char *)"fallback", __pyx_getprop_4lxml_5etree_26FallbackElementClassLookup_fallback, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_ParserBasedElementClassLookup = {
+DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ParserBasedElementClassLookup"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ParserBasedElementClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.FallbackElementClassLookup"), /*tp_name*/
+  sizeof(struct LxmlFallbackElementClassLookup), /*tp_basicsize*/
   0, /*tp_itemsize*/
   __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup, /*tp_dealloc*/
   0, /*tp_print*/
@@ -169172,38 +163099,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_ParserBasedElementClassLookup = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_ParserBasedElementClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ParserBasedElementClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ParserBasedElementClassLookup, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ParserBasedElementClassLookup, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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_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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ParserBasedElementClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_FallbackElementClassLookup, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree_FallbackElementClassLookup, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
   __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__, /*tp_init*/
-  #else
-  0, /*tp_init*/
-  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ParserBasedElementClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_FallbackElementClassLookup, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -169235,104 +163158,6 @@ static PyMethodDef __pyx_methods_4lxml_5etree_CustomElementClassLookup[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_CustomElementClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_CustomElementClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_CustomElementClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_CustomElementClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_5etree_CustomElementClassLookup = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree.CustomElementClassLookup"), /*tp_name*/
@@ -169348,15 +163173,15 @@ static PyTypeObject __pyx_type_4lxml_5etree_CustomElementClassLookup = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_CustomElementClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_CustomElementClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_CustomElementClassLookup, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_CustomElementClassLookup, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -169392,129 +163217,86 @@ static PyTypeObject __pyx_type_4lxml_5etree_CustomElementClassLookup = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_PythonElementClassLookup __pyx_vtable_4lxml_5etree_PythonElementClassLookup;
+static struct __pyx_vtabstruct_4lxml_5etree__IncrementalFileWriter __pyx_vtable_4lxml_5etree__IncrementalFileWriter;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree__IncrementalFileWriter(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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 (unlikely(__pyx_pw_4lxml_5etree_24PythonElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_PythonElementClassLookup[] = {
-  {__Pyx_NAMESTR("lookup"), (PyCFunction)__pyx_pw_4lxml_5etree_24PythonElementClassLookup_3lookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_24PythonElementClassLookup_2lookup)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_PythonElementClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static void __pyx_tp_dealloc_4lxml_5etree__IncrementalFileWriter(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p = (struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o;
+  PyObject_GC_UnTrack(o);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_22_IncrementalFileWriter_3__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  Py_CLEAR(p->_encoding);
+  Py_CLEAR(p->_target);
+  Py_CLEAR(p->_element_stack);
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence_PythonElementClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_tp_traverse_4lxml_5etree__IncrementalFileWriter(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p = (struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o;
+  if (p->_encoding) {
+    e = (*v)(p->_encoding, a); if (e) return e;
+  }
+  if (p->_target) {
+    e = (*v)(p->_target, a); if (e) return e;
+  }
+  if (p->_element_stack) {
+    e = (*v)(p->_element_stack, a); if (e) return e;
+  }
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_PythonElementClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+static int __pyx_tp_clear_4lxml_5etree__IncrementalFileWriter(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p = (struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_encoding);
+  p->_encoding = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_target);
+  p->_target = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_element_stack);
+  p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_PythonElementClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__IncrementalFileWriter[] = {
+  {__Pyx_NAMESTR("write_declaration"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_5write_declaration, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_4write_declaration)},
+  {__Pyx_NAMESTR("write_doctype"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_7write_doctype, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_6write_doctype)},
+  {__Pyx_NAMESTR("element"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_9element, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_8element)},
+  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_11write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_10write)},
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_PythonElementClassLookup = {
+static PyTypeObject __pyx_type_4lxml_5etree__IncrementalFileWriter = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.PythonElementClassLookup"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_PythonElementClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._IncrementalFileWriter"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__IncrementalFileWriter), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__IncrementalFileWriter, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -169524,24 +163306,24 @@ static PyTypeObject __pyx_type_4lxml_5etree_PythonElementClassLookup = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_PythonElementClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_PythonElementClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_PythonElementClassLookup, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_PythonElementClassLookup, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_PythonElementClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__IncrementalFileWriter, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -169549,13 +163331,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_PythonElementClassLookup = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__, /*tp_init*/
-  #else
   0, /*tp_init*/
-  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_PythonElementClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__IncrementalFileWriter, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -169568,63 +163346,55 @@ static PyTypeObject __pyx_type_4lxml_5etree_PythonElementClassLookup = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry __pyx_vtable_4lxml_5etree__NamespaceRegistry;
+static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy __pyx_vtable_4lxml_5etree__ReadOnlyProxy;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__NamespaceRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_18_NamespaceRegistry_1__cinit__(o, a, k) < 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 (unlikely(__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__NamespaceRegistry *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *p = (struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_ns_uri);
-  Py_CLEAR(p->_ns_uri_utf);
-  Py_CLEAR(p->_entries);
+  Py_CLEAR(p->_source_proxy);
+  Py_CLEAR(p->_dependent_proxies);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__NamespaceRegistry(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ReadOnlyProxy(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__NamespaceRegistry *)o;
-  if (p->_ns_uri) {
-    e = (*v)(p->_ns_uri, a); if (e) return e;
-  }
-  if (p->_ns_uri_utf) {
-    e = (*v)(p->_ns_uri_utf, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *p = (struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)o;
+  if (p->_source_proxy) {
+    e = (*v)(((PyObject*)p->_source_proxy), a); if (e) return e;
   }
-  if (p->_entries) {
-    e = (*v)(p->_entries, a); if (e) return e;
+  if (p->_dependent_proxies) {
+    e = (*v)(p->_dependent_proxies, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__NamespaceRegistry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__NamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__NamespaceRegistry *)o;
+static int __pyx_tp_clear_4lxml_5etree__ReadOnlyProxy(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *p = (struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_ns_uri);
-  p->_ns_uri = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_ns_uri_utf);
-  p->_ns_uri_utf = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_source_proxy);
+  p->_source_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_entries);
-  p->_entries = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_dependent_proxies);
+  p->_dependent_proxies = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
-static PyObject *__pyx_sq_item_4lxml_5etree__NamespaceRegistry(PyObject *o, Py_ssize_t i) {
+static PyObject *__pyx_sq_item_4lxml_5etree__ReadOnlyProxy(PyObject *o, Py_ssize_t i) {
   PyObject *r;
   PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
   r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
@@ -169632,26 +163402,42 @@ static PyObject *__pyx_sq_item_4lxml_5etree__NamespaceRegistry(PyObject *o, Py_s
   return r;
 }
 
-static int __pyx_mp_ass_subscript_4lxml_5etree__NamespaceRegistry(PyObject *o, PyObject *i, PyObject *v) {
-  if (v) {
-    PyErr_Format(PyExc_NotImplementedError,
-      "Subscript assignment not supported by %s", Py_TYPE(o)->tp_name);
-    return -1;
-  }
-  else {
-    return __pyx_pw_4lxml_5etree_18_NamespaceRegistry_7__delitem__(o, i);
-  }
+static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3tag_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__NamespaceRegistry[] = {
-  {__Pyx_NAMESTR("update"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_3update, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_18_NamespaceRegistry_2update)},
-  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_11items, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("iteritems"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_13iteritems, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_4lxml_5etree_18_NamespaceRegistry_15clear, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_4text_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_4tail_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_10sourceline_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyProxy[] = {
+  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_11__deepcopy__, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_10__deepcopy__)},
+  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_13__copy__, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_12__copy__)},
+  {__Pyx_NAMESTR("iterchildren"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_17iterchildren, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_16iterchildren)},
+  {__Pyx_NAMESTR("getchildren"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_19getchildren, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_18getchildren)},
+  {__Pyx_NAMESTR("getparent"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_21getparent, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_20getparent)},
+  {__Pyx_NAMESTR("getnext"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_23getnext, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_22getnext)},
+  {__Pyx_NAMESTR("getprevious"), (PyCFunction)__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_25getprevious, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_14_ReadOnlyProxy_24getprevious)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__NamespaceRegistry = {
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyProxy[] = {
+  {(char *)"tag", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag, 0, __Pyx_DOCSTR(__pyx_k_440), 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text, 0, __Pyx_DOCSTR(__pyx_k_442), 0},
+  {(char *)"tail", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail, 0, __Pyx_DOCSTR(__pyx_k_443), 0},
+  {(char *)"sourceline", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline, 0, __Pyx_DOCSTR(__pyx_k_445), 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number__ReadOnlyProxy = {
   0, /*nb_add*/
   0, /*nb_subtract*/
   0, /*nb_multiply*/
@@ -169664,7 +163450,7 @@ static PyNumberMethods __pyx_tp_as_number__NamespaceRegistry = {
   0, /*nb_negative*/
   0, /*nb_positive*/
   0, /*nb_absolute*/
-  0, /*nb_nonzero*/
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_9__nonzero__, /*nb_nonzero*/
   0, /*nb_invert*/
   0, /*nb_lshift*/
   0, /*nb_rshift*/
@@ -169709,11 +163495,11 @@ static PyNumberMethods __pyx_tp_as_number__NamespaceRegistry = {
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence__NamespaceRegistry = {
-  0, /*sq_length*/
+static PySequenceMethods __pyx_tp_as_sequence__ReadOnlyProxy = {
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*sq_length*/
   0, /*sq_concat*/
   0, /*sq_repeat*/
-  __pyx_sq_item_4lxml_5etree__NamespaceRegistry, /*sq_item*/
+  __pyx_sq_item_4lxml_5etree__ReadOnlyProxy, /*sq_item*/
   0, /*sq_slice*/
   0, /*sq_ass_item*/
   0, /*sq_ass_slice*/
@@ -169722,39 +163508,18 @@ static PySequenceMethods __pyx_tp_as_sequence__NamespaceRegistry = {
   0, /*sq_inplace_repeat*/
 };
 
-static PyMappingMethods __pyx_tp_as_mapping__NamespaceRegistry = {
-  0, /*mp_length*/
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_5__getitem__, /*mp_subscript*/
-  __pyx_mp_ass_subscript_4lxml_5etree__NamespaceRegistry, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__NamespaceRegistry = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMappingMethods __pyx_tp_as_mapping__ReadOnlyProxy = {
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_7__len__, /*mp_length*/
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_5__getitem__, /*mp_subscript*/
+  0, /*mp_ass_subscript*/
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__NamespaceRegistry = {
+static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyProxy = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._NamespaceRegistry"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__NamespaceRegistry), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ReadOnlyProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -169763,27 +163528,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__NamespaceRegistry = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__NamespaceRegistry, /*tp_as_number*/
-  &__pyx_tp_as_sequence__NamespaceRegistry, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__NamespaceRegistry, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
+  &__pyx_tp_as_number__ReadOnlyProxy, /*tp_as_number*/
+  &__pyx_tp_as_sequence__ReadOnlyProxy, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping__ReadOnlyProxy, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__NamespaceRegistry, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__NamespaceRegistry, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ReadOnlyProxy, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__ReadOnlyProxy, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -169791,7 +163556,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__NamespaceRegistry = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__NamespaceRegistry, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ReadOnlyProxy, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -169804,142 +163569,123 @@ static PyTypeObject __pyx_type_4lxml_5etree__NamespaceRegistry = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ClassNamespaceRegistry __pyx_vtable_4lxml_5etree__ClassNamespaceRegistry;
+static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyElementProxy __pyx_vtable_4lxml_5etree__ReadOnlyElementProxy;
 
-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);
+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 (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;
+  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 int __pyx_mp_ass_subscript_4lxml_5etree__ClassNamespaceRegistry(PyObject *o, PyObject *i, PyObject *v) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_23_ClassNamespaceRegistry_1__setitem__(o, i, v);
-  }
-  else {
-    if (__pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping && __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript)
-      return __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript(o, i, v);
-    PyErr_Format(PyExc_NotImplementedError,
-      "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name);
-    return -1;
-  }
+static PyObject *__pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_attrib(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_6attrib_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ClassNamespaceRegistry[] = {
+static PyObject *__pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_prefix(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_6prefix_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyElementProxy[] = {
+  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_1get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_get)},
+  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_3keys, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_2keys)},
+  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_5values, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_4values)},
+  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ReadOnlyElementProxy_7items, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21_ReadOnlyElementProxy_6items)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__ClassNamespaceRegistry = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+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_444), 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyElementProxy = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._ReadOnlyElementProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ClassNamespaceRegistry = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ClassNamespaceRegistry = {
-  0, /*mp_length*/
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_5__getitem__, /*mp_subscript*/
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
   #else
-  0, /*mp_subscript*/
-  #endif
-  __pyx_mp_ass_subscript_4lxml_5etree__ClassNamespaceRegistry, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ClassNamespaceRegistry = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
+  0, /*tp_repr*/
   #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
   #endif
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ReadOnlyElementProxy, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree__ReadOnlyElementProxy, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__ReadOnlyElementProxy, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
   #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_CommentBase __pyx_vtable_4lxml_5etree_CommentBase;
 
-static PyTypeObject __pyx_type_4lxml_5etree__ClassNamespaceRegistry = {
+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__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;
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_CommentBase[] = {
+  {0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree_CommentBase = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ClassNamespaceRegistry"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ClassNamespaceRegistry), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.CommentBase"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_CommentBase), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -169948,29 +163694,33 @@ static PyTypeObject __pyx_type_4lxml_5etree__ClassNamespaceRegistry = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_23_ClassNamespaceRegistry_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__ClassNamespaceRegistry, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ClassNamespaceRegistry, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ClassNamespaceRegistry, /*tp_as_mapping*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Comment_1__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ClassNamespaceRegistry, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
   #else
   0, /*tp_iter*/
   #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ClassNamespaceRegistry, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_CommentBase, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -169978,9 +163728,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ClassNamespaceRegistry = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_11CommentBase_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ClassNamespaceRegistry, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_CommentBase, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -169993,158 +163743,55 @@ static PyTypeObject __pyx_type_4lxml_5etree__ClassNamespaceRegistry = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_ElementNamespaceClassLookup __pyx_vtable_4lxml_5etree_ElementNamespaceClassLookup;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree__XSLTQuotedStringParam(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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 (unlikely(__pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+  p = ((struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o);
+  p->strval = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_ElementNamespaceClassLookup(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__XSLTQuotedStringParam(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p = (struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_namespace_registries);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup(o);
+  Py_CLEAR(p->strval);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_ElementNamespaceClassLookup(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__XSLTQuotedStringParam(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *)o;
-  e = __pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup(o, v, a); if (e) return e;
-  if (p->_namespace_registries) {
-    e = (*v)(p->_namespace_registries, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p = (struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o;
+  if (p->strval) {
+    e = (*v)(p->strval, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_ElementNamespaceClassLookup(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *)o;
+static int __pyx_tp_clear_4lxml_5etree__XSLTQuotedStringParam(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p = (struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup(o);
-  tmp = ((PyObject*)p->_namespace_registries);
-  p->_namespace_registries = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->strval);
+  p->strval = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_ElementNamespaceClassLookup[] = {
-  {__Pyx_NAMESTR("get_namespace"), (PyCFunction)__pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_5get_namespace, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_27ElementNamespaceClassLookup_4get_namespace)},
+static PyMethodDef __pyx_methods_4lxml_5etree__XSLTQuotedStringParam[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_ElementNamespaceClassLookup = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ElementNamespaceClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ElementNamespaceClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ElementNamespaceClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_ElementNamespaceClassLookup = {
+static PyTypeObject __pyx_type_4lxml_5etree__XSLTQuotedStringParam = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ElementNamespaceClassLookup"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XSLTQuotedStringParam"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_ElementNamespaceClassLookup, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__XSLTQuotedStringParam, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -170154,24 +163801,24 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementNamespaceClassLookup = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_ElementNamespaceClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementNamespaceClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementNamespaceClassLookup, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementNamespaceClassLookup, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ElementNamespaceClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__XSLTQuotedStringParam, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -170179,9 +163826,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementNamespaceClassLookup = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ElementNamespaceClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XSLTQuotedStringParam, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -170194,142 +163841,151 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementNamespaceClassLookup = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__FunctionNamespaceRegistry __pyx_vtable_4lxml_5etree__FunctionNamespaceRegistry;
+static struct __pyx_vtabstruct_4lxml_5etree__BaseContext __pyx_vtable_4lxml_5etree__BaseContext;
 
-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);
+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;
+  o = (*t->tp_alloc)(t, 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;
+  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->_extensions = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_global_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_utf_refs = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_function_cache = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_eval_context_dict = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_temp_refs = ((struct __pyx_obj_4lxml_5etree__TempStore *)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 (unlikely(__pyx_pw_4lxml_5etree_12_BaseContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static int __pyx_mp_ass_subscript_4lxml_5etree__FunctionNamespaceRegistry(PyObject *o, PyObject *i, PyObject *v) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_26_FunctionNamespaceRegistry_1__setitem__(o, i, v);
+static void __pyx_tp_dealloc_4lxml_5etree__BaseContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__BaseContext *p = (struct __pyx_obj_4lxml_5etree__BaseContext *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_doc);
+  Py_CLEAR(p->_extensions);
+  Py_CLEAR(p->_namespaces);
+  Py_CLEAR(p->_global_namespaces);
+  Py_CLEAR(p->_utf_refs);
+  Py_CLEAR(p->_function_cache);
+  Py_CLEAR(p->_eval_context_dict);
+  Py_CLEAR(p->_temp_refs);
+  Py_CLEAR(p->_temp_documents);
+  Py_CLEAR(p->_exc);
+  Py_CLEAR(p->_error_log);
+  (*Py_TYPE(o)->tp_free)(o);
+}
+
+static int __pyx_tp_traverse_4lxml_5etree__BaseContext(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__BaseContext *p = (struct __pyx_obj_4lxml_5etree__BaseContext *)o;
+  if (p->_doc) {
+    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
   }
-  else {
-    if (__pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping && __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript)
-      return __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript(o, i, v);
-    PyErr_Format(PyExc_NotImplementedError,
-      "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name);
-    return -1;
+  if (p->_extensions) {
+    e = (*v)(p->_extensions, a); if (e) return e;
   }
+  if (p->_namespaces) {
+    e = (*v)(p->_namespaces, a); if (e) return e;
+  }
+  if (p->_global_namespaces) {
+    e = (*v)(p->_global_namespaces, a); if (e) return e;
+  }
+  if (p->_utf_refs) {
+    e = (*v)(p->_utf_refs, a); if (e) return e;
+  }
+  if (p->_function_cache) {
+    e = (*v)(p->_function_cache, a); if (e) return e;
+  }
+  if (p->_eval_context_dict) {
+    e = (*v)(p->_eval_context_dict, a); if (e) return e;
+  }
+  if (p->_temp_refs) {
+    e = (*v)(((PyObject*)p->_temp_refs), a); if (e) return e;
+  }
+  if (p->_temp_documents) {
+    e = (*v)(p->_temp_documents, a); if (e) return e;
+  }
+  if (p->_exc) {
+    e = (*v)(((PyObject*)p->_exc), a); if (e) return e;
+  }
+  if (p->_error_log) {
+    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
+  }
+  return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__FunctionNamespaceRegistry[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__FunctionNamespaceRegistry = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static int __pyx_tp_clear_4lxml_5etree__BaseContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__BaseContext *p = (struct __pyx_obj_4lxml_5etree__BaseContext *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_doc);
+  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_extensions);
+  p->_extensions = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_namespaces);
+  p->_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_global_namespaces);
+  p->_global_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_utf_refs);
+  p->_utf_refs = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_function_cache);
+  p->_function_cache = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_eval_context_dict);
+  p->_eval_context_dict = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_temp_refs);
+  p->_temp_refs = ((struct __pyx_obj_4lxml_5etree__TempStore *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_temp_documents);
+  p->_temp_documents = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_exc);
+  p->_exc = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_error_log);
+  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__FunctionNamespaceRegistry = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_12_BaseContext_context_node(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_12_BaseContext_12context_node_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__FunctionNamespaceRegistry = {
-  0, /*mp_length*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  __pyx_mp_ass_subscript_4lxml_5etree__FunctionNamespaceRegistry, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_12_BaseContext_eval_context(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_12_BaseContext_12eval_context_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__BaseContext[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__FunctionNamespaceRegistry = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseContext[] = {
+  {(char *)"context_node", __pyx_getprop_4lxml_5etree_12_BaseContext_context_node, 0, 0, 0},
+  {(char *)"eval_context", __pyx_getprop_4lxml_5etree_12_BaseContext_eval_context, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__FunctionNamespaceRegistry = {
+static PyTypeObject __pyx_type_4lxml_5etree__BaseContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._FunctionNamespaceRegistry"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__FunctionNamespaceRegistry), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._BaseContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__BaseContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__BaseContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -170338,39 +163994,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__FunctionNamespaceRegistry = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_26_FunctionNamespaceRegistry_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__FunctionNamespaceRegistry, /*tp_as_number*/
-  &__pyx_tp_as_sequence__FunctionNamespaceRegistry, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__FunctionNamespaceRegistry, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__FunctionNamespaceRegistry, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__BaseContext, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__BaseContext, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__FunctionNamespaceRegistry, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__BaseContext, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__BaseContext, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_12_BaseContext_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__FunctionNamespaceRegistry, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__BaseContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -170383,184 +164035,67 @@ static PyTypeObject __pyx_type_4lxml_5etree__FunctionNamespaceRegistry = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XPathFunctionNamespaceRegistry __pyx_vtable_4lxml_5etree__XPathFunctionNamespaceRegistry;
+static struct __pyx_vtabstruct_4lxml_5etree__XSLTContext __pyx_vtable_4lxml_5etree__XSLTContext;
 
-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__FunctionNamespaceRegistry(t, a, k);
+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 (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);
-  p->_prefix_utf = Py_None; Py_INCREF(Py_None);
+  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 (unlikely(__pyx_pw_4lxml_5etree_12_XSLTContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__XPathFunctionNamespaceRegistry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__XSLTContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTContext *p = (struct __pyx_obj_4lxml_5etree__XSLTContext *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_prefix);
-  Py_CLEAR(p->_prefix_utf);
+  Py_CLEAR(p->_extension_element_proxy);
+  Py_CLEAR(p->_extension_elements);
   PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry(o);
+  __pyx_tp_dealloc_4lxml_5etree__BaseContext(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__XPathFunctionNamespaceRegistry(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__XSLTContext(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__NamespaceRegistry(o, v, a); if (e) return e;
-  if (p->_prefix) {
-    e = (*v)(p->_prefix, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__XSLTContext *p = (struct __pyx_obj_4lxml_5etree__XSLTContext *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__BaseContext(o, v, a); if (e) return e;
+  if (p->_extension_element_proxy) {
+    e = (*v)(((PyObject*)p->_extension_element_proxy), a); if (e) return e;
   }
-  if (p->_prefix_utf) {
-    e = (*v)(p->_prefix_utf, a); if (e) return e;
+  if (p->_extension_elements) {
+    e = (*v)(p->_extension_elements, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__XPathFunctionNamespaceRegistry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *p = (struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o;
+static int __pyx_tp_clear_4lxml_5etree__XSLTContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTContext *p = (struct __pyx_obj_4lxml_5etree__XSLTContext *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__NamespaceRegistry(o);
-  tmp = ((PyObject*)p->_prefix);
-  p->_prefix = Py_None; Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__BaseContext(o);
+  tmp = ((PyObject*)p->_extension_element_proxy);
+  p->_extension_element_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_prefix_utf);
-  p->_prefix_utf = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_extension_elements);
+  p->_extension_elements = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_3__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    return __pyx_pw_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_5__set__(o, v);
-  }
-  else {
-    return __pyx_pw_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_1__del__(o);
-  }
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__XPathFunctionNamespaceRegistry[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__XSLTContext[] = {
   {0, 0, 0, 0}
 };
 
-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_459), 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__XPathFunctionNamespaceRegistry = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__XPathFunctionNamespaceRegistry = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__XPathFunctionNamespaceRegistry = {
-  0, /*mp_length*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_5__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__XPathFunctionNamespaceRegistry = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry = {
+static PyTypeObject __pyx_type_4lxml_5etree__XSLTContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XPathFunctionNamespaceRegistry"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XSLTContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XSLTContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__XSLTContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -170569,43 +164104,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_26_FunctionNamespaceRegistry_3__repr__, /*tp_repr*/
-  #else
   0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__XPathFunctionNamespaceRegistry, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XPathFunctionNamespaceRegistry, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XPathFunctionNamespaceRegistry, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XPathFunctionNamespaceRegistry, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__XSLTContext, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__XSLTContext, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__XSLTContext, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_12_XSLTContext_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XPathFunctionNamespaceRegistry, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XSLTContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -170619,168 +164146,80 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry = {
   #endif
 };
 
-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;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_14_InputDocument_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+  p = ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o);
+  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_15_DTDElementDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__InputDocument(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__InputDocument *p = (struct __pyx_obj_4lxml_5etree__InputDocument *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__DTDElementDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDElementDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_data_bytes);
-  Py_CLEAR(p->_filename);
-  Py_CLEAR(p->_file);
+  Py_CLEAR(p->_dtd);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__InputDocument(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__DTDElementDecl(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__InputDocument *p = (struct __pyx_obj_4lxml_5etree__InputDocument *)o;
-  if (p->_data_bytes) {
-    e = (*v)(p->_data_bytes, a); if (e) return e;
-  }
-  if (p->_filename) {
-    e = (*v)(p->_filename, a); if (e) return e;
-  }
-  if (p->_file) {
-    e = (*v)(p->_file, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__DTDElementDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o;
+  if (p->_dtd) {
+    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__InputDocument(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__InputDocument *p = (struct __pyx_obj_4lxml_5etree__InputDocument *)o;
+static int __pyx_tp_clear_4lxml_5etree__DTDElementDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDElementDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_data_bytes);
-  p->_data_bytes = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_filename);
-  p->_filename = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_file);
-  p->_file = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_dtd);
+  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__InputDocument[] = {
-  {0, 0, 0, 0}
-};
+static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_4name_1__get__(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number__InputDocument = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_prefix(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_6prefix_1__get__(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__InputDocument = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_type(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_4type_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__InputDocument = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_content(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_7content_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__DTDElementDecl[] = {
+  {__Pyx_NAMESTR("iterattributes"), (PyCFunction)__pyx_pw_4lxml_5etree_15_DTDElementDecl_5iterattributes, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("attributes"), (PyCFunction)__pyx_pw_4lxml_5etree_15_DTDElementDecl_8attributes, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__InputDocument = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDElementDecl[] = {
+  {(char *)"name", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_name, 0, 0, 0},
+  {(char *)"prefix", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_prefix, 0, 0, 0},
+  {(char *)"type", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_type, 0, 0, 0},
+  {(char *)"content", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_content, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__InputDocument = {
+static PyTypeObject __pyx_type_4lxml_5etree__DTDElementDecl = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._InputDocument"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__InputDocument), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._DTDElementDecl"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__DTDElementDecl), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__InputDocument, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__DTDElementDecl, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -170789,27 +164228,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__InputDocument = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__InputDocument, /*tp_as_number*/
-  &__pyx_tp_as_sequence__InputDocument, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__InputDocument, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_15_DTDElementDecl_3__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__InputDocument, /*tp_as_buffer*/
-  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+  0, /*tp_as_buffer*/
+  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__InputDocument, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__InputDocument, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__DTDElementDecl, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__DTDElementDecl, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__InputDocument, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__DTDElementDecl, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__DTDElementDecl, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -170817,7 +164256,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__InputDocument = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__InputDocument, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__DTDElementDecl, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -170830,131 +164269,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__InputDocument = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension __pyx_vtable_4lxml_5etree_XSLTExtension;
 
-static PyObject *__pyx_tp_new_4lxml_5etree_Resolver(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+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;
   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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_Resolver(PyObject *o) {
+static void __pyx_tp_dealloc_4lxml_5etree_XSLTExtension(PyObject *o) {
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_Resolver[] = {
-  {__Pyx_NAMESTR("resolve"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_1resolve, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_resolve)},
-  {__Pyx_NAMESTR("resolve_empty"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_3resolve_empty, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_2resolve_empty)},
-  {__Pyx_NAMESTR("resolve_string"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_5resolve_string, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_4resolve_string)},
-  {__Pyx_NAMESTR("resolve_filename"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_7resolve_filename, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_6resolve_filename)},
-  {__Pyx_NAMESTR("resolve_file"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_9resolve_file, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_8resolve_file)},
+static PyMethodDef __pyx_methods_4lxml_5etree_XSLTExtension[] = {
+  {__Pyx_NAMESTR("execute"), (PyCFunction)__pyx_pw_4lxml_5etree_13XSLTExtension_1execute, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13XSLTExtension_execute)},
+  {__Pyx_NAMESTR("apply_templates"), (PyCFunction)__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13XSLTExtension_2apply_templates)},
+  {__Pyx_NAMESTR("process_children"), (PyCFunction)__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13XSLTExtension_4process_children)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_Resolver = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_Resolver = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_Resolver = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_Resolver = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_Resolver = {
+static PyTypeObject __pyx_type_4lxml_5etree_XSLTExtension = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.Resolver"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_Resolver), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.XSLTExtension"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XSLTExtension), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_Resolver, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_XSLTExtension, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -170964,24 +164307,24 @@ static PyTypeObject __pyx_type_4lxml_5etree_Resolver = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_Resolver, /*tp_as_number*/
-  &__pyx_tp_as_sequence_Resolver, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_Resolver, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_Resolver, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __Pyx_DOCSTR("Base class of an XSLT extension element.\n    "), /*tp_doc*/
   0, /*tp_traverse*/
   0, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_Resolver, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_XSLTExtension, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -170991,7 +164334,7 @@ static PyTypeObject __pyx_type_4lxml_5etree_Resolver = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_Resolver, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_XSLTExtension, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -171004,167 +164347,54 @@ static PyTypeObject __pyx_type_4lxml_5etree_Resolver = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ResolverRegistry __pyx_vtable_4lxml_5etree__ResolverRegistry;
+static struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext __pyx_vtable_4lxml_5etree__ExceptionContext;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__ResolverRegistry(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_17_ResolverRegistry_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 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);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ResolverRegistry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ExceptionContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ExceptionContext *p = (struct __pyx_obj_4lxml_5etree__ExceptionContext *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_resolvers);
-  Py_CLEAR(p->_default_resolver);
+  Py_CLEAR(p->_exc_info);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ResolverRegistry(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ExceptionContext(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *)o;
-  if (p->_resolvers) {
-    e = (*v)(p->_resolvers, a); if (e) return e;
-  }
-  if (p->_default_resolver) {
-    e = (*v)(((PyObject*)p->_default_resolver), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ExceptionContext *p = (struct __pyx_obj_4lxml_5etree__ExceptionContext *)o;
+  if (p->_exc_info) {
+    e = (*v)(p->_exc_info, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__ResolverRegistry(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ResolverRegistry *p = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *)o;
+static int __pyx_tp_clear_4lxml_5etree__ExceptionContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ExceptionContext *p = (struct __pyx_obj_4lxml_5etree__ExceptionContext *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_resolvers);
-  p->_resolvers = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_default_resolver);
-  p->_default_resolver = ((struct __pyx_obj_4lxml_5etree_Resolver *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_exc_info);
+  p->_exc_info = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ResolverRegistry[] = {
-  {__Pyx_NAMESTR("add"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_3add, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_2add)},
-  {__Pyx_NAMESTR("remove"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_5remove, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_4remove)},
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_7copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_6copy)},
-  {__Pyx_NAMESTR("resolve"), (PyCFunction)__pyx_pw_4lxml_5etree_17_ResolverRegistry_9resolve, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_17_ResolverRegistry_8resolve)},
+static PyMethodDef __pyx_methods_4lxml_5etree__ExceptionContext[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__ResolverRegistry = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ResolverRegistry = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ResolverRegistry = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ResolverRegistry = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ResolverRegistry = {
+static PyTypeObject __pyx_type_4lxml_5etree__ExceptionContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ResolverRegistry"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ResolverRegistry), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ExceptionContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ExceptionContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ResolverRegistry, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ExceptionContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -171173,25 +164403,25 @@ static PyTypeObject __pyx_type_4lxml_5etree__ResolverRegistry = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_17_ResolverRegistry_11__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__ResolverRegistry, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ResolverRegistry, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ResolverRegistry, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ResolverRegistry, /*tp_as_buffer*/
-  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+  0, /*tp_as_buffer*/
+  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__ResolverRegistry, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__ResolverRegistry, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__ExceptionContext, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ExceptionContext, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ResolverRegistry, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ExceptionContext, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -171201,7 +164431,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__ResolverRegistry = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ResolverRegistry, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ExceptionContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -171266,104 +164496,6 @@ static PyMethodDef __pyx_methods_4lxml_5etree__ResolverContext[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__ResolverContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ResolverContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ResolverContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ResolverContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_5etree__ResolverContext = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree._ResolverContext"), /*tp_name*/
@@ -171379,15 +164511,15 @@ static PyTypeObject __pyx_type_4lxml_5etree__ResolverContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ResolverContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ResolverContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ResolverContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ResolverContext, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -171483,104 +164615,6 @@ static PyMethodDef __pyx_methods_4lxml_5etree__ParserContext[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__ParserContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ParserContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ParserContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ParserContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_5etree__ParserContext = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree._ParserContext"), /*tp_name*/
@@ -171596,15 +164630,15 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ParserContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ParserContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ParserContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ParserContext, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -171671,111 +164705,13 @@ static int __pyx_tp_clear_4lxml_5etree__SaxParserContext(PyObject *o) {
   PyObject* tmp;
   __pyx_tp_clear_4lxml_5etree__ParserContext(o);
   tmp = ((PyObject*)p->_target);
-  p->_target = ((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__SaxParserContext[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__SaxParserContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__SaxParserContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__SaxParserContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+  p->_target = ((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__SaxParserContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__SaxParserContext[] = {
+  {0, 0, 0, 0}
 };
 
 static PyTypeObject __pyx_type_4lxml_5etree__SaxParserContext = {
@@ -171793,15 +164729,15 @@ static PyTypeObject __pyx_type_4lxml_5etree__SaxParserContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__SaxParserContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__SaxParserContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__SaxParserContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__SaxParserContext, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -171877,104 +164813,6 @@ static PyMethodDef __pyx_methods_4lxml_5etree__TargetParserContext[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__TargetParserContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__TargetParserContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__TargetParserContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__TargetParserContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_5etree__TargetParserContext = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree._TargetParserContext"), /*tp_name*/
@@ -171990,15 +164828,15 @@ static PyTypeObject __pyx_type_4lxml_5etree__TargetParserContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__TargetParserContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__TargetParserContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__TargetParserContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__TargetParserContext, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -172030,164 +164868,33 @@ static PyTypeObject __pyx_type_4lxml_5etree__TargetParserContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ParserSchemaValidationContext __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext;
 
-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;
+static PyObject *__pyx_tp_new_4lxml_5etree_Resolver(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
   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 (unlikely(__pyx_pw_4lxml_5etree_30_ParserSchemaValidationContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ParserSchemaValidationContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *p = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)o;
-  PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_30_ParserSchemaValidationContext_3__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  Py_CLEAR(p->_schema);
+static void __pyx_tp_dealloc_4lxml_5etree_Resolver(PyObject *o) {
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ParserSchemaValidationContext(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *p = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)o;
-  if (p->_schema) {
-    e = (*v)(((PyObject*)p->_schema), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__ParserSchemaValidationContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *p = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_schema);
-  p->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ParserSchemaValidationContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_Resolver[] = {
+  {__Pyx_NAMESTR("resolve"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_1resolve, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_resolve)},
+  {__Pyx_NAMESTR("resolve_empty"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_3resolve_empty, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_2resolve_empty)},
+  {__Pyx_NAMESTR("resolve_string"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_5resolve_string, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_4resolve_string)},
+  {__Pyx_NAMESTR("resolve_filename"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_7resolve_filename, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_6resolve_filename)},
+  {__Pyx_NAMESTR("resolve_file"), (PyCFunction)__pyx_pw_4lxml_5etree_8Resolver_9resolve_file, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_8Resolver_8resolve_file)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__ParserSchemaValidationContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ParserSchemaValidationContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ParserSchemaValidationContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ParserSchemaValidationContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ParserSchemaValidationContext = {
+static PyTypeObject __pyx_type_4lxml_5etree_Resolver = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ParserSchemaValidationContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.Resolver"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_Resolver), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ParserSchemaValidationContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_Resolver, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -172197,24 +164904,24 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserSchemaValidationContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ParserSchemaValidationContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ParserSchemaValidationContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ParserSchemaValidationContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ParserSchemaValidationContext, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ParserSchemaValidationContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_Resolver, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -172224,7 +164931,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserSchemaValidationContext = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ParserSchemaValidationContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_Resolver, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -172237,169 +164944,56 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserSchemaValidationContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__Validator __pyx_vtable_4lxml_5etree__Validator;
+static struct __pyx_vtabstruct_4lxml_5etree__XPathContext __pyx_vtable_4lxml_5etree__XPathContext;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_10_Validator_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__Validator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__Validator *p = (struct __pyx_obj_4lxml_5etree__Validator *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__XPathContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XPathContext *p = (struct __pyx_obj_4lxml_5etree__XPathContext *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_error_log);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->_variables);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__BaseContext(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__Validator(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__XPathContext(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__Validator *p = (struct __pyx_obj_4lxml_5etree__Validator *)o;
-  if (p->_error_log) {
-    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__XPathContext *p = (struct __pyx_obj_4lxml_5etree__XPathContext *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__BaseContext(o, v, a); if (e) return e;
+  if (p->_variables) {
+    e = (*v)(p->_variables, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__Validator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__Validator *p = (struct __pyx_obj_4lxml_5etree__Validator *)o;
+static int __pyx_tp_clear_4lxml_5etree__XPathContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XPathContext *p = (struct __pyx_obj_4lxml_5etree__XPathContext *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_error_log);
-  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__BaseContext(o);
+  tmp = ((PyObject*)p->_variables);
+  p->_variables = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_10_Validator_error_log(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_10_Validator_9error_log_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__Validator[] = {
-  {__Pyx_NAMESTR("validate"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_3validate, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10_Validator_2validate)},
-  {__Pyx_NAMESTR("assertValid"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_5assertValid, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10_Validator_4assertValid)},
-  {__Pyx_NAMESTR("assert_"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_7assert_, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10_Validator_6assert_)},
-  {__Pyx_NAMESTR("_append_log_message"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("_clear_error_log"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_11_clear_error_log, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree__XPathContext[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Validator[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_10_Validator_error_log, 0, __Pyx_DOCSTR(__pyx_k_460), 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__Validator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__Validator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__Validator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__Validator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__Validator = {
+static PyTypeObject __pyx_type_4lxml_5etree__XPathContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._Validator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__Validator), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XPathContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XPathContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Validator, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__XPathContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -172409,34 +165003,34 @@ static PyTypeObject __pyx_type_4lxml_5etree__Validator = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__Validator, /*tp_as_number*/
-  &__pyx_tp_as_sequence__Validator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__Validator, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__Validator, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__Validator, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__XPathContext, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__Validator, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_13_XPathContext_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__Validator, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XPathContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -172449,143 +165043,130 @@ static PyTypeObject __pyx_type_4lxml_5etree__Validator = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XMLSchema __pyx_vtable_4lxml_5etree_XMLSchema;
+static struct __pyx_vtabstruct_4lxml_5etree__Entity __pyx_vtable_4lxml_5etree__Entity;
 
-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);
+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___ContentOnlyElement(t, a, k);
   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 (unlikely(__pyx_pw_4lxml_5etree_9XMLSchema_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_XMLSchema(PyObject *o) {
-  PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_9XMLSchema_5__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
+static PyObject *__pyx_getprop_4lxml_5etree_7_Entity_tag(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7_Entity_3tag_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7_Entity_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7_Entity_4name_1__get__(o);
+}
+
+static int __pyx_setprop_4lxml_5etree_7_Entity_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_7_Entity_4name_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
   }
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__Validator(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XMLSchema[] = {
+static PyObject *__pyx_getprop_4lxml_5etree_7_Entity_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7_Entity_4text_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__Entity[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_XMLSchema = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Entity[] = {
+  {(char *)"tag", __pyx_getprop_4lxml_5etree_7_Entity_tag, 0, 0, 0},
+  {(char *)"name", __pyx_getprop_4lxml_5etree_7_Entity_name, __pyx_setprop_4lxml_5etree_7_Entity_name, 0, 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_7_Entity_text, 0, 0, 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree__Entity = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._Entity"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__Entity), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
+  __pyx_pw_4lxml_5etree_7_Entity_1__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
   #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__Entity, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree__Entity, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__Entity, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_EntityBase __pyx_vtable_4lxml_5etree_EntityBase;
 
-static PySequenceMethods __pyx_tp_as_sequence_XMLSchema = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_XMLSchema = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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__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;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_XMLSchema = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree_EntityBase[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_XMLSchema = {
+static PyTypeObject __pyx_type_4lxml_5etree_EntityBase = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XMLSchema"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XMLSchema), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.EntityBase"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_EntityBase), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XMLSchema, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -172594,25 +165175,33 @@ static PyTypeObject __pyx_type_4lxml_5etree_XMLSchema = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_7_Entity_1__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number_XMLSchema, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XMLSchema, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XMLSchema, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_9XMLSchema_7__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XMLSchema, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XMLSchema, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_EntityBase, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -172620,9 +165209,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XMLSchema = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_9XMLSchema_3__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_10EntityBase_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XMLSchema, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_EntityBase, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -172635,172 +165224,61 @@ static PyTypeObject __pyx_type_4lxml_5etree_XMLSchema = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ParserDictionaryContext __pyx_vtable_4lxml_5etree__ParserDictionaryContext;
 
-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;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_24_ParserDictionaryContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ParserDictionaryContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *p = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_XInclude(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XInclude *p = (struct __pyx_obj_4lxml_5etree_XInclude *)o;
   PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_24_ParserDictionaryContext_3__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  Py_CLEAR(p->_default_parser);
-  Py_CLEAR(p->_implied_parser_contexts);
+  Py_CLEAR(p->_error_log);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ParserDictionaryContext(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_XInclude(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *p = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)o;
-  if (p->_default_parser) {
-    e = (*v)(((PyObject*)p->_default_parser), a); if (e) return e;
-  }
-  if (p->_implied_parser_contexts) {
-    e = (*v)(p->_implied_parser_contexts, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_XInclude *p = (struct __pyx_obj_4lxml_5etree_XInclude *)o;
+  if (p->_error_log) {
+    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__ParserDictionaryContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *p = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)o;
+static int __pyx_tp_clear_4lxml_5etree_XInclude(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_XInclude *p = (struct __pyx_obj_4lxml_5etree_XInclude *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_default_parser);
-  p->_default_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_implied_parser_contexts);
-  p->_implied_parser_contexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_error_log);
+  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ParserDictionaryContext[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ParserDictionaryContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ParserDictionaryContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_8XInclude_error_log(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_8XInclude_9error_log_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__ParserDictionaryContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree_XInclude[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__ParserDictionaryContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XInclude[] = {
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_8XInclude_error_log, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__ParserDictionaryContext = {
+static PyTypeObject __pyx_type_4lxml_5etree_XInclude = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ParserDictionaryContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.XInclude"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XInclude), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ParserDictionaryContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_XInclude, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -172810,34 +165288,34 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserDictionaryContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ParserDictionaryContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ParserDictionaryContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ParserDictionaryContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  0, /*tp_call*/
+  __pyx_pw_4lxml_5etree_8XInclude_3__call__, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ParserDictionaryContext, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ParserDictionaryContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_XInclude, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree_XInclude, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_8XInclude_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ParserDictionaryContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_XInclude, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -172850,187 +165328,71 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserDictionaryContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__FileReaderContext __pyx_vtable_4lxml_5etree__FileReaderContext;
+static struct __pyx_vtabstruct_4lxml_5etree__Document __pyx_vtable_4lxml_5etree__Document;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__FileReaderContext(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__FileReaderContext *p;
+static PyObject *__pyx_tp_new_4lxml_5etree__Document(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+  struct LxmlDocument *p;
   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->_encoding = 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 (unlikely(__pyx_pw_4lxml_5etree_18_FileReaderContext_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
+  p = ((struct LxmlDocument *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__Document;
+  p->_prefix_tail = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__FileReaderContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__FileReaderContext *p = (struct __pyx_obj_4lxml_5etree__FileReaderContext *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__Document(PyObject *o) {
+  struct LxmlDocument *p = (struct LxmlDocument *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_filelike);
-  Py_CLEAR(p->_encoding);
-  Py_CLEAR(p->_url);
-  Py_CLEAR(p->_bytes);
-  Py_CLEAR(p->_exc_context);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_9_Document_1__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  Py_CLEAR(p->_prefix_tail);
+  Py_CLEAR(p->_parser);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__FileReaderContext(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__Document(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__FileReaderContext *p = (struct __pyx_obj_4lxml_5etree__FileReaderContext *)o;
-  if (p->_filelike) {
-    e = (*v)(p->_filelike, a); if (e) return e;
-  }
-  if (p->_encoding) {
-    e = (*v)(p->_encoding, a); if (e) return e;
-  }
-  if (p->_url) {
-    e = (*v)(p->_url, a); if (e) return e;
-  }
-  if (p->_bytes) {
-    e = (*v)(p->_bytes, a); if (e) return e;
+  struct LxmlDocument *p = (struct LxmlDocument *)o;
+  if (p->_prefix_tail) {
+    e = (*v)(p->_prefix_tail, a); if (e) return e;
   }
-  if (p->_exc_context) {
-    e = (*v)(((PyObject*)p->_exc_context), a); if (e) return e;
+  if (p->_parser) {
+    e = (*v)(((PyObject*)p->_parser), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__FileReaderContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__FileReaderContext *p = (struct __pyx_obj_4lxml_5etree__FileReaderContext *)o;
+static int __pyx_tp_clear_4lxml_5etree__Document(PyObject *o) {
+  struct LxmlDocument *p = (struct LxmlDocument *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_filelike);
-  p->_filelike = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_encoding);
-  p->_encoding = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_url);
-  p->_url = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_bytes);
-  p->_bytes = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_prefix_tail);
+  p->_prefix_tail = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_exc_context);
-  p->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_parser);
+  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__FileReaderContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__Document[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__FileReaderContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__FileReaderContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__FileReaderContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__FileReaderContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__FileReaderContext = {
+DL_EXPORT(PyTypeObject) LxmlDocumentType = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._FileReaderContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__FileReaderContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._Document"), /*tp_name*/
+  sizeof(struct LxmlDocument), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__FileReaderContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Document, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -173040,24 +165402,24 @@ static PyTypeObject __pyx_type_4lxml_5etree__FileReaderContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__FileReaderContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__FileReaderContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__FileReaderContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__FileReaderContext, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__FileReaderContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__Document, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -173067,7 +165429,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__FileReaderContext = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__FileReaderContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__Document, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -173080,136 +165442,71 @@ static PyTypeObject __pyx_type_4lxml_5etree__FileReaderContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__FeedParser __pyx_vtable_4lxml_5etree__FeedParser;
 
-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);
+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;
+  o = (*t->tp_alloc)(t, 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;
+  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 (unlikely(__pyx_pw_4lxml_5etree_14_InputDocument_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_11_FeedParser_feed_error_log(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_11_FeedParser_14feed_error_log_1__get__(o);
+static void __pyx_tp_dealloc_4lxml_5etree__InputDocument(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__InputDocument *p = (struct __pyx_obj_4lxml_5etree__InputDocument *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_data_bytes);
+  Py_CLEAR(p->_filename);
+  Py_CLEAR(p->_file);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__FeedParser[] = {
-  {__Pyx_NAMESTR("feed"), (PyCFunction)__pyx_pw_4lxml_5etree_11_FeedParser_1feed, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_FeedParser_feed)},
-  {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pw_4lxml_5etree_11_FeedParser_3close, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11_FeedParser_2close)},
-  {0, 0, 0, 0}
-};
-
-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_461), 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__FeedParser = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__FeedParser = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_tp_traverse_4lxml_5etree__InputDocument(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__InputDocument *p = (struct __pyx_obj_4lxml_5etree__InputDocument *)o;
+  if (p->_data_bytes) {
+    e = (*v)(p->_data_bytes, a); if (e) return e;
+  }
+  if (p->_filename) {
+    e = (*v)(p->_filename, a); if (e) return e;
+  }
+  if (p->_file) {
+    e = (*v)(p->_file, a); if (e) return e;
+  }
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__FeedParser = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+static int __pyx_tp_clear_4lxml_5etree__InputDocument(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__InputDocument *p = (struct __pyx_obj_4lxml_5etree__InputDocument *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_data_bytes);
+  p->_data_bytes = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_filename);
+  p->_filename = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_file);
+  p->_file = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__FeedParser = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__InputDocument[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__FeedParser = {
+static PyTypeObject __pyx_type_4lxml_5etree__InputDocument = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._FeedParser"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__FeedParser), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._InputDocument"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__InputDocument), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__InputDocument, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -173219,38 +165516,34 @@ static PyTypeObject __pyx_type_4lxml_5etree__FeedParser = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__FeedParser, /*tp_as_number*/
-  &__pyx_tp_as_sequence__FeedParser, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__FeedParser, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__FeedParser, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__BaseParser, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__BaseParser, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__InputDocument, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__InputDocument, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__FeedParser, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__InputDocument, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__FeedParser, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_11_BaseParser_1__init__, /*tp_init*/
-  #else
   0, /*tp_init*/
-  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__FeedParser, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__InputDocument, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -173263,125 +165556,95 @@ static PyTypeObject __pyx_type_4lxml_5etree__FeedParser = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XMLParser __pyx_vtable_4lxml_5etree_XMLParser;
+static struct __pyx_vtabstruct_4lxml_5etree__ElementTree __pyx_vtable_4lxml_5etree__ElementTree;
 
-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__FeedParser(t, a, k);
+static PyObject *__pyx_tp_new_4lxml_5etree__ElementTree(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+  struct LxmlElementTree *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 0);
   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;
+  p = ((struct LxmlElementTree *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__ElementTree;
+  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  p->_context_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XMLParser[] = {
-  {0, 0, 0, 0}
-};
+static void __pyx_tp_dealloc_4lxml_5etree__ElementTree(PyObject *o) {
+  struct LxmlElementTree *p = (struct LxmlElementTree *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_doc);
+  Py_CLEAR(p->_context_node);
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number_XMLParser = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static int __pyx_tp_traverse_4lxml_5etree__ElementTree(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct LxmlElementTree *p = (struct LxmlElementTree *)o;
+  if (p->_doc) {
+    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
+  }
+  if (p->_context_node) {
+    e = (*v)(((PyObject*)p->_context_node), a); if (e) return e;
+  }
+  return 0;
+}
 
-static PySequenceMethods __pyx_tp_as_sequence_XMLParser = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_tp_clear_4lxml_5etree__ElementTree(PyObject *o) {
+  struct LxmlElementTree *p = (struct LxmlElementTree *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_doc);
+  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_context_node);
+  p->_context_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_XMLParser = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_12_ElementTree_docinfo(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_12_ElementTree_7docinfo_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_12_ElementTree_parser(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_12_ElementTree_6parser_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ElementTree[] = {
+  {__Pyx_NAMESTR("parse"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_1parse, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_parse)},
+  {__Pyx_NAMESTR("_setroot"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_3_setroot, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_2_setroot)},
+  {__Pyx_NAMESTR("getroot"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_5getroot, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_4getroot)},
+  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_7__copy__, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_9__deepcopy__, METH_O, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_11write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_10write)},
+  {__Pyx_NAMESTR("getpath"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_13getpath, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_12getpath)},
+  {__Pyx_NAMESTR("getiterator"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_15getiterator, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_14getiterator)},
+  {__Pyx_NAMESTR("iter"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_17iter, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_16iter)},
+  {__Pyx_NAMESTR("find"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_19find, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_18find)},
+  {__Pyx_NAMESTR("findtext"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_21findtext, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_20findtext)},
+  {__Pyx_NAMESTR("findall"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_23findall, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_22findall)},
+  {__Pyx_NAMESTR("iterfind"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_25iterfind, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_24iterfind)},
+  {__Pyx_NAMESTR("xpath"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_27xpath, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_26xpath)},
+  {__Pyx_NAMESTR("xslt"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_29xslt, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_28xslt)},
+  {__Pyx_NAMESTR("relaxng"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_31relaxng, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_30relaxng)},
+  {__Pyx_NAMESTR("xmlschema"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_33xmlschema, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_32xmlschema)},
+  {__Pyx_NAMESTR("xinclude"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_35xinclude, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_34xinclude)},
+  {__Pyx_NAMESTR("write_c14n"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ElementTree_37write_c14n, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_12_ElementTree_36write_c14n)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_XMLParser = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ElementTree[] = {
+  {(char *)"docinfo", __pyx_getprop_4lxml_5etree_12_ElementTree_docinfo, 0, __Pyx_DOCSTR(__pyx_k_452), 0},
+  {(char *)"parser", __pyx_getprop_4lxml_5etree_12_ElementTree_parser, 0, __Pyx_DOCSTR(__pyx_k_453), 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_XMLParser = {
+DL_EXPORT(PyTypeObject) LxmlElementTreeType = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XMLParser"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XMLParser), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ElementTree"), /*tp_name*/
+  sizeof(struct LxmlElementTree), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementTree, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -173391,34 +165654,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_XMLParser = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_XMLParser, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XMLParser, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XMLParser, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XMLParser, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  0, /*tp_doc*/
+  __pyx_tp_traverse_4lxml_5etree__ElementTree, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ElementTree, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XMLParser, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ElementTree, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__ElementTree, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_9XMLParser_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XMLParser, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ElementTree, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -173431,125 +165694,46 @@ static PyTypeObject __pyx_type_4lxml_5etree_XMLParser = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_ETCompatXMLParser __pyx_vtable_4lxml_5etree_ETCompatXMLParser;
+static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy;
 
-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_XMLParser(t, a, k);
+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 (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;
+  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;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_ETCompatXMLParser[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ETCompatXMLParser = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_23_ModifyContentOnlyProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_23_ModifyContentOnlyProxy_4text_1__get__(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence_ETCompatXMLParser = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_setprop_4lxml_5etree_23_ModifyContentOnlyProxy_text(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_23_ModifyContentOnlyProxy_4text_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
+  }
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_ETCompatXMLParser = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree__ModifyContentOnlyProxy[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_ETCompatXMLParser = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ModifyContentOnlyProxy[] = {
+  {(char *)"text", __pyx_getprop_4lxml_5etree_23_ModifyContentOnlyProxy_text, __pyx_setprop_4lxml_5etree_23_ModifyContentOnlyProxy_text, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_ETCompatXMLParser = {
+static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyProxy = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ETCompatXMLParser"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ETCompatXMLParser), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ModifyContentOnlyProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ModifyContentOnlyProxy), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -173558,35 +165742,43 @@ static PyTypeObject __pyx_type_4lxml_5etree_ETCompatXMLParser = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number_ETCompatXMLParser, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ETCompatXMLParser, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ETCompatXMLParser, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ETCompatXMLParser, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ETCompatXMLParser, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ModifyContentOnlyProxy, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__ModifyContentOnlyProxy, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ETCompatXMLParser, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ModifyContentOnlyProxy, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -173599,125 +165791,30 @@ static PyTypeObject __pyx_type_4lxml_5etree_ETCompatXMLParser = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_HTMLParser __pyx_vtable_4lxml_5etree_HTMLParser;
+static struct __pyx_vtabstruct_4lxml_5etree_ParserBasedElementClassLookup __pyx_vtable_4lxml_5etree_ParserBasedElementClassLookup;
 
-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__FeedParser(t, a, k);
+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 (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;
+  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 (unlikely(__pyx_pw_4lxml_5etree_29ParserBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_HTMLParser[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_ParserBasedElementClassLookup[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_HTMLParser = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_HTMLParser = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_HTMLParser = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_HTMLParser = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_HTMLParser = {
+static PyTypeObject __pyx_type_4lxml_5etree_ParserBasedElementClassLookup = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.HTMLParser"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_HTMLParser), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.ParserBasedElementClassLookup"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ParserBasedElementClassLookup), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -173727,24 +165824,24 @@ static PyTypeObject __pyx_type_4lxml_5etree_HTMLParser = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_HTMLParser, /*tp_as_number*/
-  &__pyx_tp_as_sequence_HTMLParser, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_HTMLParser, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_HTMLParser, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_HTMLParser, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_ParserBasedElementClassLookup, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -173752,9 +165849,13 @@ static PyTypeObject __pyx_type_4lxml_5etree_HTMLParser = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_10HTMLParser_1__init__, /*tp_init*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__, /*tp_init*/
+  #else
+  0, /*tp_init*/
+  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_HTMLParser, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_ParserBasedElementClassLookup, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -173767,133 +165868,71 @@ static PyTypeObject __pyx_type_4lxml_5etree_HTMLParser = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget __pyx_vtable_4lxml_5etree__SaxParserTarget;
+static struct __pyx_vtabstruct_4lxml_5etree__Validator __pyx_vtable_4lxml_5etree__Validator;
 
-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;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_16_SaxParserTarget_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_10_Validator_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__SaxParserTarget(PyObject *o) {
+static void __pyx_tp_dealloc_4lxml_5etree__Validator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__Validator *p = (struct __pyx_obj_4lxml_5etree__Validator *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_error_log);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__SaxParserTarget[] = {
-  {0, 0, 0, 0}
-};
+static int __pyx_tp_traverse_4lxml_5etree__Validator(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__Validator *p = (struct __pyx_obj_4lxml_5etree__Validator *)o;
+  if (p->_error_log) {
+    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
+  }
+  return 0;
+}
 
-static PyNumberMethods __pyx_tp_as_number__SaxParserTarget = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static int __pyx_tp_clear_4lxml_5etree__Validator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__Validator *p = (struct __pyx_obj_4lxml_5etree__Validator *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_error_log);
+  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__SaxParserTarget = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_10_Validator_error_log(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_10_Validator_9error_log_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__SaxParserTarget = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree__Validator[] = {
+  {__Pyx_NAMESTR("validate"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_3validate, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10_Validator_2validate)},
+  {__Pyx_NAMESTR("assertValid"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_5assertValid, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10_Validator_4assertValid)},
+  {__Pyx_NAMESTR("assert_"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_7assert_, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10_Validator_6assert_)},
+  {__Pyx_NAMESTR("_append_log_message"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("_clear_error_log"), (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_11_clear_error_log, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__SaxParserTarget = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Validator[] = {
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_10_Validator_error_log, 0, __Pyx_DOCSTR(__pyx_k_454), 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__SaxParserTarget = {
+static PyTypeObject __pyx_type_4lxml_5etree__Validator = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._SaxParserTarget"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__SaxParserTarget), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._Validator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__Validator), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__SaxParserTarget, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Validator, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -173903,26 +165942,26 @@ static PyTypeObject __pyx_type_4lxml_5etree__SaxParserTarget = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__SaxParserTarget, /*tp_as_number*/
-  &__pyx_tp_as_sequence__SaxParserTarget, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__SaxParserTarget, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__SaxParserTarget, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__SaxParserTarget, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__Validator, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__Validator, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -173930,7 +165969,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__SaxParserTarget = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__SaxParserTarget, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__Validator, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -173943,200 +165982,204 @@ static PyTypeObject __pyx_type_4lxml_5etree__SaxParserTarget = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder __pyx_vtable_4lxml_5etree_TreeBuilder;
+static struct __pyx_vtabstruct_4lxml_5etree_RelaxNG __pyx_vtable_4lxml_5etree_RelaxNG;
 
-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);
+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 (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);
-  p->_factory = Py_None; Py_INCREF(Py_None);
-  p->_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_element_stack_pop = Py_None; Py_INCREF(Py_None);
-  p->_last = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  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 (unlikely(__pyx_pw_4lxml_5etree_7RelaxNG_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_TreeBuilder(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_TreeBuilder *p = (struct __pyx_obj_4lxml_5etree_TreeBuilder *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_RelaxNG(PyObject *o) {
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_parser);
-  Py_CLEAR(p->_factory);
-  Py_CLEAR(p->_data);
-  Py_CLEAR(p->_element_stack);
-  Py_CLEAR(p->_element_stack_pop);
-  Py_CLEAR(p->_last);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__SaxParserTarget(o);
-}
-
-static int __pyx_tp_traverse_4lxml_5etree_TreeBuilder(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree_TreeBuilder *p = (struct __pyx_obj_4lxml_5etree_TreeBuilder *)o;
-  e = ((likely(__pyx_ptype_4lxml_5etree__SaxParserTarget)) ? ((__pyx_ptype_4lxml_5etree__SaxParserTarget->tp_traverse) ? __pyx_ptype_4lxml_5etree__SaxParserTarget->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4lxml_5etree_TreeBuilder)); if (e) return e;
-  if (p->_parser) {
-    e = (*v)(((PyObject*)p->_parser), a); if (e) return e;
-  }
-  if (p->_factory) {
-    e = (*v)(p->_factory, a); if (e) return e;
-  }
-  if (p->_data) {
-    e = (*v)(p->_data, a); if (e) return e;
-  }
-  if (p->_element_stack) {
-    e = (*v)(p->_element_stack, a); if (e) return e;
-  }
-  if (p->_element_stack_pop) {
-    e = (*v)(p->_element_stack_pop, a); if (e) return e;
-  }
-  if (p->_last) {
-    e = (*v)(((PyObject*)p->_last), a); if (e) return e;
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_7RelaxNG_5__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
   }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree_TreeBuilder(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_TreeBuilder *p = (struct __pyx_obj_4lxml_5etree_TreeBuilder *)o;
-  PyObject* tmp;
-  if (likely(__pyx_ptype_4lxml_5etree__SaxParserTarget)) { if (__pyx_ptype_4lxml_5etree__SaxParserTarget->tp_clear) __pyx_ptype_4lxml_5etree__SaxParserTarget->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4lxml_5etree_TreeBuilder);
-  tmp = ((PyObject*)p->_parser);
-  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_factory);
-  p->_factory = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_data);
-  p->_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_element_stack);
-  p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_element_stack_pop);
-  p->_element_stack_pop = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_last);
-  p->_last = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__Validator(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_TreeBuilder[] = {
-  {__Pyx_NAMESTR("close"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_3close, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_2close)},
-  {__Pyx_NAMESTR("data"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_5data, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_4data)},
-  {__Pyx_NAMESTR("start"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_7start, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_6start)},
-  {__Pyx_NAMESTR("end"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_9end, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_8end)},
-  {__Pyx_NAMESTR("pi"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_11pi, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_10pi)},
-  {__Pyx_NAMESTR("comment"), (PyCFunction)__pyx_pw_4lxml_5etree_11TreeBuilder_13comment, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_11TreeBuilder_12comment)},
+static PyMethodDef __pyx_methods_4lxml_5etree_RelaxNG[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_TreeBuilder = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_RelaxNG = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.RelaxNG"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_RelaxNG), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_RelaxNG, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  __pyx_pw_4lxml_5etree_7RelaxNG_7__call__, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_RelaxNG, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_7RelaxNG_3__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_RelaxNG, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__LogEntry __pyx_vtable_4lxml_5etree__LogEntry;
+
+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;
+  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);
+  p->filename = Py_None; Py_INCREF(Py_None);
+  return o;
+}
+
+static void __pyx_tp_dealloc_4lxml_5etree__LogEntry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__LogEntry *p = (struct __pyx_obj_4lxml_5etree__LogEntry *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->message);
+  Py_CLEAR(p->filename);
+  (*Py_TYPE(o)->tp_free)(o);
+}
+
+static int __pyx_tp_traverse_4lxml_5etree__LogEntry(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__LogEntry *p = (struct __pyx_obj_4lxml_5etree__LogEntry *)o;
+  if (p->message) {
+    e = (*v)(p->message, a); if (e) return e;
+  }
+  if (p->filename) {
+    e = (*v)(p->filename, a); if (e) return e;
+  }
+  return 0;
+}
 
-static PySequenceMethods __pyx_tp_as_sequence_TreeBuilder = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_tp_clear_4lxml_5etree__LogEntry(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__LogEntry *p = (struct __pyx_obj_4lxml_5etree__LogEntry *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->message);
+  p->message = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->filename);
+  p->filename = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_TreeBuilder = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_domain_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_11domain_name_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_type_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_9type_name_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_level_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_10level_name_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_domain(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_6domain_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_type(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_4type_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_level(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_5level_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_line(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_4line_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_column(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_6column_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_message(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_7message_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_9_LogEntry_filename(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9_LogEntry_8filename_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__LogEntry[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_TreeBuilder = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__LogEntry[] = {
+  {(char *)"domain_name", __pyx_getprop_4lxml_5etree_9_LogEntry_domain_name, 0, __Pyx_DOCSTR(__pyx_k_455), 0},
+  {(char *)"type_name", __pyx_getprop_4lxml_5etree_9_LogEntry_type_name, 0, __Pyx_DOCSTR(__pyx_k_456), 0},
+  {(char *)"level_name", __pyx_getprop_4lxml_5etree_9_LogEntry_level_name, 0, __Pyx_DOCSTR(__pyx_k_457), 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},
+  {(char *)"line", __pyx_getprop_4lxml_5etree_9_LogEntry_line, 0, 0, 0},
+  {(char *)"column", __pyx_getprop_4lxml_5etree_9_LogEntry_column, 0, 0, 0},
+  {(char *)"message", __pyx_getprop_4lxml_5etree_9_LogEntry_message, 0, 0, 0},
+  {(char *)"filename", __pyx_getprop_4lxml_5etree_9_LogEntry_filename, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_TreeBuilder = {
+static PyTypeObject __pyx_type_4lxml_5etree__LogEntry = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.TreeBuilder"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_TreeBuilder), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._LogEntry"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__LogEntry), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_TreeBuilder, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__LogEntry, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -174145,35 +166188,35 @@ static PyTypeObject __pyx_type_4lxml_5etree_TreeBuilder = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_TreeBuilder, /*tp_as_number*/
-  &__pyx_tp_as_sequence_TreeBuilder, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_TreeBuilder, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_9_LogEntry_1__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_TreeBuilder, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_TreeBuilder, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__LogEntry, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__LogEntry, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_11TreeBuilder_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_TreeBuilder, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__LogEntry, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -174273,104 +166316,6 @@ static PyMethodDef __pyx_methods_4lxml_5etree__PythonSaxParserTarget[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__PythonSaxParserTarget = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__PythonSaxParserTarget = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__PythonSaxParserTarget = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__PythonSaxParserTarget = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_5etree__PythonSaxParserTarget = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree._PythonSaxParserTarget"), /*tp_name*/
@@ -174386,15 +166331,15 @@ static PyTypeObject __pyx_type_4lxml_5etree__PythonSaxParserTarget = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__PythonSaxParserTarget, /*tp_as_number*/
-  &__pyx_tp_as_sequence__PythonSaxParserTarget, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__PythonSaxParserTarget, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__PythonSaxParserTarget, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -174426,179 +166371,55 @@ static PyTypeObject __pyx_type_4lxml_5etree__PythonSaxParserTarget = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__FilelikeWriter __pyx_vtable_4lxml_5etree__FilelikeWriter;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__FilelikeWriter(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p;
+static PyObject *__pyx_tp_new_4lxml_5etree_CDATA(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree_CDATA *p;
   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 (unlikely(__pyx_pw_4lxml_5etree_15_FilelikeWriter_1__cinit__(o, a, k) < 0)) {
+  p = ((struct __pyx_obj_4lxml_5etree_CDATA *)o);
+  p->_utf8_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_5CDATA_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__FilelikeWriter(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p = (struct __pyx_obj_4lxml_5etree__FilelikeWriter *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_CDATA(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_CDATA *p = (struct __pyx_obj_4lxml_5etree_CDATA *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_filelike);
-  Py_CLEAR(p->_close_filelike);
-  Py_CLEAR(p->_exc_context);
-  Py_CLEAR(p->error_log);
+  Py_CLEAR(p->_utf8_data);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__FilelikeWriter(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_CDATA(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p = (struct __pyx_obj_4lxml_5etree__FilelikeWriter *)o;
-  if (p->_filelike) {
-    e = (*v)(p->_filelike, a); if (e) return e;
-  }
-  if (p->_close_filelike) {
-    e = (*v)(p->_close_filelike, a); if (e) return e;
-  }
-  if (p->_exc_context) {
-    e = (*v)(((PyObject*)p->_exc_context), a); if (e) return e;
-  }
-  if (p->error_log) {
-    e = (*v)(((PyObject*)p->error_log), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_CDATA *p = (struct __pyx_obj_4lxml_5etree_CDATA *)o;
+  if (p->_utf8_data) {
+    e = (*v)(p->_utf8_data, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__FilelikeWriter(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p = (struct __pyx_obj_4lxml_5etree__FilelikeWriter *)o;
+static int __pyx_tp_clear_4lxml_5etree_CDATA(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_CDATA *p = (struct __pyx_obj_4lxml_5etree_CDATA *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_filelike);
-  p->_filelike = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_close_filelike);
-  p->_close_filelike = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_exc_context);
-  p->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->error_log);
-  p->error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_utf8_data);
+  p->_utf8_data = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__FilelikeWriter[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_CDATA[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__FilelikeWriter = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__FilelikeWriter = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__FilelikeWriter = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__FilelikeWriter = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__FilelikeWriter = {
+static PyTypeObject __pyx_type_4lxml_5etree_CDATA = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._FilelikeWriter"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__FilelikeWriter), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.CDATA"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_CDATA), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__FilelikeWriter, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_CDATA, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -174608,24 +166429,24 @@ static PyTypeObject __pyx_type_4lxml_5etree__FilelikeWriter = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__FilelikeWriter, /*tp_as_number*/
-  &__pyx_tp_as_sequence__FilelikeWriter, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__FilelikeWriter, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__FilelikeWriter, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__FilelikeWriter, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_CDATA, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -174635,7 +166456,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__FilelikeWriter = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__FilelikeWriter, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_CDATA, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -174706,104 +166527,6 @@ static PyMethodDef __pyx_methods_4lxml_5etree_xmlfile[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_xmlfile = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_xmlfile = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_xmlfile = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_xmlfile = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_5etree_xmlfile = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree.xmlfile"), /*tp_name*/
@@ -174819,15 +166542,15 @@ static PyTypeObject __pyx_type_4lxml_5etree_xmlfile = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_xmlfile, /*tp_as_number*/
-  &__pyx_tp_as_sequence_xmlfile, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_xmlfile, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_xmlfile, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -174859,390 +166582,84 @@ static PyTypeObject __pyx_type_4lxml_5etree_xmlfile = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__IncrementalFileWriter __pyx_vtable_4lxml_5etree__IncrementalFileWriter;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__IncrementalFileWriter(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(o, a, k) < 0)) {
+  p = ((struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o);
+  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_22_DTDElementContentDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__IncrementalFileWriter(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p = (struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__DTDElementContentDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o;
   PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_22_IncrementalFileWriter_3__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  Py_CLEAR(p->_encoding);
-  Py_CLEAR(p->_target);
-  Py_CLEAR(p->_element_stack);
+  Py_CLEAR(p->_dtd);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__IncrementalFileWriter(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__DTDElementContentDecl(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p = (struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o;
-  if (p->_encoding) {
-    e = (*v)(p->_encoding, a); if (e) return e;
-  }
-  if (p->_target) {
-    e = (*v)(p->_target, a); if (e) return e;
-  }
-  if (p->_element_stack) {
-    e = (*v)(p->_element_stack, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o;
+  if (p->_dtd) {
+    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__IncrementalFileWriter(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p = (struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o;
+static int __pyx_tp_clear_4lxml_5etree__DTDElementContentDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_encoding);
-  p->_encoding = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_target);
-  p->_target = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_element_stack);
-  p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_dtd);
+  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__IncrementalFileWriter[] = {
-  {__Pyx_NAMESTR("write_declaration"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_5write_declaration, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_4write_declaration)},
-  {__Pyx_NAMESTR("write_doctype"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_7write_doctype, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_6write_doctype)},
-  {__Pyx_NAMESTR("element"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_9element, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_8element)},
-  {__Pyx_NAMESTR("write"), (PyCFunction)__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_11write, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_IncrementalFileWriter_10write)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__IncrementalFileWriter = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__IncrementalFileWriter = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__IncrementalFileWriter = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__IncrementalFileWriter = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__IncrementalFileWriter = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._IncrementalFileWriter"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__IncrementalFileWriter), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__IncrementalFileWriter, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__IncrementalFileWriter, /*tp_as_number*/
-  &__pyx_tp_as_sequence__IncrementalFileWriter, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__IncrementalFileWriter, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  0, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__IncrementalFileWriter, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__IncrementalFileWriter, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__IncrementalFileWriter, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_4name_1__get__(o);
+}
 
-static PyObject *__pyx_tp_new_4lxml_5etree__FileWriterElement(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__FileWriterElement *p;
-  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 (unlikely(__pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 0;
-  }
-  return o;
+static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_type(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_4type_1__get__(o);
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__FileWriterElement(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__FileWriterElement *p = (struct __pyx_obj_4lxml_5etree__FileWriterElement *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_element);
-  Py_CLEAR(p->_writer);
-  (*Py_TYPE(o)->tp_free)(o);
+static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_occur(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_5occur_1__get__(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__FileWriterElement(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__FileWriterElement *p = (struct __pyx_obj_4lxml_5etree__FileWriterElement *)o;
-  if (p->_element) {
-    e = (*v)(p->_element, a); if (e) return e;
-  }
-  if (p->_writer) {
-    e = (*v)(((PyObject*)p->_writer), a); if (e) return e;
-  }
-  return 0;
+static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_left(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_4left_1__get__(o);
 }
 
-static int __pyx_tp_clear_4lxml_5etree__FileWriterElement(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__FileWriterElement *p = (struct __pyx_obj_4lxml_5etree__FileWriterElement *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_element);
-  p->_element = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_writer);
-  p->_writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
+static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_right(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_5right_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__FileWriterElement[] = {
-  {__Pyx_NAMESTR("__enter__"), (PyCFunction)__pyx_pw_4lxml_5etree_18_FileWriterElement_3__enter__, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("__exit__"), (PyCFunction)__pyx_pw_4lxml_5etree_18_FileWriterElement_5__exit__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree__DTDElementContentDecl[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__FileWriterElement = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__FileWriterElement = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__FileWriterElement = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__FileWriterElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDElementContentDecl[] = {
+  {(char *)"name", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_name, 0, 0, 0},
+  {(char *)"type", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_type, 0, 0, 0},
+  {(char *)"occur", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_occur, 0, 0, 0},
+  {(char *)"left", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_left, 0, 0, 0},
+  {(char *)"right", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_right, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__FileWriterElement = {
+static PyTypeObject __pyx_type_4lxml_5etree__DTDElementContentDecl = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._FileWriterElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__FileWriterElement), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._DTDElementContentDecl"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__DTDElementContentDecl), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__FileWriterElement, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__DTDElementContentDecl, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -175251,27 +166668,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__FileWriterElement = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__FileWriterElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence__FileWriterElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__FileWriterElement, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_3__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__FileWriterElement, /*tp_as_buffer*/
-  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+  0, /*tp_as_buffer*/
+  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__FileWriterElement, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__FileWriterElement, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__DTDElementContentDecl, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__DTDElementContentDecl, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__FileWriterElement, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__DTDElementContentDecl, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__DTDElementContentDecl, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -175279,7 +166696,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__FileWriterElement = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__FileWriterElement, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__DTDElementContentDecl, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -175387,104 +166804,6 @@ static PyMethodDef __pyx_methods_4lxml_5etree__IterparseContext[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__IterparseContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__IterparseContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__IterparseContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__IterparseContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_5etree__IterparseContext = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.etree._IterparseContext"), /*tp_name*/
@@ -175500,15 +166819,15 @@ static PyTypeObject __pyx_type_4lxml_5etree__IterparseContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__IterparseContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__IterparseContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__IterparseContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__IterparseContext, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -175540,99 +166859,66 @@ static PyTypeObject __pyx_type_4lxml_5etree__IterparseContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_iterparse __pyx_vtable_4lxml_5etree_iterparse;
+static struct __pyx_vtabstruct_4lxml_5etree__ListErrorLog __pyx_vtable_4lxml_5etree__ListErrorLog;
 
-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);
+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 (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);
-  p->_events = Py_None; Py_INCREF(Py_None);
-  p->root = Py_None; Py_INCREF(Py_None);
-  p->_source = Py_None; Py_INCREF(Py_None);
-  p->_buffer = Py_None; Py_INCREF(Py_None);
+  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);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_iterparse(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_iterparse *p = (struct __pyx_obj_4lxml_5etree_iterparse *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ListErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ListErrorLog *p = (struct __pyx_obj_4lxml_5etree__ListErrorLog *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_tag);
-  Py_CLEAR(p->_events);
-  Py_CLEAR(p->root);
-  Py_CLEAR(p->_source);
-  Py_CLEAR(p->_buffer);
+  Py_CLEAR(p->_entries);
   PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__BaseParser(o);
+  __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_iterparse(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ListErrorLog(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_iterparse *p = (struct __pyx_obj_4lxml_5etree_iterparse *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__BaseParser(o, v, a); if (e) return e;
-  if (p->_tag) {
-    e = (*v)(p->_tag, a); if (e) return e;
-  }
-  if (p->_events) {
-    e = (*v)(p->_events, a); if (e) return e;
-  }
-  if (p->root) {
-    e = (*v)(p->root, a); if (e) return e;
-  }
-  if (p->_source) {
-    e = (*v)(p->_source, a); if (e) return e;
-  }
-  if (p->_buffer) {
-    e = (*v)(p->_buffer, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ListErrorLog *p = (struct __pyx_obj_4lxml_5etree__ListErrorLog *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__BaseErrorLog(o, v, a); if (e) return e;
+  if (p->_entries) {
+    e = (*v)(p->_entries, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_iterparse(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_iterparse *p = (struct __pyx_obj_4lxml_5etree_iterparse *)o;
+static int __pyx_tp_clear_4lxml_5etree__ListErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ListErrorLog *p = (struct __pyx_obj_4lxml_5etree__ListErrorLog *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__BaseParser(o);
-  tmp = ((PyObject*)p->_tag);
-  p->_tag = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_events);
-  p->_events = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->root);
-  p->root = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_source);
-  p->_source = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_buffer);
-  p->_buffer = Py_None; Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__BaseErrorLog(o);
+  tmp = ((PyObject*)p->_entries);
+  p->_entries = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9iterparse_error_log(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9iterparse_9error_log_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_9iterparse_root(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_9iterparse_4root_1__get__(o);
+  return 0;
+}
+static PyObject *__pyx_sq_item_4lxml_5etree__ListErrorLog(PyObject *o, Py_ssize_t i) {
+  PyObject *r;
+  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
+  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
+  Py_DECREF(x);
+  return r;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_iterparse[] = {
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_9iterparse_3copy, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_9iterparse_7__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree__ListErrorLog[] = {
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_3copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_2copy)},
+  {__Pyx_NAMESTR("filter_domains"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_17filter_domains, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_16filter_domains)},
+  {__Pyx_NAMESTR("filter_types"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_19filter_types, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_18filter_types)},
+  {__Pyx_NAMESTR("filter_levels"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_21filter_levels, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_20filter_levels)},
+  {__Pyx_NAMESTR("filter_from_level"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_23filter_from_level, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_22filter_from_level)},
+  {__Pyx_NAMESTR("filter_from_fatals"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_25filter_from_fatals, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_24filter_from_fatals)},
+  {__Pyx_NAMESTR("filter_from_errors"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_27filter_from_errors, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_26filter_from_errors)},
+  {__Pyx_NAMESTR("filter_from_warnings"), (PyCFunction)__pyx_pw_4lxml_5etree_13_ListErrorLog_29filter_from_warnings, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13_ListErrorLog_28filter_from_warnings)},
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_iterparse[] = {
-  {(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}
-};
-
-static PyNumberMethods __pyx_tp_as_number_iterparse = {
+static PyNumberMethods __pyx_tp_as_number__ListErrorLog = {
   0, /*nb_add*/
   0, /*nb_subtract*/
   0, /*nb_multiply*/
@@ -175645,7 +166931,7 @@ static PyNumberMethods __pyx_tp_as_number_iterparse = {
   0, /*nb_negative*/
   0, /*nb_positive*/
   0, /*nb_absolute*/
-  0, /*nb_nonzero*/
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_15__nonzero__, /*nb_nonzero*/
   0, /*nb_invert*/
   0, /*nb_lshift*/
   0, /*nb_rshift*/
@@ -175690,52 +166976,31 @@ static PyNumberMethods __pyx_tp_as_number_iterparse = {
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_iterparse = {
-  0, /*sq_length*/
+static PySequenceMethods __pyx_tp_as_sequence__ListErrorLog = {
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*sq_length*/
   0, /*sq_concat*/
   0, /*sq_repeat*/
-  0, /*sq_item*/
+  __pyx_sq_item_4lxml_5etree__ListErrorLog, /*sq_item*/
   0, /*sq_slice*/
   0, /*sq_ass_item*/
   0, /*sq_ass_slice*/
-  0, /*sq_contains*/
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_13__contains__, /*sq_contains*/
   0, /*sq_inplace_concat*/
   0, /*sq_inplace_repeat*/
 };
 
-static PyMappingMethods __pyx_tp_as_mapping_iterparse = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
+static PyMappingMethods __pyx_tp_as_mapping__ListErrorLog = {
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_11__len__, /*mp_length*/
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_9__getitem__, /*mp_subscript*/
   0, /*mp_ass_subscript*/
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_iterparse = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_iterparse = {
+static PyTypeObject __pyx_type_4lxml_5etree__ListErrorLog = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.iterparse"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_iterparse), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ListErrorLog"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ListErrorLog), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_iterparse, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ListErrorLog, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -175744,35 +167009,35 @@ static PyTypeObject __pyx_type_4lxml_5etree_iterparse = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_iterparse, /*tp_as_number*/
-  &__pyx_tp_as_sequence_iterparse, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_iterparse, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
+  &__pyx_tp_as_number__ListErrorLog, /*tp_as_number*/
+  &__pyx_tp_as_sequence__ListErrorLog, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping__ListErrorLog, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_iterparse, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_9iterparse_5__iter__, /*tp_iter*/
-  __pyx_pw_4lxml_5etree_9iterparse_7__next__, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_iterparse, /*tp_methods*/
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_5__iter__, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ListErrorLog, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_iterparse, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_9iterparse_1__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_iterparse, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ListErrorLog, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -175785,151 +167050,279 @@ static PyTypeObject __pyx_type_4lxml_5etree_iterparse = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_iterwalk __pyx_vtable_4lxml_5etree_iterwalk;
+static struct __pyx_vtabstruct_4lxml_5etree__ErrorLog __pyx_vtable_4lxml_5etree__ErrorLog;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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 (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);
-  p->_node_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_events = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_pop_event = Py_None; Py_INCREF(Py_None);
+  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 (unlikely(__pyx_pw_4lxml_5etree_9_ErrorLog_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_iterwalk(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_iterwalk *p = (struct __pyx_obj_4lxml_5etree_iterwalk *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ErrorLog *p = (struct __pyx_obj_4lxml_5etree__ErrorLog *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_matcher);
-  Py_CLEAR(p->_node_stack);
-  Py_CLEAR(p->_events);
-  Py_CLEAR(p->_pop_event);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->_logContexts);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__ListErrorLog(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_iterwalk(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ErrorLog(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_iterwalk *p = (struct __pyx_obj_4lxml_5etree_iterwalk *)o;
-  if (p->_matcher) {
-    e = (*v)(((PyObject*)p->_matcher), a); if (e) return e;
-  }
-  if (p->_node_stack) {
-    e = (*v)(p->_node_stack, a); if (e) return e;
-  }
-  if (p->_events) {
-    e = (*v)(p->_events, a); if (e) return e;
-  }
-  if (p->_pop_event) {
-    e = (*v)(p->_pop_event, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ErrorLog *p = (struct __pyx_obj_4lxml_5etree__ErrorLog *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__ListErrorLog(o, v, a); if (e) return e;
+  if (p->_logContexts) {
+    e = (*v)(p->_logContexts, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_iterwalk(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_iterwalk *p = (struct __pyx_obj_4lxml_5etree_iterwalk *)o;
+static int __pyx_tp_clear_4lxml_5etree__ErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ErrorLog *p = (struct __pyx_obj_4lxml_5etree__ErrorLog *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_matcher);
-  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_node_stack);
-  p->_node_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_events);
-  p->_events = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_pop_event);
-  p->_pop_event = Py_None; Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__ListErrorLog(o);
+  tmp = ((PyObject*)p->_logContexts);
+  p->_logContexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_iterwalk[] = {
-  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_8iterwalk_5__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree__ErrorLog[] = {
+  {__Pyx_NAMESTR("__exit__"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_5__exit__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_7clear, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_9copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_ErrorLog_8copy)},
+  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_9_ErrorLog_13receive, METH_O, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_iterwalk = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
+static PyTypeObject __pyx_type_4lxml_5etree__ErrorLog = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._ErrorLog"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ErrorLog), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ErrorLog, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
+  0, /*tp_compare*/
+  #else
+  0, /*reserved*/
   #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
   #endif
-  0, /*nb_int*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  __pyx_pw_4lxml_5etree_9_ErrorLog_11__iter__, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ErrorLog, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_9_ErrorLog_3__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__ErrorLog, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
+  #endif
+};
+static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy __pyx_vtable_4lxml_5etree__ReadOnlyPIProxy;
+
+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 (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;
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_16_ReadOnlyPIProxy_target(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_16_ReadOnlyPIProxy_6target_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyPIProxy[] = {
+  {0, 0, 0, 0}
+};
+
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyPIProxy[] = {
+  {(char *)"target", __pyx_getprop_4lxml_5etree_16_ReadOnlyPIProxy_target, 0, 0, 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyPIProxy = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._ReadOnlyPIProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyPIProxy), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
   #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
   #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ReadOnlyPIProxy, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree__ReadOnlyPIProxy, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__ReadOnlyPIProxy, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__XSLTResultTree __pyx_vtable_4lxml_5etree__XSLTResultTree;
 
-static PySequenceMethods __pyx_tp_as_sequence_iterwalk = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_15_XSLTResultTree_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
+  return o;
+}
+
+static void __pyx_tp_dealloc_4lxml_5etree__XSLTResultTree(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTResultTree *p = (struct __pyx_obj_4lxml_5etree__XSLTResultTree *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_xslt);
+  Py_CLEAR(p->_profile);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__ElementTree(o);
+}
+
+static int __pyx_tp_traverse_4lxml_5etree__XSLTResultTree(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__XSLTResultTree *p = (struct __pyx_obj_4lxml_5etree__XSLTResultTree *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__ElementTree(o, v, a); if (e) return e;
+  if (p->_xslt) {
+    e = (*v)(((PyObject*)p->_xslt), a); if (e) return e;
+  }
+  if (p->_profile) {
+    e = (*v)(((PyObject*)p->_profile), a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_5etree__XSLTResultTree(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTResultTree *p = (struct __pyx_obj_4lxml_5etree__XSLTResultTree *)o;
+  PyObject* tmp;
+  __pyx_tp_clear_4lxml_5etree__ElementTree(o);
+  tmp = ((PyObject*)p->_xslt);
+  p->_xslt = ((struct __pyx_obj_4lxml_5etree_XSLT *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_profile);
+  p->_profile = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_15_XSLTResultTree_xslt_profile(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_15_XSLTResultTree_12xslt_profile_1__get__(o);
+}
+
+static int __pyx_setprop_4lxml_5etree_15_XSLTResultTree_xslt_profile(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    PyErr_SetString(PyExc_NotImplementedError, "__set__");
+    return -1;
+  }
+  else {
+    return __pyx_pw_4lxml_5etree_15_XSLTResultTree_12xslt_profile_3__del__(o);
+  }
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__XSLTResultTree[] = {
+  {__Pyx_NAMESTR("__unicode__"), (PyCFunction)__pyx_pw_4lxml_5etree_15_XSLTResultTree_5__unicode__, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyMappingMethods __pyx_tp_as_mapping_iterwalk = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+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_458), 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_iterwalk = {
+static PyBufferProcs __pyx_tp_as_buffer__XSLTResultTree = {
   #if PY_MAJOR_VERSION < 3
   0, /*bf_getreadbuffer*/
   #endif
@@ -175943,19 +167336,19 @@ static PyBufferProcs __pyx_tp_as_buffer_iterwalk = {
   0, /*bf_getcharbuffer*/
   #endif
   #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
+  __pyx_pw_4lxml_5etree_15_XSLTResultTree_7__getbuffer__, /*bf_getbuffer*/
   #endif
   #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
+  __pyx_pw_4lxml_5etree_15_XSLTResultTree_9__releasebuffer__, /*bf_releasebuffer*/
   #endif
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_iterwalk = {
+static PyTypeObject __pyx_type_4lxml_5etree__XSLTResultTree = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.iterwalk"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_iterwalk), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XSLTResultTree"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XSLTResultTree), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_iterwalk, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__XSLTResultTree, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -175965,34 +167358,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_iterwalk = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_iterwalk, /*tp_as_number*/
-  &__pyx_tp_as_sequence_iterwalk, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_iterwalk, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
-  0, /*tp_str*/
+  __pyx_pw_4lxml_5etree_15_XSLTResultTree_3__str__, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_iterwalk, /*tp_as_buffer*/
-  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*/
+  &__pyx_tp_as_buffer__XSLTResultTree, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_8iterwalk_3__iter__, /*tp_iter*/
-  __pyx_pw_4lxml_5etree_8iterwalk_5__next__, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_iterwalk, /*tp_methods*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__XSLTResultTree, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__XSLTResultTree, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_8iterwalk_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_iterwalk, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XSLTResultTree, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -176005,187 +167398,230 @@ static PyTypeObject __pyx_type_4lxml_5etree_iterwalk = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__IDDict __pyx_vtable_4lxml_5etree__IDDict;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__IDDict(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__IDDict *p;
+static PyObject *__pyx_tp_new_4lxml_5etree_ElementTextIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p;
   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 (unlikely(__pyx_pw_4lxml_5etree_7_IDDict_1__cinit__(o, a, k) < 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 (unlikely(__pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__IDDict(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__IDDict *p = (struct __pyx_obj_4lxml_5etree__IDDict *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_ElementTextIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p = (struct __pyx_obj_4lxml_5etree_ElementTextIterator *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_doc);
-  Py_CLEAR(p->_keys);
-  Py_CLEAR(p->_items);
+  Py_CLEAR(p->_nextEvent);
+  Py_CLEAR(p->_start_element);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__IDDict(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_ElementTextIterator(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__IDDict *p = (struct __pyx_obj_4lxml_5etree__IDDict *)o;
-  if (p->_doc) {
-    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
-  }
-  if (p->_keys) {
-    e = (*v)(p->_keys, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p = (struct __pyx_obj_4lxml_5etree_ElementTextIterator *)o;
+  if (p->_nextEvent) {
+    e = (*v)(p->_nextEvent, a); if (e) return e;
   }
-  if (p->_items) {
-    e = (*v)(p->_items, a); if (e) return e;
+  if (p->_start_element) {
+    e = (*v)(((PyObject*)p->_start_element), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__IDDict(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__IDDict *p = (struct __pyx_obj_4lxml_5etree__IDDict *)o;
+static int __pyx_tp_clear_4lxml_5etree_ElementTextIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementTextIterator *p = (struct __pyx_obj_4lxml_5etree_ElementTextIterator *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_doc);
-  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_keys);
-  p->_keys = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_nextEvent);
+  p->_nextEvent = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_items);
-  p->_items = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_start_element);
+  p->_start_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
-static PyObject *__pyx_sq_item_4lxml_5etree__IDDict(PyObject *o, Py_ssize_t i) {
-  PyObject *r;
-  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
-  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
-  Py_DECREF(x);
-  return r;
-}
 
-static PyMethodDef __pyx_methods_4lxml_5etree__IDDict[] = {
-  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_3copy, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_7get, METH_O, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("has_key"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_11has_key, METH_O, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_15keys, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("iterkeys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_19iterkeys, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_23items, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("iteritems"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_25iteritems, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_27values, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("itervalues"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_29itervalues, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree_ElementTextIterator[] = {
+  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_19ElementTextIterator_5__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__IDDict = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_ElementTextIterator = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.ElementTextIterator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ElementTextIterator), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_ElementTextIterator, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  __pyx_pw_4lxml_5etree_19ElementTextIterator_3__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_19ElementTextIterator_5__next__, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_ElementTextIterator, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_ElementTextIterator, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__ElementIterator __pyx_vtable_4lxml_5etree__ElementIterator;
 
-static PySequenceMethods __pyx_tp_as_sequence__IDDict = {
-  __pyx_pw_4lxml_5etree_7_IDDict_21__len__, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  __pyx_sq_item_4lxml_5etree__IDDict, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  __pyx_pw_4lxml_5etree_7_IDDict_9__contains__, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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 (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);
+  return o;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__IDDict = {
-  __pyx_pw_4lxml_5etree_7_IDDict_21__len__, /*mp_length*/
-  __pyx_pw_4lxml_5etree_7_IDDict_5__getitem__, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static void __pyx_tp_dealloc_4lxml_5etree__ElementIterator(PyObject *o) {
+  struct LxmlElementIterator *p = (struct LxmlElementIterator *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_node);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__ElementTagMatcher(o);
+}
+
+static int __pyx_tp_traverse_4lxml_5etree__ElementIterator(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct LxmlElementIterator *p = (struct LxmlElementIterator *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__ElementTagMatcher(o, v, a); if (e) return e;
+  if (p->_node) {
+    e = (*v)(((PyObject*)p->_node), a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_5etree__ElementIterator(PyObject *o) {
+  struct LxmlElementIterator *p = (struct LxmlElementIterator *)o;
+  PyObject* tmp;
+  __pyx_tp_clear_4lxml_5etree__ElementTagMatcher(o);
+  tmp = ((PyObject*)p->_node);
+  p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ElementIterator[] = {
+  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_16_ElementIterator_3__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__IDDict = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
+DL_EXPORT(PyTypeObject) LxmlElementIteratorType = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._ElementIterator"), /*tp_name*/
+  sizeof(struct LxmlElementIterator), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementIterator, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
+  0, /*tp_compare*/
+  #else
+  0, /*reserved*/
   #endif
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  __pyx_pw_4lxml_5etree_16_ElementIterator_1__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_16_ElementIterator_3__next__, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ElementIterator, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__ElementIterator, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
   #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
+  0, /*tp_version_tag*/
   #endif
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__IDDict = {
+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 (unlikely(!o)) return 0;
+  return o;
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_ElementBase[] = {
+  {0, 0, 0, 0}
+};
+
+DL_EXPORT(PyTypeObject) LxmlElementBaseType = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._IDDict"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__IDDict), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.ElementBase"), /*tp_name*/
+  sizeof(struct LxmlElementBase), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__IDDict, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -176194,25 +167630,33 @@ static PyTypeObject __pyx_type_4lxml_5etree__IDDict = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_7_IDDict_13__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__IDDict, /*tp_as_number*/
-  &__pyx_tp_as_sequence__IDDict, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__IDDict, /*tp_as_mapping*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_31__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__IDDict, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  __pyx_pw_4lxml_5etree_7_IDDict_17__iter__, /*tp_iter*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__IDDict, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_ElementBase, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -176220,9 +167664,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__IDDict = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_11ElementBase_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__IDDict, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_ElementBase, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -176235,159 +167679,199 @@ static PyTypeObject __pyx_type_4lxml_5etree__IDDict = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_PyErrorLog __pyx_vtable_4lxml_5etree_PyErrorLog;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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 (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);
+  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);
+  p->_map_level = Py_None; Py_INCREF(Py_None);
+  p->_log = Py_None; Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_XInclude(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XInclude *p = (struct __pyx_obj_4lxml_5etree_XInclude *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_PyErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_PyErrorLog *p = (struct __pyx_obj_4lxml_5etree_PyErrorLog *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_error_log);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->level_map);
+  Py_CLEAR(p->_map_level);
+  Py_CLEAR(p->_log);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__BaseErrorLog(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_XInclude(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_PyErrorLog(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_XInclude *p = (struct __pyx_obj_4lxml_5etree_XInclude *)o;
-  if (p->_error_log) {
-    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_PyErrorLog *p = (struct __pyx_obj_4lxml_5etree_PyErrorLog *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__BaseErrorLog(o, v, a); if (e) return e;
+  if (p->level_map) {
+    e = (*v)(p->level_map, a); if (e) return e;
+  }
+  if (p->_map_level) {
+    e = (*v)(p->_map_level, a); if (e) return e;
+  }
+  if (p->_log) {
+    e = (*v)(p->_log, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_XInclude(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XInclude *p = (struct __pyx_obj_4lxml_5etree_XInclude *)o;
+static int __pyx_tp_clear_4lxml_5etree_PyErrorLog(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_PyErrorLog *p = (struct __pyx_obj_4lxml_5etree_PyErrorLog *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_error_log);
-  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__BaseErrorLog(o);
+  tmp = ((PyObject*)p->level_map);
+  p->level_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_map_level);
+  p->_map_level = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_log);
+  p->_log = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_8XInclude_error_log(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_8XInclude_9error_log_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_10PyErrorLog_level_map(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_10PyErrorLog_9level_map_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XInclude[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_PyErrorLog[] = {
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_3copy, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10PyErrorLog_2copy)},
+  {__Pyx_NAMESTR("log"), (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_5log, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10PyErrorLog_4log)},
+  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_10PyErrorLog_7receive, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_10PyErrorLog_6receive)},
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XInclude[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_8XInclude_error_log, 0, 0, 0},
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_PyErrorLog[] = {
+  {(char *)"level_map", __pyx_getprop_4lxml_5etree_10PyErrorLog_level_map, 0, 0, 0},
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_XInclude = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_PyErrorLog = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.PyErrorLog"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_PyErrorLog), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_PyErrorLog, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_13_BaseErrorLog_5__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
   #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_PyErrorLog, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree_PyErrorLog, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_10PyErrorLog_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_PyErrorLog, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_DTD __pyx_vtable_4lxml_5etree_DTD;
 
-static PySequenceMethods __pyx_tp_as_sequence_XInclude = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_3DTD_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
+  return o;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_XInclude = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static void __pyx_tp_dealloc_4lxml_5etree_DTD(PyObject *o) {
+  PyObject_GC_UnTrack(o);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_3DTD_15__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__Validator(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_3DTD_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_3DTD_4name_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_3DTD_external_id(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_3DTD_11external_id_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_3DTD_system_url(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_3DTD_10system_url_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_DTD[] = {
+  {__Pyx_NAMESTR("iterelements"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_5iterelements, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("elements"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_8elements, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("iterentities"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_10iterentities, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("entities"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_13entities, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_XInclude = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_DTD[] = {
+  {(char *)"name", __pyx_getprop_4lxml_5etree_3DTD_name, 0, 0, 0},
+  {(char *)"external_id", __pyx_getprop_4lxml_5etree_3DTD_external_id, 0, 0, 0},
+  {(char *)"system_url", __pyx_getprop_4lxml_5etree_3DTD_system_url, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_XInclude = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XInclude"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XInclude), /*tp_basicsize*/
+static PyTypeObject __pyx_type_4lxml_5etree_DTD = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.DTD"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_DTD), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XInclude, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_DTD, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -176397,34 +167881,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_XInclude = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_XInclude, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XInclude, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XInclude, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_8XInclude_3__call__, /*tp_call*/
+  __pyx_pw_4lxml_5etree_3DTD_17__call__, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XInclude, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XInclude, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_DTD, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_XInclude, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree_DTD, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_8XInclude_1__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_3DTD_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XInclude, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_DTD, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -176437,158 +167921,104 @@ static PyTypeObject __pyx_type_4lxml_5etree_XInclude = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__ExsltRegExp __pyx_vtable_4lxml_5etree__ExsltRegExp;
+static struct __pyx_vtabstruct_4lxml_5etree_iterparse __pyx_vtable_4lxml_5etree_iterparse;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_12_ExsltRegExp_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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);
+  p->_events = Py_None; Py_INCREF(Py_None);
+  p->root = Py_None; Py_INCREF(Py_None);
+  p->_source = Py_None; Py_INCREF(Py_None);
+  p->_buffer = Py_None; Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ExsltRegExp(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ExsltRegExp *p = (struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_iterparse(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_iterparse *p = (struct __pyx_obj_4lxml_5etree_iterparse *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_compile_map);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->_tag);
+  Py_CLEAR(p->_events);
+  Py_CLEAR(p->root);
+  Py_CLEAR(p->_source);
+  Py_CLEAR(p->_buffer);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__BaseParser(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ExsltRegExp(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_iterparse(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__ExsltRegExp *p = (struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o;
-  if (p->_compile_map) {
-    e = (*v)(p->_compile_map, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_iterparse *p = (struct __pyx_obj_4lxml_5etree_iterparse *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__BaseParser(o, v, a); if (e) return e;
+  if (p->_tag) {
+    e = (*v)(p->_tag, a); if (e) return e;
+  }
+  if (p->_events) {
+    e = (*v)(p->_events, a); if (e) return e;
+  }
+  if (p->root) {
+    e = (*v)(p->root, a); if (e) return e;
+  }
+  if (p->_source) {
+    e = (*v)(p->_source, a); if (e) return e;
+  }
+  if (p->_buffer) {
+    e = (*v)(p->_buffer, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__ExsltRegExp(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ExsltRegExp *p = (struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o;
+static int __pyx_tp_clear_4lxml_5etree_iterparse(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_iterparse *p = (struct __pyx_obj_4lxml_5etree_iterparse *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_compile_map);
-  p->_compile_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__BaseParser(o);
+  tmp = ((PyObject*)p->_tag);
+  p->_tag = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_events);
+  p->_events = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->root);
+  p->root = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_source);
+  p->_source = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_buffer);
+  p->_buffer = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__ExsltRegExp[] = {
-  {__Pyx_NAMESTR("test"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ExsltRegExp_3test, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("match"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ExsltRegExp_5match, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("replace"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ExsltRegExp_7replace, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ExsltRegExp = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_9iterparse_error_log(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9iterparse_9error_log_1__get__(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence__ExsltRegExp = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_9iterparse_root(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_9iterparse_4root_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__ExsltRegExp = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree_iterparse[] = {
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_9iterparse_3copy, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_9iterparse_7__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__ExsltRegExp = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_iterparse[] = {
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_9iterparse_error_log, 0, __Pyx_DOCSTR(__pyx_k_459), 0},
+  {(char *)"root", __pyx_getprop_4lxml_5etree_9iterparse_root, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__ExsltRegExp = {
+static PyTypeObject __pyx_type_4lxml_5etree_iterparse = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ExsltRegExp"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ExsltRegExp), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.iterparse"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_iterparse), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ExsltRegExp, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_iterparse, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -176598,34 +168028,34 @@ static PyTypeObject __pyx_type_4lxml_5etree__ExsltRegExp = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ExsltRegExp, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ExsltRegExp, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ExsltRegExp, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ExsltRegExp, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ExsltRegExp, /*tp_methods*/
+  __pyx_pw_4lxml_5etree_9iterparse_5__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_9iterparse_7__next__, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_iterparse, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree_iterparse, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_9iterparse_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ExsltRegExp, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_iterparse, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -176638,249 +168068,74 @@ static PyTypeObject __pyx_type_4lxml_5etree__ExsltRegExp = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__BaseContext __pyx_vtable_4lxml_5etree__BaseContext;
 
-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;
+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;
-  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->_extensions = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_global_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_utf_refs = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_function_cache = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_eval_context_dict = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  p->_temp_refs = ((struct __pyx_obj_4lxml_5etree__TempStore *)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 (unlikely(__pyx_pw_4lxml_5etree_12_BaseContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 0;
+  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;
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__BaseContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__BaseContext *p = (struct __pyx_obj_4lxml_5etree__BaseContext *)o;
+static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_2_iterelements(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_doc);
-  Py_CLEAR(p->_extensions);
-  Py_CLEAR(p->_namespaces);
-  Py_CLEAR(p->_global_namespaces);
-  Py_CLEAR(p->_utf_refs);
-  Py_CLEAR(p->_function_cache);
-  Py_CLEAR(p->_eval_context_dict);
-  Py_CLEAR(p->_temp_refs);
-  Py_CLEAR(p->_temp_documents);
-  Py_CLEAR(p->_exc);
-  Py_CLEAR(p->_error_log);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->__pyx_v_node);
+  Py_CLEAR(p->__pyx_v_self);
+  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__BaseContext(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_2_iterelements(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__BaseContext *p = (struct __pyx_obj_4lxml_5etree__BaseContext *)o;
-  if (p->_doc) {
-    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
-  }
-  if (p->_extensions) {
-    e = (*v)(p->_extensions, a); if (e) return e;
-  }
-  if (p->_namespaces) {
-    e = (*v)(p->_namespaces, a); if (e) return e;
-  }
-  if (p->_global_namespaces) {
-    e = (*v)(p->_global_namespaces, a); if (e) return e;
-  }
-  if (p->_utf_refs) {
-    e = (*v)(p->_utf_refs, a); if (e) return e;
-  }
-  if (p->_function_cache) {
-    e = (*v)(p->_function_cache, a); if (e) return e;
-  }
-  if (p->_eval_context_dict) {
-    e = (*v)(p->_eval_context_dict, a); if (e) return e;
-  }
-  if (p->_temp_refs) {
-    e = (*v)(((PyObject*)p->_temp_refs), a); if (e) return e;
-  }
-  if (p->_temp_documents) {
-    e = (*v)(p->_temp_documents, a); if (e) return e;
-  }
-  if (p->_exc) {
-    e = (*v)(((PyObject*)p->_exc), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o;
+  if (p->__pyx_v_node) {
+    e = (*v)(((PyObject*)p->__pyx_v_node), a); if (e) return e;
   }
-  if (p->_error_log) {
-    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
+  if (p->__pyx_v_self) {
+    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__BaseContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__BaseContext *p = (struct __pyx_obj_4lxml_5etree__BaseContext *)o;
+static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_2_iterelements(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_doc);
-  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_extensions);
-  p->_extensions = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_namespaces);
-  p->_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_global_namespaces);
-  p->_global_namespaces = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_utf_refs);
-  p->_utf_refs = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_function_cache);
-  p->_function_cache = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_eval_context_dict);
-  p->_eval_context_dict = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_temp_refs);
-  p->_temp_refs = ((struct __pyx_obj_4lxml_5etree__TempStore *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_temp_documents);
-  p->_temp_documents = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_exc);
-  p->_exc = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->__pyx_v_node);
+  p->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_error_log);
-  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->__pyx_v_self);
+  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_12_BaseContext_context_node(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_12_BaseContext_12context_node_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_12_BaseContext_eval_context(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_12_BaseContext_12eval_context_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__BaseContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct_2_iterelements[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseContext[] = {
-  {(char *)"context_node", __pyx_getprop_4lxml_5etree_12_BaseContext_context_node, 0, 0, 0},
-  {(char *)"eval_context", __pyx_getprop_4lxml_5etree_12_BaseContext_eval_context, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__BaseContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__BaseContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__BaseContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__BaseContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__BaseContext = {
+static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._BaseContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__BaseContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct_2_iterelements"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__BaseContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -176890,34 +168145,34 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__BaseContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__BaseContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__BaseContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__BaseContext, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__BaseContext, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__BaseContext, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__BaseContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__BaseContext, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_12_BaseContext_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__BaseContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -176930,209 +168185,56 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseContext = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext __pyx_vtable_4lxml_5etree__XSLTResolverContext;
 
-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);
+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 (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);
-  p->is_text = Py_None; Py_INCREF(Py_None);
-  p->is_attribute = Py_None; Py_INCREF(Py_None);
-  p->attrname = Py_None; Py_INCREF(Py_None);
+  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);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__ElementUnicodeResult(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *p = (struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__XSLTResolverContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTResolverContext *p = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_parent);
-  Py_CLEAR(p->is_tail);
-  Py_CLEAR(p->is_text);
-  Py_CLEAR(p->is_attribute);
-  Py_CLEAR(p->attrname);
+  Py_CLEAR(p->_parser);
   PyObject_GC_Track(o);
-  (&PyUnicode_Type)->tp_dealloc(o);
+  __pyx_tp_dealloc_4lxml_5etree__ResolverContext(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__ElementUnicodeResult(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__XSLTResolverContext(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *p = (struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)o;
-  if (!(&PyUnicode_Type)->tp_traverse); else { e = (&PyUnicode_Type)->tp_traverse(o,v,a); if (e) return e; }
-  if (p->_parent) {
-    e = (*v)(((PyObject*)p->_parent), a); if (e) return e;
-  }
-  if (p->is_tail) {
-    e = (*v)(p->is_tail, a); if (e) return e;
-  }
-  if (p->is_text) {
-    e = (*v)(p->is_text, a); if (e) return e;
-  }
-  if (p->is_attribute) {
-    e = (*v)(p->is_attribute, a); if (e) return e;
-  }
-  if (p->attrname) {
-    e = (*v)(p->attrname, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__XSLTResolverContext *p = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)o;
+  e = __pyx_tp_traverse_4lxml_5etree__ResolverContext(o, v, a); if (e) return e;
+  if (p->_parser) {
+    e = (*v)(((PyObject*)p->_parser), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__ElementUnicodeResult(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *p = (struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)o;
+static int __pyx_tp_clear_4lxml_5etree__XSLTResolverContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__XSLTResolverContext *p = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)o;
   PyObject* tmp;
-  if (!(&PyUnicode_Type)->tp_clear); else (&PyUnicode_Type)->tp_clear(o);
-  tmp = ((PyObject*)p->_parent);
-  p->_parent = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->is_tail);
-  p->is_tail = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->is_text);
-  p->is_text = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->is_attribute);
-  p->is_attribute = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->attrname);
-  p->attrname = Py_None; Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree__ResolverContext(o);
+  tmp = ((PyObject*)p->_parser);
+  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_tail(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_7is_tail_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_text(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_7is_text_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_attribute(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_12is_attribute_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_attrname(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_8attrname_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__ElementUnicodeResult[] = {
-  {__Pyx_NAMESTR("getparent"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ElementUnicodeResult_1getparent, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree__XSLTResolverContext[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ElementUnicodeResult[] = {
-  {(char *)"is_tail", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_tail, 0, 0, 0},
-  {(char *)"is_text", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_text, 0, 0, 0},
-  {(char *)"is_attribute", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_attribute, 0, 0, 0},
-  {(char *)"attrname", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_attrname, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ElementUnicodeResult = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ElementUnicodeResult = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ElementUnicodeResult = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ElementUnicodeResult = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__ElementUnicodeResult = {
+static PyTypeObject __pyx_type_4lxml_5etree__XSLTResolverContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._ElementUnicodeResult"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__ElementUnicodeResult), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._XSLTResolverContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__XSLTResolverContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__ElementUnicodeResult, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__XSLTResolverContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -177142,26 +168244,26 @@ static PyTypeObject __pyx_type_4lxml_5etree__ElementUnicodeResult = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ElementUnicodeResult, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ElementUnicodeResult, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ElementUnicodeResult, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ElementUnicodeResult, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__XSLTResolverContext, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__XSLTResolverContext, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__ElementUnicodeResult, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__XSLTResolverContext, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__ElementUnicodeResult, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -177169,7 +168271,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__ElementUnicodeResult = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__ElementUnicodeResult, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__XSLTResolverContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -177182,154 +168284,74 @@ static PyTypeObject __pyx_type_4lxml_5etree__ElementUnicodeResult = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XPathContext __pyx_vtable_4lxml_5etree__XPathContext;
+static struct __pyx_vtabstruct_4lxml_5etree__ParserDictionaryContext __pyx_vtable_4lxml_5etree__ParserDictionaryContext;
 
-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);
+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;
+  o = (*t->tp_alloc)(t, 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);
+  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 (unlikely(__pyx_pw_4lxml_5etree_24_ParserDictionaryContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__XPathContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XPathContext *p = (struct __pyx_obj_4lxml_5etree__XPathContext *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ParserDictionaryContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *p = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_variables);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__BaseContext(o);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_24_ParserDictionaryContext_3__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  Py_CLEAR(p->_default_parser);
+  Py_CLEAR(p->_implied_parser_contexts);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__XPathContext(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ParserDictionaryContext(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__XPathContext *p = (struct __pyx_obj_4lxml_5etree__XPathContext *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__BaseContext(o, v, a); if (e) return e;
-  if (p->_variables) {
-    e = (*v)(p->_variables, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *p = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)o;
+  if (p->_default_parser) {
+    e = (*v)(((PyObject*)p->_default_parser), a); if (e) return e;
+  }
+  if (p->_implied_parser_contexts) {
+    e = (*v)(p->_implied_parser_contexts, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__XPathContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XPathContext *p = (struct __pyx_obj_4lxml_5etree__XPathContext *)o;
+static int __pyx_tp_clear_4lxml_5etree__ParserDictionaryContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *p = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__BaseContext(o);
-  tmp = ((PyObject*)p->_variables);
-  p->_variables = Py_None; Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_default_parser);
+  p->_default_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_implied_parser_contexts);
+  p->_implied_parser_contexts = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__XPathContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__ParserDictionaryContext[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__XPathContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__XPathContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__XPathContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__XPathContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__XPathContext = {
+static PyTypeObject __pyx_type_4lxml_5etree__ParserDictionaryContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XPathContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XPathContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ParserDictionaryContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__XPathContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ParserDictionaryContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -177339,24 +168361,24 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__XPathContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XPathContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XPathContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XPathContext, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__ParserDictionaryContext, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ParserDictionaryContext, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XPathContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ParserDictionaryContext, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -177364,9 +168386,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathContext = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_13_XPathContext_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XPathContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ParserDictionaryContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -177379,182 +168401,150 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase __pyx_vtable_4lxml_5etree__XPathEvaluatorBase;
+static struct __pyx_vtabstruct_4lxml_5etree_iterwalk __pyx_vtable_4lxml_5etree_iterwalk;
 
-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;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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);
+  p->_node_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_events = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  p->_pop_event = Py_None; Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *p = (struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_iterwalk(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_iterwalk *p = (struct __pyx_obj_4lxml_5etree_iterwalk *)o;
   PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_5__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  Py_CLEAR(p->_context);
-  Py_CLEAR(p->_error_log);
+  Py_CLEAR(p->_matcher);
+  Py_CLEAR(p->_node_stack);
+  Py_CLEAR(p->_events);
+  Py_CLEAR(p->_pop_event);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_iterwalk(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *p = (struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)o;
-  if (p->_context) {
-    e = (*v)(((PyObject*)p->_context), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_iterwalk *p = (struct __pyx_obj_4lxml_5etree_iterwalk *)o;
+  if (p->_matcher) {
+    e = (*v)(((PyObject*)p->_matcher), a); if (e) return e;
   }
-  if (p->_error_log) {
-    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
+  if (p->_node_stack) {
+    e = (*v)(p->_node_stack, a); if (e) return e;
+  }
+  if (p->_events) {
+    e = (*v)(p->_events, a); if (e) return e;
+  }
+  if (p->_pop_event) {
+    e = (*v)(p->_pop_event, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *p = (struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)o;
+static int __pyx_tp_clear_4lxml_5etree_iterwalk(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_iterwalk *p = (struct __pyx_obj_4lxml_5etree_iterwalk *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_context);
-  p->_context = ((struct __pyx_obj_4lxml_5etree__XPathContext *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_error_log);
-  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_matcher);
+  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_19_XPathEvaluatorBase_error_log(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_9error_log_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__XPathEvaluatorBase[] = {
-  {__Pyx_NAMESTR("evaluate"), (PyCFunction)__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_7evaluate, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_19_XPathEvaluatorBase_6evaluate)},
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__XPathEvaluatorBase[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_19_XPathEvaluatorBase_error_log, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__XPathEvaluatorBase = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__XPathEvaluatorBase = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+  tmp = ((PyObject*)p->_node_stack);
+  p->_node_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_events);
+  p->_events = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_pop_event);
+  p->_pop_event = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__XPathEvaluatorBase = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree_iterwalk[] = {
+  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_8iterwalk_5__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__XPathEvaluatorBase = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
+static PyTypeObject __pyx_type_4lxml_5etree_iterwalk = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.iterwalk"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_iterwalk), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_iterwalk, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
+  0, /*tp_compare*/
+  #else
+  0, /*reserved*/
   #endif
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  __pyx_pw_4lxml_5etree_8iterwalk_3__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_8iterwalk_5__next__, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_iterwalk, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_8iterwalk_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_iterwalk, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
   #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__DomainErrorLog __pyx_vtable_4lxml_5etree__DomainErrorLog;
 
-static PyTypeObject __pyx_type_4lxml_5etree__XPathEvaluatorBase = {
+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 (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;
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__DomainErrorLog[] = {
+  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_15_DomainErrorLog_3receive, METH_O, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree__DomainErrorLog = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XPathEvaluatorBase"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._DomainErrorLog"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__DomainErrorLog), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ErrorLog, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -177563,35 +168553,43 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathEvaluatorBase = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number__XPathEvaluatorBase, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XPathEvaluatorBase, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XPathEvaluatorBase, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XPathEvaluatorBase, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__ErrorLog, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ErrorLog, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_9_ErrorLog_11__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XPathEvaluatorBase, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__DomainErrorLog, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__XPathEvaluatorBase, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_3__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_15_DomainErrorLog_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XPathEvaluatorBase, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__DomainErrorLog, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -177604,156 +168602,67 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathEvaluatorBase = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator __pyx_vtable_4lxml_5etree_XPathElementEvaluator;
+static struct __pyx_vtabstruct_4lxml_5etree_AttributeBasedElementClassLookup __pyx_vtable_4lxml_5etree_AttributeBasedElementClassLookup;
 
-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);
+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 (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);
+  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 (unlikely(__pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_XPathElementEvaluator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *p = (struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_AttributeBasedElementClassLookup(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *p = (struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_element);
+  Py_CLEAR(p->_class_mapping);
+  Py_CLEAR(p->_pytag);
   PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase(o);
+  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_XPathElementEvaluator(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_AttributeBasedElementClassLookup(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *p = (struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase(o, v, a); if (e) return e;
-  if (p->_element) {
-    e = (*v)(((PyObject*)p->_element), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *p = (struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o;
+  e = __pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup(o, v, a); if (e) return e;
+  if (p->_class_mapping) {
+    e = (*v)(p->_class_mapping, a); if (e) return e;
+  }
+  if (p->_pytag) {
+    e = (*v)(p->_pytag, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_XPathElementEvaluator(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *p = (struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)o;
+static int __pyx_tp_clear_4lxml_5etree_AttributeBasedElementClassLookup(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *p = (struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase(o);
-  tmp = ((PyObject*)p->_element);
-  p->_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup(o);
+  tmp = ((PyObject*)p->_class_mapping);
+  p->_class_mapping = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_pytag);
+  p->_pytag = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XPathElementEvaluator[] = {
-  {__Pyx_NAMESTR("register_namespace"), (PyCFunction)__pyx_pw_4lxml_5etree_21XPathElementEvaluator_3register_namespace, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21XPathElementEvaluator_2register_namespace)},
-  {__Pyx_NAMESTR("register_namespaces"), (PyCFunction)__pyx_pw_4lxml_5etree_21XPathElementEvaluator_5register_namespaces, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_21XPathElementEvaluator_4register_namespaces)},
+static PyMethodDef __pyx_methods_4lxml_5etree_AttributeBasedElementClassLookup[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_XPathElementEvaluator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_XPathElementEvaluator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_XPathElementEvaluator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_XPathElementEvaluator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_XPathElementEvaluator = {
+static PyTypeObject __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XPathElementEvaluator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XPathElementEvaluator), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.AttributeBasedElementClassLookup"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XPathElementEvaluator, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -177763,24 +168672,24 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPathElementEvaluator = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_XPathElementEvaluator, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XPathElementEvaluator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XPathElementEvaluator, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_21XPathElementEvaluator_7__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XPathElementEvaluator, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XPathElementEvaluator, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -177788,9 +168697,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPathElementEvaluator = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XPathElementEvaluator, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_AttributeBasedElementClassLookup, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -177803,125 +168712,119 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPathElementEvaluator = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XPathDocumentEvaluator __pyx_vtable_4lxml_5etree_XPathDocumentEvaluator;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree_DocInfo(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree_DocInfo *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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;
+  p = ((struct __pyx_obj_4lxml_5etree_DocInfo *)o);
+  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XPathDocumentEvaluator[] = {
-  {0, 0, 0, 0}
-};
+static void __pyx_tp_dealloc_4lxml_5etree_DocInfo(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_DocInfo *p = (struct __pyx_obj_4lxml_5etree_DocInfo *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_doc);
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number_XPathDocumentEvaluator = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static int __pyx_tp_traverse_4lxml_5etree_DocInfo(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree_DocInfo *p = (struct __pyx_obj_4lxml_5etree_DocInfo *)o;
+  if (p->_doc) {
+    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
+  }
+  return 0;
+}
 
-static PySequenceMethods __pyx_tp_as_sequence_XPathDocumentEvaluator = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static int __pyx_tp_clear_4lxml_5etree_DocInfo(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_DocInfo *p = (struct __pyx_obj_4lxml_5etree_DocInfo *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_doc);
+  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_XPathDocumentEvaluator = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_root_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_9root_name_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_public_id(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_9public_id_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_system_url(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_10system_url_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_xml_version(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_11xml_version_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_encoding(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_8encoding_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_standalone(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_10standalone_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_URL(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_3URL_1__get__(o);
+}
+
+static int __pyx_setprop_4lxml_5etree_7DocInfo_URL(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_7DocInfo_3URL_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
+  }
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_doctype(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_7doctype_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_internalDTD(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_11internalDTD_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_7DocInfo_externalDTD(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_7DocInfo_11externalDTD_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_DocInfo[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_XPathDocumentEvaluator = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_DocInfo[] = {
+  {(char *)"root_name", __pyx_getprop_4lxml_5etree_7DocInfo_root_name, 0, __Pyx_DOCSTR(__pyx_k_460), 0},
+  {(char *)"public_id", __pyx_getprop_4lxml_5etree_7DocInfo_public_id, 0, __Pyx_DOCSTR(__pyx_k_461), 0},
+  {(char *)"system_url", __pyx_getprop_4lxml_5etree_7DocInfo_system_url, 0, __Pyx_DOCSTR(__pyx_k_462), 0},
+  {(char *)"xml_version", __pyx_getprop_4lxml_5etree_7DocInfo_xml_version, 0, __Pyx_DOCSTR(__pyx_k_463), 0},
+  {(char *)"encoding", __pyx_getprop_4lxml_5etree_7DocInfo_encoding, 0, __Pyx_DOCSTR(__pyx_k_464), 0},
+  {(char *)"standalone", __pyx_getprop_4lxml_5etree_7DocInfo_standalone, 0, __Pyx_DOCSTR(__pyx_k_465), 0},
+  {(char *)"URL", __pyx_getprop_4lxml_5etree_7DocInfo_URL, __pyx_setprop_4lxml_5etree_7DocInfo_URL, __Pyx_DOCSTR(__pyx_k_466), 0},
+  {(char *)"doctype", __pyx_getprop_4lxml_5etree_7DocInfo_doctype, 0, __Pyx_DOCSTR(__pyx_k_467), 0},
+  {(char *)"internalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_internalDTD, 0, __Pyx_DOCSTR(__pyx_k_468), 0},
+  {(char *)"externalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_externalDTD, 0, __Pyx_DOCSTR(__pyx_k_469), 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_XPathDocumentEvaluator = {
+static PyTypeObject __pyx_type_4lxml_5etree_DocInfo = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XPathDocumentEvaluator"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XPathDocumentEvaluator), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.DocInfo"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_DocInfo), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XPathElementEvaluator, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_DocInfo, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -177931,34 +168834,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPathDocumentEvaluator = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_XPathDocumentEvaluator, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XPathDocumentEvaluator, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XPathDocumentEvaluator, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_3__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XPathDocumentEvaluator, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XPathDocumentEvaluator, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_DocInfo, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree_DocInfo, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XPathDocumentEvaluator, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_DocInfo, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -177971,175 +168874,91 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPathDocumentEvaluator = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XPath __pyx_vtable_4lxml_5etree_XPath;
 
-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);
+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;
+  o = (*t->tp_alloc)(t, 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 (unlikely(__pyx_pw_4lxml_5etree_5XPath_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+  p = ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o);
+  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_XPath(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XPath *p = (struct __pyx_obj_4lxml_5etree_XPath *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__DTDAttributeDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p = (struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o;
   PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_5XPath_7__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  Py_CLEAR(p->_path);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__XPathEvaluatorBase(o);
+  Py_CLEAR(p->_dtd);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_XPath(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__DTDAttributeDecl(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree_XPath *p = (struct __pyx_obj_4lxml_5etree_XPath *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__XPathEvaluatorBase(o, v, a); if (e) return e;
-  if (p->_path) {
-    e = (*v)(p->_path, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p = (struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o;
+  if (p->_dtd) {
+    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree_XPath(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XPath *p = (struct __pyx_obj_4lxml_5etree_XPath *)o;
+static int __pyx_tp_clear_4lxml_5etree__DTDAttributeDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p = (struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__XPathEvaluatorBase(o);
-  tmp = ((PyObject*)p->_path);
-  p->_path = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_dtd);
+  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_5XPath_path(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_5XPath_4path_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_4name_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XPath[] = {
-  {0, 0, 0, 0}
-};
+static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_elemname(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_8elemname_1__get__(o);
+}
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XPath[] = {
-  {(char *)"path", __pyx_getprop_4lxml_5etree_5XPath_path, 0, __Pyx_DOCSTR(__pyx_k_463), 0},
-  {0, 0, 0, 0, 0}
-};
+static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_prefix(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_6prefix_1__get__(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number_XPath = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_type(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_4type_1__get__(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence_XPath = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_7default_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_XPath = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default_value(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_13default_value_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__DTDAttributeDecl[] = {
+  {__Pyx_NAMESTR("itervalues"), (PyCFunction)__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_5itervalues, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_8values, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_XPath = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDAttributeDecl[] = {
+  {(char *)"name", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_name, 0, 0, 0},
+  {(char *)"elemname", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_elemname, 0, 0, 0},
+  {(char *)"prefix", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_prefix, 0, 0, 0},
+  {(char *)"type", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_type, 0, 0, 0},
+  {(char *)"default", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default, 0, 0, 0},
+  {(char *)"default_value", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default_value, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_XPath = {
+static PyTypeObject __pyx_type_4lxml_5etree__DTDAttributeDecl = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XPath"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XPath), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._DTDAttributeDecl"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__DTDAttributeDecl), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XPath, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__DTDAttributeDecl, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -178148,35 +168967,35 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPath = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_5XPath_9__repr__, /*tp_repr*/
-  &__pyx_tp_as_number_XPath, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XPath, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XPath, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_3__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_5XPath_5__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XPath, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  0, /*tp_doc*/
+  __pyx_tp_traverse_4lxml_5etree__DTDAttributeDecl, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__DTDAttributeDecl, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XPath, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__DTDAttributeDecl, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_XPath, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__DTDAttributeDecl, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_5XPath_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XPath, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__DTDAttributeDecl, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -178189,125 +169008,45 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPath = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_ETXPath __pyx_vtable_4lxml_5etree_ETXPath;
+static struct __pyx_vtabstruct_4lxml_5etree_XMLSchema __pyx_vtable_4lxml_5etree_XMLSchema;
 
-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);
+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 (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;
+  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 (unlikely(__pyx_pw_4lxml_5etree_9XMLSchema_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_ETXPath[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ETXPath = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ETXPath = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ETXPath = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+static void __pyx_tp_dealloc_4lxml_5etree_XMLSchema(PyObject *o) {
+  PyObject_GC_UnTrack(o);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_9XMLSchema_5__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
+  }
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree__Validator(o);
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_ETXPath = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree_XMLSchema[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_ETXPath = {
+static PyTypeObject __pyx_type_4lxml_5etree_XMLSchema = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.ETXPath"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_ETXPath), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.XMLSchema"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XMLSchema), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XPath, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_XMLSchema, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -178316,33 +169055,25 @@ static PyTypeObject __pyx_type_4lxml_5etree_ETXPath = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_5XPath_9__repr__, /*tp_repr*/
-  #else
   0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_ETXPath, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ETXPath, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ETXPath, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_5XPath_5__call__, /*tp_call*/
-  #else
-  0, /*tp_call*/
-  #endif
+  __pyx_pw_4lxml_5etree_9XMLSchema_7__call__, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ETXPath, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_ETXPath, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_XMLSchema, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -178350,9 +169081,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ETXPath = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_7ETXPath_1__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_9XMLSchema_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_ETXPath, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_XMLSchema, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -178365,154 +169096,136 @@ static PyTypeObject __pyx_type_4lxml_5etree_ETXPath = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext __pyx_vtable_4lxml_5etree__XSLTResolverContext;
+static struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator __pyx_vtable_4lxml_5etree__ElementMatchIterator;
 
-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);
+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;
+  o = (*t->tp_alloc)(t, 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);
+  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);
+  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__XSLTResolverContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTResolverContext *p = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ElementMatchIterator *p = (struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_parser);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__ResolverContext(o);
+  Py_CLEAR(p->_node);
+  Py_CLEAR(p->_matcher);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__XSLTResolverContext(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ElementMatchIterator(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__XSLTResolverContext *p = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__ResolverContext(o, v, a); if (e) return e;
-  if (p->_parser) {
-    e = (*v)(((PyObject*)p->_parser), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ElementMatchIterator *p = (struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)o;
+  if (p->_node) {
+    e = (*v)(((PyObject*)p->_node), a); if (e) return e;
+  }
+  if (p->_matcher) {
+    e = (*v)(((PyObject*)p->_matcher), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__XSLTResolverContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTResolverContext *p = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)o;
+static int __pyx_tp_clear_4lxml_5etree__ElementMatchIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ElementMatchIterator *p = (struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__ResolverContext(o);
-  tmp = ((PyObject*)p->_parser);
-  p->_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_node);
+  p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_matcher);
+  p->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__XSLTResolverContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__ElementMatchIterator[] = {
+  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__XSLTResolverContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree__ElementMatchIterator = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._ElementMatchIterator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ElementMatchIterator), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ElementMatchIterator, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__ElementMatchIterator, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_AncestorsIterator __pyx_vtable_4lxml_5etree_AncestorsIterator;
 
-static PySequenceMethods __pyx_tp_as_sequence__XSLTResolverContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__XSLTResolverContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__XSLTResolverContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
+  return o;
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_AncestorsIterator[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__XSLTResolverContext = {
+static PyTypeObject __pyx_type_4lxml_5etree_AncestorsIterator = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XSLTResolverContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XSLTResolverContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.AncestorsIterator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_AncestorsIterator), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__XSLTResolverContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -178522,24 +169235,32 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResolverContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__XSLTResolverContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XSLTResolverContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XSLTResolverContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XSLTResolverContext, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
+  #else
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XSLTResolverContext, /*tp_methods*/
+  #endif
+  __pyx_methods_4lxml_5etree_AncestorsIterator, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -178549,7 +169270,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResolverContext = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XSLTResolverContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_AncestorsIterator, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -178562,151 +169283,108 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResolverContext = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XSLTAccessControl __pyx_vtable_4lxml_5etree_XSLTAccessControl;
+static struct __pyx_vtabstruct_4lxml_5etree__IDDict __pyx_vtable_4lxml_5etree__IDDict;
 
-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;
+static PyObject *__pyx_tp_new_4lxml_5etree__IDDict(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__IDDict *p;
   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 (unlikely(__pyx_pw_4lxml_5etree_17XSLTAccessControl_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_7_IDDict_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_XSLTAccessControl(PyObject *o) {
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_17XSLTAccessControl_5__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
+static void __pyx_tp_dealloc_4lxml_5etree__IDDict(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__IDDict *p = (struct __pyx_obj_4lxml_5etree__IDDict *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_doc);
+  Py_CLEAR(p->_keys);
+  Py_CLEAR(p->_items);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_17XSLTAccessControl_options(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_17XSLTAccessControl_7options_1__get__(o);
+static int __pyx_tp_traverse_4lxml_5etree__IDDict(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__IDDict *p = (struct __pyx_obj_4lxml_5etree__IDDict *)o;
+  if (p->_doc) {
+    e = (*v)(((PyObject*)p->_doc), a); if (e) return e;
+  }
+  if (p->_keys) {
+    e = (*v)(p->_keys, a); if (e) return e;
+  }
+  if (p->_items) {
+    e = (*v)(p->_items, a); if (e) return e;
+  }
+  return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XSLTAccessControl[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XSLTAccessControl[] = {
-  {(char *)"options", __pyx_getprop_4lxml_5etree_17XSLTAccessControl_options, 0, __Pyx_DOCSTR(__pyx_k_464), 0},
-  {0, 0, 0, 0, 0}
-};
+static int __pyx_tp_clear_4lxml_5etree__IDDict(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__IDDict *p = (struct __pyx_obj_4lxml_5etree__IDDict *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_doc);
+  p->_doc = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_keys);
+  p->_keys = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_items);
+  p->_items = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+static PyObject *__pyx_sq_item_4lxml_5etree__IDDict(PyObject *o, Py_ssize_t i) {
+  PyObject *r;
+  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
+  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
+  Py_DECREF(x);
+  return r;
+}
 
-static PyNumberMethods __pyx_tp_as_number_XSLTAccessControl = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__IDDict[] = {
+  {__Pyx_NAMESTR("copy"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_3copy, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_7get, METH_O, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("has_key"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_11has_key, METH_O, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_15keys, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("iterkeys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_19iterkeys, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_23items, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("iteritems"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_25iteritems, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_27values, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("itervalues"), (PyCFunction)__pyx_pw_4lxml_5etree_7_IDDict_29itervalues, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_XSLTAccessControl = {
-  0, /*sq_length*/
+static PySequenceMethods __pyx_tp_as_sequence__IDDict = {
+  __pyx_pw_4lxml_5etree_7_IDDict_21__len__, /*sq_length*/
   0, /*sq_concat*/
   0, /*sq_repeat*/
-  0, /*sq_item*/
+  __pyx_sq_item_4lxml_5etree__IDDict, /*sq_item*/
   0, /*sq_slice*/
   0, /*sq_ass_item*/
   0, /*sq_ass_slice*/
-  0, /*sq_contains*/
+  __pyx_pw_4lxml_5etree_7_IDDict_9__contains__, /*sq_contains*/
   0, /*sq_inplace_concat*/
   0, /*sq_inplace_repeat*/
 };
 
-static PyMappingMethods __pyx_tp_as_mapping_XSLTAccessControl = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
+static PyMappingMethods __pyx_tp_as_mapping__IDDict = {
+  __pyx_pw_4lxml_5etree_7_IDDict_21__len__, /*mp_length*/
+  __pyx_pw_4lxml_5etree_7_IDDict_5__getitem__, /*mp_subscript*/
   0, /*mp_ass_subscript*/
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_XSLTAccessControl = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree_XSLTAccessControl = {
+static PyTypeObject __pyx_type_4lxml_5etree__IDDict = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XSLTAccessControl"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XSLTAccessControl), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._IDDict"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__IDDict), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XSLTAccessControl, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__IDDict, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -178715,35 +169393,35 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLTAccessControl = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_17XSLTAccessControl_7__repr__, /*tp_repr*/
-  &__pyx_tp_as_number_XSLTAccessControl, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XSLTAccessControl, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XSLTAccessControl, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_7_IDDict_13__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  &__pyx_tp_as_sequence__IDDict, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping__IDDict, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XSLTAccessControl, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_7_IDDict_17__iter__, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XSLTAccessControl, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__IDDict, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_XSLTAccessControl, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_17XSLTAccessControl_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XSLTAccessControl, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__IDDict, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -178756,165 +169434,60 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLTAccessControl = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XSLTContext __pyx_vtable_4lxml_5etree__XSLTContext;
+static struct __pyx_vtabstruct_4lxml_5etree_ElementNamespaceClassLookup __pyx_vtable_4lxml_5etree_ElementNamespaceClassLookup;
 
-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);
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_12_XSLTContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__XSLTContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTContext *p = (struct __pyx_obj_4lxml_5etree__XSLTContext *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_ElementNamespaceClassLookup(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_extension_element_proxy);
-  Py_CLEAR(p->_extension_elements);
+  Py_CLEAR(p->_namespace_registries);
   PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__BaseContext(o);
+  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__XSLTContext(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_ElementNamespaceClassLookup(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__XSLTContext *p = (struct __pyx_obj_4lxml_5etree__XSLTContext *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__BaseContext(o, v, a); if (e) return e;
-  if (p->_extension_element_proxy) {
-    e = (*v)(((PyObject*)p->_extension_element_proxy), a); if (e) return e;
-  }
-  if (p->_extension_elements) {
-    e = (*v)(p->_extension_elements, a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *)o;
+  e = __pyx_tp_traverse_4lxml_5etree_FallbackElementClassLookup(o, v, a); if (e) return e;
+  if (p->_namespace_registries) {
+    e = (*v)(p->_namespace_registries, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__XSLTContext(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTContext *p = (struct __pyx_obj_4lxml_5etree__XSLTContext *)o;
+static int __pyx_tp_clear_4lxml_5etree_ElementNamespaceClassLookup(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__BaseContext(o);
-  tmp = ((PyObject*)p->_extension_element_proxy);
-  p->_extension_element_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyElementProxy *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_extension_elements);
-  p->_extension_elements = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  __pyx_tp_clear_4lxml_5etree_FallbackElementClassLookup(o);
+  tmp = ((PyObject*)p->_namespace_registries);
+  p->_namespace_registries = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__XSLTContext[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_ElementNamespaceClassLookup[] = {
+  {__Pyx_NAMESTR("get_namespace"), (PyCFunction)__pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_5get_namespace, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_27ElementNamespaceClassLookup_4get_namespace)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__XSLTContext = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__XSLTContext = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__XSLTContext = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__XSLTContext = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree__XSLTContext = {
+static PyTypeObject __pyx_type_4lxml_5etree_ElementNamespaceClassLookup = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XSLTContext"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XSLTContext), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.ElementNamespaceClassLookup"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ElementNamespaceClassLookup), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__XSLTContext, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_ElementNamespaceClassLookup, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -178924,24 +169497,24 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTContext = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__XSLTContext, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XSLTContext, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XSLTContext, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XSLTContext, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XSLTContext, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_ElementNamespaceClassLookup, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -178949,9 +169522,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTContext = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_12_XSLTContext_3__init__, /*tp_init*/
+  __pyx_pw_4lxml_5etree_27ElementNamespaceClassLookup_3__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XSLTContext, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_ElementNamespaceClassLookup, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -178964,153 +169537,48 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTContext = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__AppendOnlyElementProxy __pyx_vtable_4lxml_5etree__AppendOnlyElementProxy;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__XSLTQuotedStringParam(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p;
-  PyObject *o;
-  o = (*t->tp_alloc)(t, 0);
+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__ReadOnlyElementProxy(t, a, k);
   if (unlikely(!o)) return 0;
-  p = ((struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o);
-  p->strval = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  if (unlikely(__pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(o, a, k) < 0)) {
-    Py_DECREF(o); o = 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 void __pyx_tp_dealloc_4lxml_5etree__XSLTQuotedStringParam(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p = (struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->strval);
-  (*Py_TYPE(o)->tp_free)(o);
+static PyObject *__pyx_getprop_4lxml_5etree_23_AppendOnlyElementProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_4text_1__get__(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__XSLTQuotedStringParam(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p = (struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o;
-  if (p->strval) {
-    e = (*v)(p->strval, a); if (e) return e;
+static int __pyx_setprop_4lxml_5etree_23_AppendOnlyElementProxy_text(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_4text_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
   }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree__XSLTQuotedStringParam(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *p = (struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->strval);
-  p->strval = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__XSLTQuotedStringParam[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__AppendOnlyElementProxy[] = {
+  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_1append, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_23_AppendOnlyElementProxy_append)},
+  {__Pyx_NAMESTR("extend"), (PyCFunction)__pyx_pw_4lxml_5etree_23_AppendOnlyElementProxy_3extend, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_23_AppendOnlyElementProxy_2extend)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__XSLTQuotedStringParam = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__XSLTQuotedStringParam = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__XSLTQuotedStringParam = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__XSLTQuotedStringParam = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+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_470), 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__XSLTQuotedStringParam = {
+static PyTypeObject __pyx_type_4lxml_5etree__AppendOnlyElementProxy = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XSLTQuotedStringParam"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._AppendOnlyElementProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__XSLTQuotedStringParam, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -179119,27 +169587,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTQuotedStringParam = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number__XSLTQuotedStringParam, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XSLTQuotedStringParam, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XSLTQuotedStringParam, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XSLTQuotedStringParam, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XSLTQuotedStringParam, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__AppendOnlyElementProxy, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__AppendOnlyElementProxy, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -179147,7 +169623,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTQuotedStringParam = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XSLTQuotedStringParam, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__AppendOnlyElementProxy, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -179160,203 +169636,148 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTQuotedStringParam = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XSLT __pyx_vtable_4lxml_5etree_XSLT;
+static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyEntityProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyEntityProxy;
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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__ModifyContentOnlyProxy(t, a, k);
   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 (unlikely(__pyx_pw_4lxml_5etree_4XSLT_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_XSLT(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XSLT *p = (struct __pyx_obj_4lxml_5etree_XSLT *)o;
-  PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_4XSLT_5__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  Py_CLEAR(p->_context);
-  Py_CLEAR(p->_xslt_resolver_context);
-  Py_CLEAR(p->_access_control);
-  Py_CLEAR(p->_error_log);
-  (*Py_TYPE(o)->tp_free)(o);
+static PyObject *__pyx_getprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_1__get__(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree_XSLT(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_5etree_XSLT *p = (struct __pyx_obj_4lxml_5etree_XSLT *)o;
-  if (p->_context) {
-    e = (*v)(((PyObject*)p->_context), a); if (e) return e;
-  }
-  if (p->_xslt_resolver_context) {
-    e = (*v)(((PyObject*)p->_xslt_resolver_context), a); if (e) return e;
-  }
-  if (p->_access_control) {
-    e = (*v)(((PyObject*)p->_access_control), a); if (e) return e;
+static int __pyx_setprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_3__set__(o, v);
   }
-  if (p->_error_log) {
-    e = (*v)(((PyObject*)p->_error_log), a); if (e) return e;
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
   }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree_XSLT(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree_XSLT *p = (struct __pyx_obj_4lxml_5etree_XSLT *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_context);
-  p->_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_xslt_resolver_context);
-  p->_xslt_resolver_context = ((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_access_control);
-  p->_access_control = ((struct __pyx_obj_4lxml_5etree_XSLTAccessControl *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_error_log);
-  p->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_4XSLT_error_log(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_4XSLT_9error_log_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XSLT[] = {
-  {__Pyx_NAMESTR("strparam"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_7strparam, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_6strparam)},
-  {__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)},
-  {__Pyx_NAMESTR("apply"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_11apply, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_10apply)},
-  {__Pyx_NAMESTR("tostring"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_13tostring, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_4XSLT_12tostring)},
-  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_15__deepcopy__, METH_O, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_4XSLT_17__copy__, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree__ModifyContentOnlyEntityProxy[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XSLT[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_4XSLT_error_log, 0, __Pyx_DOCSTR(__pyx_k_465), 0},
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ModifyContentOnlyEntityProxy[] = {
+  {(char *)"name", __pyx_getprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name, __pyx_setprop_4lxml_5etree_29_ModifyContentOnlyEntityProxy_name, 0, 0},
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_XSLT = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._ModifyContentOnlyEntityProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ModifyContentOnlyEntityProxy), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
+  #else
+  0, /*tp_repr*/
   #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
   #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ModifyContentOnlyEntityProxy, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree__ModifyContentOnlyEntityProxy, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__ModifyContentOnlyEntityProxy, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyEntityProxy __pyx_vtable_4lxml_5etree__ReadOnlyEntityProxy;
 
-static PySequenceMethods __pyx_tp_as_sequence_XSLT = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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 (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;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_XSLT = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyObject *__pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_20_ReadOnlyEntityProxy_4name_1__get__(o);
+}
+
+static int __pyx_setprop_4lxml_5etree_20_ReadOnlyEntityProxy_name(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_20_ReadOnlyEntityProxy_4name_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
+  }
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_20_ReadOnlyEntityProxy_4text_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyEntityProxy[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_XSLT = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyEntityProxy[] = {
+  {(char *)"name", __pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_name, __pyx_setprop_4lxml_5etree_20_ReadOnlyEntityProxy_name, 0, 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_20_ReadOnlyEntityProxy_text, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_XSLT = {
+static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyEntityProxy = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XSLT"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XSLT), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ReadOnlyEntityProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ReadOnlyEntityProxy), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XSLT, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -179365,35 +169786,43 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLT = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number_XSLT, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XSLT, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XSLT, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_4XSLT_19__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XSLT, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XSLT, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ReadOnlyEntityProxy, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_XSLT, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__ReadOnlyEntityProxy, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_4XSLT_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XSLT, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ReadOnlyEntityProxy, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -179406,185 +169835,65 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLT = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XSLTResultTree __pyx_vtable_4lxml_5etree__XSLTResultTree;
 
-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);
+static PyObject *__pyx_tp_new_4lxml_5etree__FileWriterElement(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__FileWriterElement *p;
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 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 (unlikely(__pyx_pw_4lxml_5etree_15_XSLTResultTree_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__XSLTResultTree(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTResultTree *p = (struct __pyx_obj_4lxml_5etree__XSLTResultTree *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__FileWriterElement(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__FileWriterElement *p = (struct __pyx_obj_4lxml_5etree__FileWriterElement *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_xslt);
-  Py_CLEAR(p->_profile);
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__ElementTree(o);
+  Py_CLEAR(p->_element);
+  Py_CLEAR(p->_writer);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__XSLTResultTree(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__FileWriterElement(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__XSLTResultTree *p = (struct __pyx_obj_4lxml_5etree__XSLTResultTree *)o;
-  e = __pyx_tp_traverse_4lxml_5etree__ElementTree(o, v, a); if (e) return e;
-  if (p->_xslt) {
-    e = (*v)(((PyObject*)p->_xslt), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__FileWriterElement *p = (struct __pyx_obj_4lxml_5etree__FileWriterElement *)o;
+  if (p->_element) {
+    e = (*v)(p->_element, a); if (e) return e;
   }
-  if (p->_profile) {
-    e = (*v)(((PyObject*)p->_profile), a); if (e) return e;
+  if (p->_writer) {
+    e = (*v)(((PyObject*)p->_writer), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__XSLTResultTree(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__XSLTResultTree *p = (struct __pyx_obj_4lxml_5etree__XSLTResultTree *)o;
+static int __pyx_tp_clear_4lxml_5etree__FileWriterElement(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__FileWriterElement *p = (struct __pyx_obj_4lxml_5etree__FileWriterElement *)o;
   PyObject* tmp;
-  __pyx_tp_clear_4lxml_5etree__ElementTree(o);
-  tmp = ((PyObject*)p->_xslt);
-  p->_xslt = ((struct __pyx_obj_4lxml_5etree_XSLT *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_element);
+  p->_element = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_profile);
-  p->_profile = ((struct LxmlDocument *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_writer);
+  p->_writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
-
-static PyObject *__pyx_getprop_4lxml_5etree_15_XSLTResultTree_xslt_profile(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_15_XSLTResultTree_12xslt_profile_1__get__(o);
-}
-
-static int __pyx_setprop_4lxml_5etree_15_XSLTResultTree_xslt_profile(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
-  if (v) {
-    PyErr_SetString(PyExc_NotImplementedError, "__set__");
-    return -1;
-  }
-  else {
-    return __pyx_pw_4lxml_5etree_15_XSLTResultTree_12xslt_profile_3__del__(o);
-  }
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__XSLTResultTree[] = {
-  {__Pyx_NAMESTR("__unicode__"), (PyCFunction)__pyx_pw_4lxml_5etree_15_XSLTResultTree_5__unicode__, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-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_466), 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__XSLTResultTree = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__XSLTResultTree = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__XSLTResultTree = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__XSLTResultTree = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  __pyx_pw_4lxml_5etree_15_XSLTResultTree_7__getbuffer__, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  __pyx_pw_4lxml_5etree_15_XSLTResultTree_9__releasebuffer__, /*bf_releasebuffer*/
-  #endif
+
+static PyMethodDef __pyx_methods_4lxml_5etree__FileWriterElement[] = {
+  {__Pyx_NAMESTR("__enter__"), (PyCFunction)__pyx_pw_4lxml_5etree_18_FileWriterElement_3__enter__, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("__exit__"), (PyCFunction)__pyx_pw_4lxml_5etree_18_FileWriterElement_5__exit__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__XSLTResultTree = {
+static PyTypeObject __pyx_type_4lxml_5etree__FileWriterElement = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XSLTResultTree"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XSLTResultTree), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._FileWriterElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__FileWriterElement), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__XSLTResultTree, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__FileWriterElement, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -179594,26 +169903,26 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResultTree = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number__XSLTResultTree, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XSLTResultTree, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XSLTResultTree, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
-  __pyx_pw_4lxml_5etree_15_XSLTResultTree_3__str__, /*tp_str*/
+  0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XSLTResultTree, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__FileWriterElement, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__FileWriterElement, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XSLTResultTree, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__FileWriterElement, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__XSLTResultTree, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -179621,7 +169930,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResultTree = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XSLTResultTree, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__FileWriterElement, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -179634,147 +169943,33 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResultTree = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree__XSLTProcessingInstruction __pyx_vtable_4lxml_5etree__XSLTProcessingInstruction;
 
-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_PIBase(t, a, k);
+static PyObject *__pyx_tp_new_4lxml_5etree__MemDebug(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 0);
   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;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__XSLTProcessingInstruction[] = {
-  {__Pyx_NAMESTR("parseXSL"), (PyCFunction)__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_1parseXSL, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL)},
-  {__Pyx_NAMESTR("set"), (PyCFunction)__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_3set, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_26_XSLTProcessingInstruction_2set)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__XSLTProcessingInstruction = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_37__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__XSLTProcessingInstruction = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_39__contains__, /*sq_contains*/
-  #else
-  0, /*sq_contains*/
-  #endif
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__XSLTProcessingInstruction = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
+static void __pyx_tp_dealloc_4lxml_5etree__MemDebug(PyObject *o) {
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__XSLTProcessingInstruction = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__MemDebug[] = {
+  {__Pyx_NAMESTR("bytes_used"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_1bytes_used, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_bytes_used)},
+  {__Pyx_NAMESTR("blocks_used"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_3blocks_used, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_2blocks_used)},
+  {__Pyx_NAMESTR("dict_size"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_5dict_size, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_4dict_size)},
+  {__Pyx_NAMESTR("dump"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_7dump, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_6dump)},
+  {__Pyx_NAMESTR("show"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_9show, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_8show)},
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__XSLTProcessingInstruction = {
+static PyTypeObject __pyx_type_4lxml_5etree__MemDebug = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._XSLTProcessingInstruction"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__XSLTProcessingInstruction), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._MemDebug"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__MemDebug), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__Element, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__MemDebug, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -179783,33 +169978,25 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTProcessingInstruction = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_22_ProcessingInstruction_1__repr__, /*tp_repr*/
-  #else
   0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number__XSLTProcessingInstruction, /*tp_as_number*/
-  &__pyx_tp_as_sequence__XSLTProcessingInstruction, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__XSLTProcessingInstruction, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__XSLTProcessingInstruction, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_8_Element_41__iter__, /*tp_iter*/
-  #else
   0, /*tp_iter*/
-  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__XSLTProcessingInstruction, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__MemDebug, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -179817,13 +170004,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTProcessingInstruction = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_5etree_6PIBase_1__init__, /*tp_init*/
-  #else
   0, /*tp_init*/
-  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__XSLTProcessingInstruction, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__MemDebug, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -179836,30 +170019,79 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTProcessingInstruction = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension __pyx_vtable_4lxml_5etree_XSLTExtension;
 
-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;
+static PyObject *__pyx_tp_new_4lxml_5etree__Attrib(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__Attrib *p;
   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;
+  p = ((struct __pyx_obj_4lxml_5etree__Attrib *)o);
+  p->_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  if (unlikely(__pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_XSLTExtension(PyObject *o) {
+static void __pyx_tp_dealloc_4lxml_5etree__Attrib(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__Attrib *p = (struct __pyx_obj_4lxml_5etree__Attrib *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_element);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_XSLTExtension[] = {
-  {__Pyx_NAMESTR("execute"), (PyCFunction)__pyx_pw_4lxml_5etree_13XSLTExtension_1execute, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13XSLTExtension_execute)},
-  {__Pyx_NAMESTR("apply_templates"), (PyCFunction)__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13XSLTExtension_2apply_templates)},
-  {__Pyx_NAMESTR("process_children"), (PyCFunction)__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_13XSLTExtension_4process_children)},
+static int __pyx_tp_traverse_4lxml_5etree__Attrib(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__Attrib *p = (struct __pyx_obj_4lxml_5etree__Attrib *)o;
+  if (p->_element) {
+    e = (*v)(((PyObject*)p->_element), a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_5etree__Attrib(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__Attrib *p = (struct __pyx_obj_4lxml_5etree__Attrib *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_element);
+  p->_element = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+static PyObject *__pyx_sq_item_4lxml_5etree__Attrib(PyObject *o, Py_ssize_t i) {
+  PyObject *r;
+  PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0;
+  r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);
+  Py_DECREF(x);
+  return r;
+}
+
+static int __pyx_mp_ass_subscript_4lxml_5etree__Attrib(PyObject *o, PyObject *i, PyObject *v) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_7_Attrib_3__setitem__(o, i, v);
+  }
+  else {
+    return __pyx_pw_4lxml_5etree_7_Attrib_5__delitem__(o, i);
+  }
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__Attrib[] = {
+  {__Pyx_NAMESTR("update"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_7update, METH_O, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("pop"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_9pop, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("clear"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_11clear, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("__copy__"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_15__copy__, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("__deepcopy__"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_17__deepcopy__, METH_O, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("get"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_25get, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("keys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_27keys, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("iterkeys"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_31iterkeys, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_33values, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("itervalues"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_35itervalues, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("items"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_37items, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("iteritems"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_39iteritems, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("has_key"), (PyCFunction)__pyx_pw_4lxml_5etree_7_Attrib_41has_key, METH_O, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_XSLTExtension = {
+static PyNumberMethods __pyx_tp_as_number__Attrib = {
   0, /*nb_add*/
   0, /*nb_subtract*/
   0, /*nb_multiply*/
@@ -179872,7 +170104,7 @@ static PyNumberMethods __pyx_tp_as_number_XSLTExtension = {
   0, /*nb_negative*/
   0, /*nb_positive*/
   0, /*nb_absolute*/
-  0, /*nb_nonzero*/
+  __pyx_pw_4lxml_5etree_7_Attrib_21__bool__, /*nb_nonzero*/
   0, /*nb_invert*/
   0, /*nb_lshift*/
   0, /*nb_rshift*/
@@ -179917,52 +170149,31 @@ static PyNumberMethods __pyx_tp_as_number_XSLTExtension = {
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_XSLTExtension = {
-  0, /*sq_length*/
+static PySequenceMethods __pyx_tp_as_sequence__Attrib = {
+  __pyx_pw_4lxml_5etree_7_Attrib_23__len__, /*sq_length*/
   0, /*sq_concat*/
   0, /*sq_repeat*/
-  0, /*sq_item*/
+  __pyx_sq_item_4lxml_5etree__Attrib, /*sq_item*/
   0, /*sq_slice*/
   0, /*sq_ass_item*/
   0, /*sq_ass_slice*/
-  0, /*sq_contains*/
+  __pyx_pw_4lxml_5etree_7_Attrib_43__contains__, /*sq_contains*/
   0, /*sq_inplace_concat*/
   0, /*sq_inplace_repeat*/
 };
 
-static PyMappingMethods __pyx_tp_as_mapping_XSLTExtension = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_XSLTExtension = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMappingMethods __pyx_tp_as_mapping__Attrib = {
+  __pyx_pw_4lxml_5etree_7_Attrib_23__len__, /*mp_length*/
+  __pyx_pw_4lxml_5etree_7_Attrib_19__getitem__, /*mp_subscript*/
+  __pyx_mp_ass_subscript_4lxml_5etree__Attrib, /*mp_ass_subscript*/
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_XSLTExtension = {
+static PyTypeObject __pyx_type_4lxml_5etree__Attrib = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.XSLTExtension"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_XSLTExtension), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._Attrib"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__Attrib), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_XSLTExtension, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__Attrib, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -179971,25 +170182,25 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLTExtension = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_XSLTExtension, /*tp_as_number*/
-  &__pyx_tp_as_sequence_XSLTExtension, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_XSLTExtension, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_7_Attrib_13__repr__, /*tp_repr*/
+  &__pyx_tp_as_number__Attrib, /*tp_as_number*/
+  &__pyx_tp_as_sequence__Attrib, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping__Attrib, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_XSLTExtension, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
+  0, /*tp_as_buffer*/
+  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*/
+  __pyx_pw_4lxml_5etree_7_Attrib_45__richcmp__, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
-  0, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_7_Attrib_29__iter__, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_XSLTExtension, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__Attrib, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -179999,7 +170210,7 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLTExtension = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_XSLTExtension, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__Attrib, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -180013,181 +170224,258 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLTExtension = {
   #endif
 };
 
-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;
-  o = (*t->tp_alloc)(t, 0);
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_22_DTDElementContentDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__DTDElementContentDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o;
+static void __pyx_tp_dealloc_4lxml_5etree_ElementDefaultClassLookup(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_dtd);
-  (*Py_TYPE(o)->tp_free)(o);
+  Py_CLEAR(p->element_class);
+  Py_CLEAR(p->comment_class);
+  Py_CLEAR(p->pi_class);
+  Py_CLEAR(p->entity_class);
+  PyObject_GC_Track(o);
+  __pyx_tp_dealloc_4lxml_5etree_ElementClassLookup(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__DTDElementContentDecl(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree_ElementDefaultClassLookup(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o;
-  if (p->_dtd) {
-    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)o;
+  e = ((likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) ? ((__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse) ? __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_traverse(o, v, a) : 0) : __Pyx_call_next_tp_traverse(o, v, a, __pyx_tp_traverse_4lxml_5etree_ElementDefaultClassLookup)); if (e) return e;
+  if (p->element_class) {
+    e = (*v)(p->element_class, a); if (e) return e;
+  }
+  if (p->comment_class) {
+    e = (*v)(p->comment_class, a); if (e) return e;
+  }
+  if (p->pi_class) {
+    e = (*v)(p->pi_class, a); if (e) return e;
+  }
+  if (p->entity_class) {
+    e = (*v)(p->entity_class, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__DTDElementContentDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementContentDecl *)o;
+static int __pyx_tp_clear_4lxml_5etree_ElementDefaultClassLookup(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *p = (struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_dtd);
-  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  if (likely(__pyx_ptype_4lxml_5etree_ElementClassLookup)) { if (__pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear) __pyx_ptype_4lxml_5etree_ElementClassLookup->tp_clear(o); } else __Pyx_call_next_tp_clear(o, __pyx_tp_clear_4lxml_5etree_ElementDefaultClassLookup);
+  tmp = ((PyObject*)p->element_class);
+  p->element_class = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->comment_class);
+  p->comment_class = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->pi_class);
+  p->pi_class = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->entity_class);
+  p->entity_class = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_4name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_type(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_4type_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_element_class(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_13element_class_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_occur(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_5occur_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_comment_class(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_13comment_class_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_left(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_4left_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_pi_class(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_8pi_class_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_right(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_5right_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_entity_class(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_12entity_class_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__DTDElementContentDecl[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_ElementDefaultClassLookup[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDElementContentDecl[] = {
-  {(char *)"name", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_name, 0, 0, 0},
-  {(char *)"type", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_type, 0, 0, 0},
-  {(char *)"occur", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_occur, 0, 0, 0},
-  {(char *)"left", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_left, 0, 0, 0},
-  {(char *)"right", __pyx_getprop_4lxml_5etree_22_DTDElementContentDecl_right, 0, 0, 0},
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_ElementDefaultClassLookup[] = {
+  {(char *)"element_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_element_class, 0, 0, 0},
+  {(char *)"comment_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_comment_class, 0, 0, 0},
+  {(char *)"pi_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_pi_class, 0, 0, 0},
+  {(char *)"entity_class", __pyx_getprop_4lxml_5etree_25ElementDefaultClassLookup_entity_class, 0, 0, 0},
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__DTDElementContentDecl = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_ElementDefaultClassLookup = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.ElementDefaultClassLookup"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ElementDefaultClassLookup), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_ElementDefaultClassLookup, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_ElementDefaultClassLookup, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree_ElementDefaultClassLookup, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_25ElementDefaultClassLookup_3__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_ElementDefaultClassLookup, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence__DTDElementContentDecl = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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 (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);
+  p->is_text = Py_None; Py_INCREF(Py_None);
+  p->is_attribute = Py_None; Py_INCREF(Py_None);
+  p->attrname = Py_None; Py_INCREF(Py_None);
+  return o;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__DTDElementContentDecl = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static void __pyx_tp_dealloc_4lxml_5etree__ElementUnicodeResult(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *p = (struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_parent);
+  Py_CLEAR(p->is_tail);
+  Py_CLEAR(p->is_text);
+  Py_CLEAR(p->is_attribute);
+  Py_CLEAR(p->attrname);
+  PyObject_GC_Track(o);
+  (&PyUnicode_Type)->tp_dealloc(o);
+}
+
+static int __pyx_tp_traverse_4lxml_5etree__ElementUnicodeResult(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *p = (struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)o;
+  if (!(&PyUnicode_Type)->tp_traverse); else { e = (&PyUnicode_Type)->tp_traverse(o,v,a); if (e) return e; }
+  if (p->_parent) {
+    e = (*v)(((PyObject*)p->_parent), a); if (e) return e;
+  }
+  if (p->is_tail) {
+    e = (*v)(p->is_tail, a); if (e) return e;
+  }
+  if (p->is_text) {
+    e = (*v)(p->is_text, a); if (e) return e;
+  }
+  if (p->is_attribute) {
+    e = (*v)(p->is_attribute, a); if (e) return e;
+  }
+  if (p->attrname) {
+    e = (*v)(p->attrname, a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_5etree__ElementUnicodeResult(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *p = (struct __pyx_obj_4lxml_5etree__ElementUnicodeResult *)o;
+  PyObject* tmp;
+  if (!(&PyUnicode_Type)->tp_clear); else (&PyUnicode_Type)->tp_clear(o);
+  tmp = ((PyObject*)p->_parent);
+  p->_parent = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->is_tail);
+  p->is_tail = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->is_text);
+  p->is_text = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->is_attribute);
+  p->is_attribute = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->attrname);
+  p->attrname = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_tail(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_7is_tail_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_7is_text_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_attribute(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_12is_attribute_1__get__(o);
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_attrname(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_21_ElementUnicodeResult_8attrname_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ElementUnicodeResult[] = {
+  {__Pyx_NAMESTR("getparent"), (PyCFunction)__pyx_pw_4lxml_5etree_21_ElementUnicodeResult_1getparent, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer__DTDElementContentDecl = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ElementUnicodeResult[] = {
+  {(char *)"is_tail", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_tail, 0, 0, 0},
+  {(char *)"is_text", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_text, 0, 0, 0},
+  {(char *)"is_attribute", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_is_attribute, 0, 0, 0},
+  {(char *)"attrname", __pyx_getprop_4lxml_5etree_21_ElementUnicodeResult_attrname, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__DTDElementContentDecl = {
+static PyTypeObject __pyx_type_4lxml_5etree__ElementUnicodeResult = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._DTDElementContentDecl"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__DTDElementContentDecl), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ElementUnicodeResult"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ElementUnicodeResult), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__DTDElementContentDecl, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementUnicodeResult, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -180196,27 +170484,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDElementContentDecl = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_22_DTDElementContentDecl_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__DTDElementContentDecl, /*tp_as_number*/
-  &__pyx_tp_as_sequence__DTDElementContentDecl, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__DTDElementContentDecl, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__DTDElementContentDecl, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__DTDElementContentDecl, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__DTDElementContentDecl, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__ElementUnicodeResult, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ElementUnicodeResult, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__DTDElementContentDecl, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ElementUnicodeResult, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__DTDElementContentDecl, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__ElementUnicodeResult, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -180224,7 +170512,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDElementContentDecl = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__DTDElementContentDecl, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ElementUnicodeResult, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -180237,189 +170525,307 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDElementContentDecl = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__ExsltRegExp __pyx_vtable_4lxml_5etree__ExsltRegExp;
 
-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;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_12_ExsltRegExp_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__DTDAttributeDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p = (struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ExsltRegExp(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ExsltRegExp *p = (struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_dtd);
+  Py_CLEAR(p->_compile_map);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__DTDAttributeDecl(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ExsltRegExp(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p = (struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o;
-  if (p->_dtd) {
-    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ExsltRegExp *p = (struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o;
+  if (p->_compile_map) {
+    e = (*v)(p->_compile_map, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__DTDAttributeDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *p = (struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)o;
+static int __pyx_tp_clear_4lxml_5etree__ExsltRegExp(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ExsltRegExp *p = (struct __pyx_obj_4lxml_5etree__ExsltRegExp *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_dtd);
-  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_compile_map);
+  p->_compile_map = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_4name_1__get__(o);
+static PyMethodDef __pyx_methods_4lxml_5etree__ExsltRegExp[] = {
+  {__Pyx_NAMESTR("test"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ExsltRegExp_3test, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("match"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ExsltRegExp_5match, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("replace"), (PyCFunction)__pyx_pw_4lxml_5etree_12_ExsltRegExp_7replace, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree__ExsltRegExp = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._ExsltRegExp"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ExsltRegExp), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ExsltRegExp, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
+  #if PY_MAJOR_VERSION < 3
+  0, /*tp_compare*/
+  #else
+  0, /*reserved*/
+  #endif
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__ExsltRegExp, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__ExsltRegExp, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
+  #endif
+};
+
+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;
+  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);
+  p->namespace = Py_None; Py_INCREF(Py_None);
+  return o;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_elemname(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_8elemname_1__get__(o);
+static void __pyx_tp_dealloc_4lxml_5etree_QName(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_QName *p = (struct __pyx_obj_4lxml_5etree_QName *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->text);
+  Py_CLEAR(p->localname);
+  Py_CLEAR(p->namespace);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_prefix(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_6prefix_1__get__(o);
+static int __pyx_tp_traverse_4lxml_5etree_QName(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_5etree_QName *p = (struct __pyx_obj_4lxml_5etree_QName *)o;
+  if (p->text) {
+    e = (*v)(p->text, a); if (e) return e;
+  }
+  if (p->localname) {
+    e = (*v)(p->localname, a); if (e) return e;
+  }
+  if (p->namespace) {
+    e = (*v)(p->namespace, a); if (e) return e;
+  }
+  return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_type(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_4type_1__get__(o);
+static int __pyx_tp_clear_4lxml_5etree_QName(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree_QName *p = (struct __pyx_obj_4lxml_5etree_QName *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->text);
+  p->text = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->localname);
+  p->localname = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->namespace);
+  p->namespace = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_7default_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_5QName_text(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_5QName_4text_1__get__(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default_value(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_13default_value_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_5etree_5QName_localname(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_5QName_9localname_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__DTDAttributeDecl[] = {
-  {__Pyx_NAMESTR("itervalues"), (PyCFunction)__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_5itervalues, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("values"), (PyCFunction)__pyx_pw_4lxml_5etree_17_DTDAttributeDecl_8values, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyObject *__pyx_getprop_4lxml_5etree_5QName_namespace(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_5QName_9namespace_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_QName[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDAttributeDecl[] = {
-  {(char *)"name", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_name, 0, 0, 0},
-  {(char *)"elemname", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_elemname, 0, 0, 0},
-  {(char *)"prefix", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_prefix, 0, 0, 0},
-  {(char *)"type", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_type, 0, 0, 0},
-  {(char *)"default", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default, 0, 0, 0},
-  {(char *)"default_value", __pyx_getprop_4lxml_5etree_17_DTDAttributeDecl_default_value, 0, 0, 0},
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_QName[] = {
+  {(char *)"text", __pyx_getprop_4lxml_5etree_5QName_text, 0, 0, 0},
+  {(char *)"localname", __pyx_getprop_4lxml_5etree_5QName_localname, 0, 0, 0},
+  {(char *)"namespace", __pyx_getprop_4lxml_5etree_5QName_namespace, 0, 0, 0},
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__DTDAttributeDecl = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_QName = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.QName"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_QName), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_QName, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_5QName_5__hash__, /*tp_hash*/
+  0, /*tp_call*/
+  __pyx_pw_4lxml_5etree_5QName_3__str__, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  __pyx_pw_4lxml_5etree_5QName_7__richcmp__, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_QName, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree_QName, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_5QName_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_QName, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence__DTDAttributeDecl = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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 PyMappingMethods __pyx_tp_as_mapping__DTDAttributeDecl = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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;
+  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;
+  return o;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__DTDAttributeDecl = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_3_iterentities(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->__pyx_v_node);
+  Py_CLEAR(p->__pyx_v_self);
+  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) {
+  int e;
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o;
+  if (p->__pyx_v_node) {
+    e = (*v)(((PyObject*)p->__pyx_v_node), a); if (e) return e;
+  }
+  if (p->__pyx_v_self) {
+    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_3_iterentities(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->__pyx_v_node);
+  p->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->__pyx_v_self);
+  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct_3_iterentities[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__DTDAttributeDecl = {
+static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._DTDAttributeDecl"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__DTDAttributeDecl), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct_3_iterentities"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__DTDAttributeDecl, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -180428,27 +170834,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDAttributeDecl = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_17_DTDAttributeDecl_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__DTDAttributeDecl, /*tp_as_number*/
-  &__pyx_tp_as_sequence__DTDAttributeDecl, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__DTDAttributeDecl, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__DTDAttributeDecl, /*tp_as_buffer*/
-  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_as_buffer*/
+  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__DTDAttributeDecl, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__DTDAttributeDecl, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__DTDAttributeDecl, /*tp_methods*/
+  __pyx_methods_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__DTDAttributeDecl, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -180456,7 +170862,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDAttributeDecl = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__DTDAttributeDecl, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -180469,179 +170875,125 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDAttributeDecl = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__TempStore __pyx_vtable_4lxml_5etree__TempStore;
 
-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;
+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;
   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 (unlikely(__pyx_pw_4lxml_5etree_15_DTDElementDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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);
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__DTDElementDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDElementDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__TempStore(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__TempStore *p = (struct __pyx_obj_4lxml_5etree__TempStore *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_dtd);
+  Py_CLEAR(p->_storage);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__DTDElementDecl(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__TempStore(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__DTDElementDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o;
-  if (p->_dtd) {
-    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__TempStore *p = (struct __pyx_obj_4lxml_5etree__TempStore *)o;
+  if (p->_storage) {
+    e = (*v)(p->_storage, a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__DTDElementDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDElementDecl *p = (struct __pyx_obj_4lxml_5etree__DTDElementDecl *)o;
+static int __pyx_tp_clear_4lxml_5etree__TempStore(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__TempStore *p = (struct __pyx_obj_4lxml_5etree__TempStore *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_dtd);
-  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_storage);
+  p->_storage = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_4name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_prefix(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_6prefix_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_type(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_4type_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_15_DTDElementDecl_content(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_15_DTDElementDecl_7content_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__DTDElementDecl[] = {
-  {__Pyx_NAMESTR("iterattributes"), (PyCFunction)__pyx_pw_4lxml_5etree_15_DTDElementDecl_5iterattributes, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("attributes"), (PyCFunction)__pyx_pw_4lxml_5etree_15_DTDElementDecl_8attributes, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree__TempStore[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDElementDecl[] = {
-  {(char *)"name", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_name, 0, 0, 0},
-  {(char *)"prefix", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_prefix, 0, 0, 0},
-  {(char *)"type", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_type, 0, 0, 0},
-  {(char *)"content", __pyx_getprop_4lxml_5etree_15_DTDElementDecl_content, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__DTDElementDecl = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree__TempStore = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._TempStore"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__TempStore), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__TempStore, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__TempStore, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_10_TempStore_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__TempStore, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence__DTDElementDecl = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 0);
+  if (unlikely(!o)) return 0;
+  return o;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping__DTDElementDecl = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+static void __pyx_tp_dealloc_4lxml_5etree__OpaqueNodeWrapper(PyObject *o) {
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__DTDElementDecl = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__OpaqueNodeWrapper[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__DTDElementDecl = {
+static PyTypeObject __pyx_type_4lxml_5etree__OpaqueNodeWrapper = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._DTDElementDecl"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__DTDElementDecl), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._OpaqueNodeWrapper"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__DTDElementDecl, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__OpaqueNodeWrapper, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -180650,35 +171002,35 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDElementDecl = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_15_DTDElementDecl_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__DTDElementDecl, /*tp_as_number*/
-  &__pyx_tp_as_sequence__DTDElementDecl, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__DTDElementDecl, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__DTDElementDecl, /*tp_as_buffer*/
-  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_as_buffer*/
+  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/
   0, /*tp_doc*/
-  __pyx_tp_traverse_4lxml_5etree__DTDElementDecl, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__DTDElementDecl, /*tp_clear*/
+  0, /*tp_traverse*/
+  0, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__DTDElementDecl, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__OpaqueNodeWrapper, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__DTDElementDecl, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_18_OpaqueNodeWrapper_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__DTDElementDecl, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -180691,172 +171043,153 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDElementDecl = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__FilelikeWriter __pyx_vtable_4lxml_5etree__FilelikeWriter;
 
-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;
+static PyObject *__pyx_tp_new_4lxml_5etree__FilelikeWriter(PyTypeObject *t, PyObject *a, PyObject *k) {
+  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p;
   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 (unlikely(__pyx_pw_4lxml_5etree_14_DTDEntityDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_15_FilelikeWriter_1__cinit__(o, a, k) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__DTDEntityDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p = (struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__FilelikeWriter(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p = (struct __pyx_obj_4lxml_5etree__FilelikeWriter *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_dtd);
+  Py_CLEAR(p->_filelike);
+  Py_CLEAR(p->_close_filelike);
+  Py_CLEAR(p->_exc_context);
+  Py_CLEAR(p->error_log);
   (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree__DTDEntityDecl(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__FilelikeWriter(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p = (struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o;
-  if (p->_dtd) {
-    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p = (struct __pyx_obj_4lxml_5etree__FilelikeWriter *)o;
+  if (p->_filelike) {
+    e = (*v)(p->_filelike, a); if (e) return e;
+  }
+  if (p->_close_filelike) {
+    e = (*v)(p->_close_filelike, a); if (e) return e;
+  }
+  if (p->_exc_context) {
+    e = (*v)(((PyObject*)p->_exc_context), a); if (e) return e;
+  }
+  if (p->error_log) {
+    e = (*v)(((PyObject*)p->error_log), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree__DTDEntityDecl(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p = (struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o;
+static int __pyx_tp_clear_4lxml_5etree__FilelikeWriter(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__FilelikeWriter *p = (struct __pyx_obj_4lxml_5etree__FilelikeWriter *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->_dtd);
-  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_filelike);
+  p->_filelike = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_close_filelike);
+  p->_close_filelike = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_exc_context);
+  p->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->error_log);
+  p->error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_14_DTDEntityDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_14_DTDEntityDecl_4name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_14_DTDEntityDecl_orig(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_14_DTDEntityDecl_4orig_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_14_DTDEntityDecl_content(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_14_DTDEntityDecl_7content_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree__DTDEntityDecl[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__FilelikeWriter[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDEntityDecl[] = {
-  {(char *)"name", __pyx_getprop_4lxml_5etree_14_DTDEntityDecl_name, 0, 0, 0},
-  {(char *)"orig", __pyx_getprop_4lxml_5etree_14_DTDEntityDecl_orig, 0, 0, 0},
-  {(char *)"content", __pyx_getprop_4lxml_5etree_14_DTDEntityDecl_content, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__DTDEntityDecl = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree__FilelikeWriter = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._FilelikeWriter"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__FilelikeWriter), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__FilelikeWriter, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__FilelikeWriter, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__FilelikeWriter, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__OpaqueDocumentWrapper __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper;
 
-static PySequenceMethods __pyx_tp_as_sequence__DTDEntityDecl = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__DTDEntityDecl = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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 (unlikely(!o)) return 0;
+  p = ((struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper;
+  return o;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer__DTDEntityDecl = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__OpaqueDocumentWrapper[] = {
+  {__Pyx_NAMESTR("append"), (PyCFunction)__pyx_pw_4lxml_5etree_22_OpaqueDocumentWrapper_1append, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_OpaqueDocumentWrapper_append)},
+  {__Pyx_NAMESTR("extend"), (PyCFunction)__pyx_pw_4lxml_5etree_22_OpaqueDocumentWrapper_3extend, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_22_OpaqueDocumentWrapper_2extend)},
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__DTDEntityDecl = {
+static PyTypeObject __pyx_type_4lxml_5etree__OpaqueDocumentWrapper = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._DTDEntityDecl"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__DTDEntityDecl), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._OpaqueDocumentWrapper"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__DTDEntityDecl, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__OpaqueNodeWrapper, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -180865,35 +171198,39 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDEntityDecl = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_5etree_14_DTDEntityDecl_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number__DTDEntityDecl, /*tp_as_number*/
-  &__pyx_tp_as_sequence__DTDEntityDecl, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__DTDEntityDecl, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__DTDEntityDecl, /*tp_as_buffer*/
-  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_as_buffer*/
+  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER, /*tp_flags*/
   0, /*tp_doc*/
-  __pyx_tp_traverse_4lxml_5etree__DTDEntityDecl, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree__DTDEntityDecl, /*tp_clear*/
+  0, /*tp_traverse*/
+  0, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__DTDEntityDecl, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__OpaqueDocumentWrapper, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree__DTDEntityDecl, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_18_OpaqueNodeWrapper_1__init__, /*tp_init*/
+  #else
   0, /*tp_init*/
+  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__DTDEntityDecl, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__OpaqueDocumentWrapper, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -180906,27 +171243,27 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDEntityDecl = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_DTD __pyx_vtable_4lxml_5etree_DTD;
+static struct __pyx_vtabstruct_4lxml_5etree_Schematron __pyx_vtable_4lxml_5etree_Schematron;
 
-static PyObject *__pyx_tp_new_4lxml_5etree_DTD(PyTypeObject *t, PyObject *a, PyObject *k) {
-  struct __pyx_obj_4lxml_5etree_DTD *p;
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_3DTD_1__cinit__(o, __pyx_empty_tuple, NULL) < 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 (unlikely(__pyx_pw_4lxml_5etree_10Schematron_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_DTD(PyObject *o) {
+static void __pyx_tp_dealloc_4lxml_5etree_Schematron(PyObject *o) {
   PyObject_GC_UnTrack(o);
   {
     PyObject *etype, *eval, *etb;
     PyErr_Fetch(&etype, &eval, &etb);
     ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_3DTD_15__dealloc__(o);
+    __pyx_pw_4lxml_5etree_10Schematron_5__dealloc__(o);
     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
     --Py_REFCNT(o);
     PyErr_Restore(etype, eval, etb);
@@ -180935,137 +171272,87 @@ static void __pyx_tp_dealloc_4lxml_5etree_DTD(PyObject *o) {
   __pyx_tp_dealloc_4lxml_5etree__Validator(o);
 }
 
-static PyObject *__pyx_getprop_4lxml_5etree_3DTD_name(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_3DTD_4name_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_3DTD_external_id(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_3DTD_11external_id_1__get__(o);
-}
-
-static PyObject *__pyx_getprop_4lxml_5etree_3DTD_system_url(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_5etree_3DTD_10system_url_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_DTD[] = {
-  {__Pyx_NAMESTR("iterelements"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_5iterelements, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("elements"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_8elements, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("iterentities"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_10iterentities, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("entities"), (PyCFunction)__pyx_pw_4lxml_5etree_3DTD_13entities, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_5etree_Schematron[] = {
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_5etree_DTD[] = {
-  {(char *)"name", __pyx_getprop_4lxml_5etree_3DTD_name, 0, 0, 0},
-  {(char *)"external_id", __pyx_getprop_4lxml_5etree_3DTD_external_id, 0, 0, 0},
-  {(char *)"system_url", __pyx_getprop_4lxml_5etree_3DTD_system_url, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_DTD = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_Schematron = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.Schematron"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_Schematron), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_Schematron, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  __pyx_pw_4lxml_5etree_10Schematron_7__call__, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_Schematron, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_10Schematron_3__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_Schematron, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_DTD = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_tp_new_4lxml_5etree__ErrorLogContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
+  PyObject *o;
+  o = (*t->tp_alloc)(t, 0);
+  if (unlikely(!o)) return 0;
+  return o;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_DTD = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+static void __pyx_tp_dealloc_4lxml_5etree__ErrorLogContext(PyObject *o) {
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_DTD = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__ErrorLogContext[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_DTD = {
+static PyTypeObject __pyx_type_4lxml_5etree__ErrorLogContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.DTD"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_DTD), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ErrorLogContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ErrorLogContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_DTD, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ErrorLogContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -181075,34 +171362,34 @@ static PyTypeObject __pyx_type_4lxml_5etree_DTD = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_DTD, /*tp_as_number*/
-  &__pyx_tp_as_sequence_DTD, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_DTD, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_3DTD_17__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_DTD, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_DTD, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ErrorLogContext, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_5etree_DTD, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_3DTD_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_DTD, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ErrorLogContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -181115,143 +171402,126 @@ static PyTypeObject __pyx_type_4lxml_5etree_DTD = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_RelaxNG __pyx_vtable_4lxml_5etree_RelaxNG;
+static struct __pyx_vtabstruct_4lxml_5etree_XSLTAccessControl __pyx_vtable_4lxml_5etree_XSLTAccessControl;
 
-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);
+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;
+  o = (*t->tp_alloc)(t, 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 (unlikely(__pyx_pw_4lxml_5etree_7RelaxNG_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+  p = ((struct __pyx_obj_4lxml_5etree_XSLTAccessControl *)o);
+  p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree_XSLTAccessControl;
+  if (unlikely(__pyx_pw_4lxml_5etree_17XSLTAccessControl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_RelaxNG(PyObject *o) {
-  PyObject_GC_UnTrack(o);
+static void __pyx_tp_dealloc_4lxml_5etree_XSLTAccessControl(PyObject *o) {
   {
     PyObject *etype, *eval, *etb;
     PyErr_Fetch(&etype, &eval, &etb);
     ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_7RelaxNG_5__dealloc__(o);
+    __pyx_pw_4lxml_5etree_17XSLTAccessControl_5__dealloc__(o);
     if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
     --Py_REFCNT(o);
     PyErr_Restore(etype, eval, etb);
   }
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__Validator(o);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree_RelaxNG[] = {
+static PyObject *__pyx_getprop_4lxml_5etree_17XSLTAccessControl_options(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_17XSLTAccessControl_7options_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree_XSLTAccessControl[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_RelaxNG = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XSLTAccessControl[] = {
+  {(char *)"options", __pyx_getprop_4lxml_5etree_17XSLTAccessControl_options, 0, __Pyx_DOCSTR(__pyx_k_471), 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_5etree_XSLTAccessControl = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.XSLTAccessControl"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_XSLTAccessControl), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree_XSLTAccessControl, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  __pyx_pw_4lxml_5etree_17XSLTAccessControl_7__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_XSLTAccessControl, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_5etree_XSLTAccessControl, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_17XSLTAccessControl_3__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_XSLTAccessControl, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator __pyx_vtable_4lxml_5etree_SiblingsIterator;
 
-static PySequenceMethods __pyx_tp_as_sequence_RelaxNG = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_RelaxNG = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
+  return o;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_RelaxNG = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree_SiblingsIterator[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_RelaxNG = {
+static PyTypeObject __pyx_type_4lxml_5etree_SiblingsIterator = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.RelaxNG"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_RelaxNG), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.SiblingsIterator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_SiblingsIterator), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_RelaxNG, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -181261,24 +171531,32 @@ static PyTypeObject __pyx_type_4lxml_5etree_RelaxNG = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_RelaxNG, /*tp_as_number*/
-  &__pyx_tp_as_sequence_RelaxNG, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_RelaxNG, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_7RelaxNG_7__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_RelaxNG, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
+  #else
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_RelaxNG, /*tp_methods*/
+  #endif
+  __pyx_methods_4lxml_5etree_SiblingsIterator, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -181286,9 +171564,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_RelaxNG = {
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_7RelaxNG_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_RelaxNG, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_SiblingsIterator, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -181301,143 +171579,116 @@ static PyTypeObject __pyx_type_4lxml_5etree_RelaxNG = {
   0, /*tp_version_tag*/
   #endif
 };
-static struct __pyx_vtabstruct_4lxml_5etree_Schematron __pyx_vtable_4lxml_5etree_Schematron;
+static struct __pyx_vtabstruct_4lxml_5etree_HTMLParser __pyx_vtable_4lxml_5etree_HTMLParser;
 
-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);
+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__FeedParser(t, a, k);
   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 (unlikely(__pyx_pw_4lxml_5etree_10Schematron_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
-    Py_DECREF(o); o = 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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree_Schematron(PyObject *o) {
-  PyObject_GC_UnTrack(o);
-  {
-    PyObject *etype, *eval, *etb;
-    PyErr_Fetch(&etype, &eval, &etb);
-    ++Py_REFCNT(o);
-    __pyx_pw_4lxml_5etree_10Schematron_5__dealloc__(o);
-    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
-    --Py_REFCNT(o);
-    PyErr_Restore(etype, eval, etb);
-  }
-  PyObject_GC_Track(o);
-  __pyx_tp_dealloc_4lxml_5etree__Validator(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree_Schematron[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_HTMLParser[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_Schematron = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_HTMLParser = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.HTMLParser"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_HTMLParser), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__BaseParser, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree_HTMLParser, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_5etree_10HTMLParser_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_HTMLParser, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyPIProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyPIProxy;
 
-static PySequenceMethods __pyx_tp_as_sequence_Schematron = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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__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;
+}
+
+static PyObject *__pyx_getprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_25_ModifyContentOnlyPIProxy_6target_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_Schematron = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static int __pyx_setprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_25_ModifyContentOnlyPIProxy_6target_3__set__(o, v);
+  }
+  else {
+    PyErr_SetString(PyExc_NotImplementedError, "__del__");
+    return -1;
+  }
+}
+
+static PyMethodDef __pyx_methods_4lxml_5etree__ModifyContentOnlyPIProxy[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_Schematron = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ModifyContentOnlyPIProxy[] = {
+  {(char *)"target", __pyx_getprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target, __pyx_setprop_4lxml_5etree_25_ModifyContentOnlyPIProxy_target, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree_Schematron = {
+static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.Schematron"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree_Schematron), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ModifyContentOnlyPIProxy"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ModifyContentOnlyPIProxy), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree_Schematron, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ReadOnlyProxy, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -181446,35 +171697,43 @@ static PyTypeObject __pyx_type_4lxml_5etree_Schematron = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_3__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number_Schematron, /*tp_as_number*/
-  &__pyx_tp_as_sequence_Schematron, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_Schematron, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_5etree_10Schematron_7__call__, /*tp_call*/
+  0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_Schematron, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_14_ReadOnlyProxy_15__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree_Schematron, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ModifyContentOnlyPIProxy, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__ModifyContentOnlyPIProxy, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_5etree_10Schematron_3__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree_Schematron, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ModifyContentOnlyPIProxy, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -181487,131 +171746,50 @@ static PyTypeObject __pyx_type_4lxml_5etree_Schematron = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__ClassNamespaceRegistry __pyx_vtable_4lxml_5etree__ClassNamespaceRegistry;
 
-static PyObject *__pyx_tp_new_4lxml_5etree__MemDebug(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
-  PyObject *o;
-  o = (*t->tp_alloc)(t, 0);
+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 (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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree__MemDebug(PyObject *o) {
-  (*Py_TYPE(o)->tp_free)(o);
+static int __pyx_mp_ass_subscript_4lxml_5etree__ClassNamespaceRegistry(PyObject *o, PyObject *i, PyObject *v) {
+  if (v) {
+    return __pyx_pw_4lxml_5etree_23_ClassNamespaceRegistry_1__setitem__(o, i, v);
+  }
+  else {
+    if (__pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping && __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript)
+      return __pyx_ptype_4lxml_5etree__NamespaceRegistry->tp_as_mapping->mp_ass_subscript(o, i, v);
+    PyErr_Format(PyExc_NotImplementedError,
+      "Subscript deletion not supported by %s", Py_TYPE(o)->tp_name);
+    return -1;
+  }
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree__MemDebug[] = {
-  {__Pyx_NAMESTR("bytes_used"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_1bytes_used, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_bytes_used)},
-  {__Pyx_NAMESTR("blocks_used"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_3blocks_used, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_2blocks_used)},
-  {__Pyx_NAMESTR("dict_size"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_5dict_size, METH_NOARGS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_4dict_size)},
-  {__Pyx_NAMESTR("dump"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_7dump, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_6dump)},
-  {__Pyx_NAMESTR("show"), (PyCFunction)__pyx_pw_4lxml_5etree_9_MemDebug_9show, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_9_MemDebug_8show)},
+static PyMethodDef __pyx_methods_4lxml_5etree__ClassNamespaceRegistry[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number__MemDebug = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__MemDebug = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__MemDebug = {
+static PyMappingMethods __pyx_tp_as_mapping__ClassNamespaceRegistry = {
   0, /*mp_length*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_5__getitem__, /*mp_subscript*/
+  #else
   0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__MemDebug = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
   #endif
+  __pyx_mp_ass_subscript_4lxml_5etree__ClassNamespaceRegistry, /*mp_ass_subscript*/
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree__MemDebug = {
+static PyTypeObject __pyx_type_4lxml_5etree__ClassNamespaceRegistry = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree._MemDebug"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree__MemDebug), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ClassNamespaceRegistry"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ClassNamespaceRegistry), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree__MemDebug, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__NamespaceRegistry, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -181620,25 +171798,29 @@ static PyTypeObject __pyx_type_4lxml_5etree__MemDebug = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number__MemDebug, /*tp_as_number*/
-  &__pyx_tp_as_sequence__MemDebug, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__MemDebug, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_23_ClassNamespaceRegistry_3__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  &__pyx_tp_as_mapping__ClassNamespaceRegistry, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__MemDebug, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_18_NamespaceRegistry_9__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree__MemDebug, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ClassNamespaceRegistry, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -181648,7 +171830,7 @@ static PyTypeObject __pyx_type_4lxml_5etree__MemDebug = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree__MemDebug, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ClassNamespaceRegistry, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -181661,164 +171843,66 @@ static PyTypeObject __pyx_type_4lxml_5etree__MemDebug = {
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__ParserSchemaValidationContext __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext;
 
-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;
+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;
-  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;
+  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 (unlikely(__pyx_pw_4lxml_5etree_30_ParserSchemaValidationContext_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
   }
-  p = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o);
-  p->__pyx_v_self = 0;
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct__itervalues(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__ParserSchemaValidationContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *p = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->__pyx_v_self);
-  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);
+  {
+    PyObject *etype, *eval, *etb;
+    PyErr_Fetch(&etype, &eval, &etb);
+    ++Py_REFCNT(o);
+    __pyx_pw_4lxml_5etree_30_ParserSchemaValidationContext_3__dealloc__(o);
+    if (PyErr_Occurred()) PyErr_WriteUnraisable(o);
+    --Py_REFCNT(o);
+    PyErr_Restore(etype, eval, etb);
   }
+  Py_CLEAR(p->_schema);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct__itervalues(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__ParserSchemaValidationContext(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o;
-  if (p->__pyx_v_self) {
-    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *p = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)o;
+  if (p->_schema) {
+    e = (*v)(((PyObject*)p->_schema), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct__itervalues(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *)o;
+static int __pyx_tp_clear_4lxml_5etree__ParserSchemaValidationContext(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *p = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->__pyx_v_self);
-  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_schema);
+  p->_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct__itervalues[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__ParserSchemaValidationContext[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number___pyx_scope_struct__itervalues = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence___pyx_scope_struct__itervalues = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping___pyx_scope_struct__itervalues = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer___pyx_scope_struct__itervalues = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct__itervalues = {
+static PyTypeObject __pyx_type_4lxml_5etree__ParserSchemaValidationContext = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct__itervalues"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._ParserSchemaValidationContext"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ParserSchemaValidationContext, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -181828,24 +171912,24 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct__itervalues = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number___pyx_scope_struct__itervalues, /*tp_as_number*/
-  &__pyx_tp_as_sequence___pyx_scope_struct__itervalues, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping___pyx_scope_struct__itervalues, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer___pyx_scope_struct__itervalues, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
+  __pyx_tp_traverse_4lxml_5etree__ParserSchemaValidationContext, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ParserSchemaValidationContext, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__ParserSchemaValidationContext, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -181855,7 +171939,7 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct__itervalues = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree___pyx_scope_struct__itervalues, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__ParserSchemaValidationContext, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -181869,171 +171953,73 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct__itervalues = {
   #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;
+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;
-  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;
+  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 (unlikely(__pyx_pw_4lxml_5etree_14_DTDEntityDecl_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
   }
-  p = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o);
-  p->__pyx_v_node = 0;
-  p->__pyx_v_self = 0;
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__DTDEntityDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p = (struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->__pyx_v_node);
-  Py_CLEAR(p->__pyx_v_self);
-  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);
-  }
+  Py_CLEAR(p->_dtd);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__DTDEntityDecl(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o;
-  if (p->__pyx_v_node) {
-    e = (*v)(((PyObject*)p->__pyx_v_node), a); if (e) return e;
-  }
-  if (p->__pyx_v_self) {
-    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p = (struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o;
+  if (p->_dtd) {
+    e = (*v)(((PyObject*)p->_dtd), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_1_iterattributes(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *)o;
+static int __pyx_tp_clear_4lxml_5etree__DTDEntityDecl(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__DTDEntityDecl *p = (struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->__pyx_v_node);
-  p->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->__pyx_v_self);
-  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_dtd);
+  p->_dtd = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct_1_iterattributes[] = {
-  {0, 0, 0, 0}
-};
+static PyObject *__pyx_getprop_4lxml_5etree_14_DTDEntityDecl_name(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_14_DTDEntityDecl_4name_1__get__(o);
+}
 
-static PyNumberMethods __pyx_tp_as_number___pyx_scope_struct_1_iterattributes = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
+static PyObject *__pyx_getprop_4lxml_5etree_14_DTDEntityDecl_orig(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_14_DTDEntityDecl_4orig_1__get__(o);
+}
 
-static PySequenceMethods __pyx_tp_as_sequence___pyx_scope_struct_1_iterattributes = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+static PyObject *__pyx_getprop_4lxml_5etree_14_DTDEntityDecl_content(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_5etree_14_DTDEntityDecl_7content_1__get__(o);
+}
 
-static PyMappingMethods __pyx_tp_as_mapping___pyx_scope_struct_1_iterattributes = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
+static PyMethodDef __pyx_methods_4lxml_5etree__DTDEntityDecl[] = {
+  {0, 0, 0, 0}
 };
 
-static PyBufferProcs __pyx_tp_as_buffer___pyx_scope_struct_1_iterattributes = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static struct PyGetSetDef __pyx_getsets_4lxml_5etree__DTDEntityDecl[] = {
+  {(char *)"name", __pyx_getprop_4lxml_5etree_14_DTDEntityDecl_name, 0, 0, 0},
+  {(char *)"orig", __pyx_getprop_4lxml_5etree_14_DTDEntityDecl_orig, 0, 0, 0},
+  {(char *)"content", __pyx_getprop_4lxml_5etree_14_DTDEntityDecl_content, 0, 0, 0},
+  {0, 0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes = {
+static PyTypeObject __pyx_type_4lxml_5etree__DTDEntityDecl = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct_1_iterattributes"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._DTDEntityDecl"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__DTDEntityDecl), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__DTDEntityDecl, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -182042,27 +172028,27 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number___pyx_scope_struct_1_iterattributes, /*tp_as_number*/
-  &__pyx_tp_as_sequence___pyx_scope_struct_1_iterattributes, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping___pyx_scope_struct_1_iterattributes, /*tp_as_mapping*/
+  __pyx_pw_4lxml_5etree_14_DTDEntityDecl_3__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer___pyx_scope_struct_1_iterattributes, /*tp_as_buffer*/
-  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+  0, /*tp_as_buffer*/
+  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___pyx_scope_struct_1_iterattributes, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__DTDEntityDecl, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__DTDEntityDecl, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__DTDEntityDecl, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_5etree__DTDEntityDecl, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -182070,7 +172056,7 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree___pyx_scope_struct_1_iterattributes, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__DTDEntityDecl, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -182084,171 +172070,126 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes
   #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;
+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;
-  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;
+  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;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_2_iterelements(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o;
+static void __pyx_tp_dealloc_4lxml_5etree__AttribIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__AttribIterator *p = (struct __pyx_obj_4lxml_5etree__AttribIterator *)o;
   PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->__pyx_v_node);
-  Py_CLEAR(p->__pyx_v_self);
-  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);
-  }
+  Py_CLEAR(p->_node);
+  (*Py_TYPE(o)->tp_free)(o);
 }
 
-static int __pyx_tp_traverse_4lxml_5etree___pyx_scope_struct_2_iterelements(PyObject *o, visitproc v, void *a) {
+static int __pyx_tp_traverse_4lxml_5etree__AttribIterator(PyObject *o, visitproc v, void *a) {
   int e;
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o;
-  if (p->__pyx_v_node) {
-    e = (*v)(((PyObject*)p->__pyx_v_node), a); if (e) return e;
-  }
-  if (p->__pyx_v_self) {
-    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
+  struct __pyx_obj_4lxml_5etree__AttribIterator *p = (struct __pyx_obj_4lxml_5etree__AttribIterator *)o;
+  if (p->_node) {
+    e = (*v)(((PyObject*)p->_node), a); if (e) return e;
   }
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_2_iterelements(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *)o;
+static int __pyx_tp_clear_4lxml_5etree__AttribIterator(PyObject *o) {
+  struct __pyx_obj_4lxml_5etree__AttribIterator *p = (struct __pyx_obj_4lxml_5etree__AttribIterator *)o;
   PyObject* tmp;
-  tmp = ((PyObject*)p->__pyx_v_node);
-  p->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->__pyx_v_self);
-  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
+  tmp = ((PyObject*)p->_node);
+  p->_node = ((struct LxmlElement *)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
 
-static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct_2_iterelements[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree__AttribIterator[] = {
+  {__Pyx_NAMESTR("__next__"), (PyCFunction)__pyx_pw_4lxml_5etree_15_AttribIterator_3__next__, METH_NOARGS|METH_COEXIST, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number___pyx_scope_struct_2_iterelements = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree__AttribIterator = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree._AttribIterator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__AttribIterator), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__AttribIterator, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  __pyx_pw_4lxml_5etree_15_AttribIterator_1__iter__, /*tp_iter*/
+  __pyx_pw_4lxml_5etree_15_AttribIterator_3__next__, /*tp_iternext*/
+  __pyx_methods_4lxml_5etree__AttribIterator, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree__AttribIterator, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_PythonElementClassLookup __pyx_vtable_4lxml_5etree_PythonElementClassLookup;
 
-static PySequenceMethods __pyx_tp_as_sequence___pyx_scope_struct_2_iterelements = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping___pyx_scope_struct_2_iterelements = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_24PythonElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
+    Py_DECREF(o); o = 0;
+  }
+  return o;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer___pyx_scope_struct_2_iterelements = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree_PythonElementClassLookup[] = {
+  {__Pyx_NAMESTR("lookup"), (PyCFunction)__pyx_pw_4lxml_5etree_24PythonElementClassLookup_3lookup, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_5etree_24PythonElementClassLookup_2lookup)},
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements = {
+static PyTypeObject __pyx_type_4lxml_5etree_PythonElementClassLookup = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct_2_iterelements"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree.PythonElementClassLookup"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_PythonElementClassLookup), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree_FallbackElementClassLookup, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -182258,24 +172199,24 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements =
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number___pyx_scope_struct_2_iterelements, /*tp_as_number*/
-  &__pyx_tp_as_sequence___pyx_scope_struct_2_iterelements, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping___pyx_scope_struct_2_iterelements, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer___pyx_scope_struct_2_iterelements, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_methods*/
+  __pyx_methods_4lxml_5etree_PythonElementClassLookup, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -182283,9 +172224,13 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements =
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_26FallbackElementClassLookup_3__init__, /*tp_init*/
+  #else
   0, /*tp_init*/
+  #endif
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree___pyx_scope_struct_2_iterelements, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree_PythonElementClassLookup, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -182298,172 +172243,109 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements =
   0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree_ElementChildIterator __pyx_vtable_4lxml_5etree_ElementChildIterator;
 
-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;
-  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;
+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 (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 (unlikely(__pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(o, a, k) < 0)) {
+    Py_DECREF(o); o = 0;
   }
-  p = ((struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o);
-  p->__pyx_v_node = 0;
-  p->__pyx_v_self = 0;
   return o;
 }
 
-static void __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_3_iterentities(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->__pyx_v_node);
-  Py_CLEAR(p->__pyx_v_self);
-  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) {
-  int e;
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o;
-  if (p->__pyx_v_node) {
-    e = (*v)(((PyObject*)p->__pyx_v_node), a); if (e) return e;
-  }
-  if (p->__pyx_v_self) {
-    e = (*v)(((PyObject*)p->__pyx_v_self), a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_3_iterentities(PyObject *o) {
-  struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *p = (struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->__pyx_v_node);
-  p->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->__pyx_v_self);
-  p->__pyx_v_self = ((struct __pyx_obj_4lxml_5etree_DTD *)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_5etree___pyx_scope_struct_3_iterentities[] = {
+static PyMethodDef __pyx_methods_4lxml_5etree_ElementChildIterator[] = {
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number___pyx_scope_struct_3_iterentities = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_5etree_ElementChildIterator = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.etree.ElementChildIterator"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree_ElementChildIterator), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_5etree__ElementMatchIterator, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__, /*tp_iter*/
+  #else
+  0, /*tp_iter*/
   #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__, /*tp_iternext*/
+  #else
+  0, /*tp_iternext*/
   #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  __pyx_methods_4lxml_5etree_ElementChildIterator, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_5etree_ElementChildIterator, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
+static struct __pyx_vtabstruct_4lxml_5etree__RotatingErrorLog __pyx_vtable_4lxml_5etree__RotatingErrorLog;
 
-static PySequenceMethods __pyx_tp_as_sequence___pyx_scope_struct_3_iterentities = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping___pyx_scope_struct_3_iterentities = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+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 (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;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer___pyx_scope_struct_3_iterentities = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyMethodDef __pyx_methods_4lxml_5etree__RotatingErrorLog[] = {
+  {__Pyx_NAMESTR("receive"), (PyCFunction)__pyx_pw_4lxml_5etree_17_RotatingErrorLog_3receive, METH_O, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities = {
+static PyTypeObject __pyx_type_4lxml_5etree__RotatingErrorLog = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.etree.__pyx_scope_struct_3_iterentities"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.etree._RotatingErrorLog"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_5etree__RotatingErrorLog), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_5etree__ErrorLog, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -182472,25 +172354,33 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities =
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_13_ListErrorLog_7__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number___pyx_scope_struct_3_iterentities, /*tp_as_number*/
-  &__pyx_tp_as_sequence___pyx_scope_struct_3_iterentities, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping___pyx_scope_struct_3_iterentities, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer___pyx_scope_struct_3_iterentities, /*tp_as_buffer*/
-  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+  0, /*tp_as_buffer*/
+  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___pyx_scope_struct_3_iterentities, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_5etree__ErrorLog, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_5etree__ErrorLog, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_5etree_9_ErrorLog_11__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_methods*/
+  __pyx_methods_4lxml_5etree__RotatingErrorLog, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -182498,9 +172388,9 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities =
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  0, /*tp_init*/
+  __pyx_pw_4lxml_5etree_17_RotatingErrorLog_1__init__, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_5etree___pyx_scope_struct_3_iterentities, /*tp_new*/
+  __pyx_tp_new_4lxml_5etree__RotatingErrorLog, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -182526,7 +172416,7 @@ static struct PyModuleDef __pyx_moduledef = {
     PyModuleDef_HEAD_INIT,
   #endif
     __Pyx_NAMESTR("etree"),
-    __Pyx_DOCSTR(__pyx_k_467), /* m_doc */
+    __Pyx_DOCSTR(__pyx_k_472), /* m_doc */
     -1, /* m_size */
     __pyx_methods /* m_methods */,
     NULL, /* m_reload */
@@ -182569,42 +172459,42 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_kp_u_147, __pyx_k_147, sizeof(__pyx_k_147), 0, 1, 0, 0},
   {&__pyx_kp_u_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 1, 0, 0},
   {&__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_s_152, __pyx_k_152, sizeof(__pyx_k_152), 0, 0, 1, 0},
+  {&__pyx_kp_u_154, __pyx_k_154, sizeof(__pyx_k_154), 0, 1, 0, 0},
+  {&__pyx_n_s_155, __pyx_k_155, sizeof(__pyx_k_155), 0, 0, 1, 1},
   {&__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_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_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_160, __pyx_k_160, sizeof(__pyx_k_160), 0, 1, 0, 0},
+  {&__pyx_kp_s_161, __pyx_k_161, sizeof(__pyx_k_161), 0, 0, 1, 0},
+  {&__pyx_kp_u_162, __pyx_k_162, sizeof(__pyx_k_162), 0, 1, 0, 0},
+  {&__pyx_n_u_163, __pyx_k_163, sizeof(__pyx_k_163), 0, 1, 0, 1},
   {&__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_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_n_s_174, __pyx_k_174, sizeof(__pyx_k_174), 0, 0, 1, 1},
+  {&__pyx_kp_u_174, __pyx_k_174, sizeof(__pyx_k_174), 0, 1, 0, 0},
   {&__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_n_s_176, __pyx_k_176, sizeof(__pyx_k_176), 0, 0, 1, 1},
   {&__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_179, __pyx_k_179, sizeof(__pyx_k_179), 0, 1, 0, 0},
   {&__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_n_s_180, __pyx_k_180, sizeof(__pyx_k_180), 0, 0, 1, 1},
   {&__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_184, __pyx_k_184, sizeof(__pyx_k_184), 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_21, __pyx_k_21, sizeof(__pyx_k_21), 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},
@@ -182613,43 +172503,43 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__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_229, __pyx_k_229, sizeof(__pyx_k_229), 0, 1, 0, 0},
   {&__pyx_kp_u_23, __pyx_k_23, sizeof(__pyx_k_23), 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_232, __pyx_k_232, sizeof(__pyx_k_232), 0, 1, 0, 0},
   {&__pyx_kp_u_24, __pyx_k_24, sizeof(__pyx_k_24), 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_243, __pyx_k_243, sizeof(__pyx_k_243), 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_u_249, __pyx_k_249, sizeof(__pyx_k_249), 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_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_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_b_255, __pyx_k_255, sizeof(__pyx_k_255), 0, 0, 0, 0},
+  {&__pyx_kp_s_256, __pyx_k_256, sizeof(__pyx_k_256), 0, 0, 1, 0},
+  {&__pyx_kp_u_259, __pyx_k_259, sizeof(__pyx_k_259), 0, 1, 0, 0},
+  {&__pyx_kp_s_261, __pyx_k_261, sizeof(__pyx_k_261), 0, 0, 1, 0},
+  {&__pyx_kp_s_265, __pyx_k_265, sizeof(__pyx_k_265), 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_s_272, __pyx_k_272, sizeof(__pyx_k_272), 0, 0, 1, 0},
+  {&__pyx_kp_s_274, __pyx_k_274, sizeof(__pyx_k_274), 0, 0, 1, 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_278, __pyx_k_278, sizeof(__pyx_k_278), 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_s_294, __pyx_k_294, sizeof(__pyx_k_294), 0, 0, 1, 0},
+  {&__pyx_kp_u_293, __pyx_k_293, sizeof(__pyx_k_293), 0, 1, 0, 0},
+  {&__pyx_kp_s_295, __pyx_k_295, sizeof(__pyx_k_295), 0, 0, 1, 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_303, __pyx_k_303, sizeof(__pyx_k_303), 0, 1, 0, 0},
+  {&__pyx_kp_u_301, __pyx_k_301, sizeof(__pyx_k_301), 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_u_306, __pyx_k_306, sizeof(__pyx_k_306), 0, 1, 0, 0},
   {&__pyx_kp_s_309, __pyx_k_309, sizeof(__pyx_k_309), 0, 0, 1, 0},
-  {&__pyx_kp_u_310, __pyx_k_310, sizeof(__pyx_k_310), 0, 1, 0, 0},
+  {&__pyx_kp_s_310, __pyx_k_310, sizeof(__pyx_k_310), 0, 0, 1, 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},
@@ -182657,37 +172547,37 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__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_318, __pyx_k_318, sizeof(__pyx_k_318), 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_u_324, __pyx_k_324, sizeof(__pyx_k_324), 0, 1, 0, 0},
+  {&__pyx_kp_b_322, __pyx_k_322, sizeof(__pyx_k_322), 0, 0, 0, 0},
+  {&__pyx_kp_u_323, __pyx_k_323, sizeof(__pyx_k_323), 0, 1, 0, 0},
+  {&__pyx_kp_s_324, __pyx_k_324, sizeof(__pyx_k_324), 0, 0, 1, 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_329, __pyx_k_329, sizeof(__pyx_k_329), 0, 1, 0, 0},
+  {&__pyx_n_s_330, __pyx_k_330, sizeof(__pyx_k_330), 0, 0, 1, 1},
   {&__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_332, __pyx_k_332, sizeof(__pyx_k_332), 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_335, __pyx_k_335, sizeof(__pyx_k_335), 0, 1, 0, 0},
+  {&__pyx_kp_s_338, __pyx_k_338, sizeof(__pyx_k_338), 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_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_356, __pyx_k_356, sizeof(__pyx_k_356), 0, 1, 0, 0},
-  {&__pyx_kp_u_358, __pyx_k_358, sizeof(__pyx_k_358), 0, 1, 0, 0},
-  {&__pyx_kp_s_359, __pyx_k_359, sizeof(__pyx_k_359), 0, 0, 1, 0},
+  {&__pyx_kp_u_355, __pyx_k_355, sizeof(__pyx_k_355), 0, 1, 0, 0},
+  {&__pyx_kp_u_357, __pyx_k_357, sizeof(__pyx_k_357), 0, 1, 0, 0},
+  {&__pyx_kp_u_359, __pyx_k_359, sizeof(__pyx_k_359), 0, 1, 0, 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_s_360, __pyx_k_360, sizeof(__pyx_k_360), 0, 0, 1, 0},
+  {&__pyx_kp_s_364, __pyx_k_364, sizeof(__pyx_k_364), 0, 0, 1, 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_367, __pyx_k_367, sizeof(__pyx_k_367), 0, 1, 0, 0},
+  {&__pyx_kp_b_369, __pyx_k_369, sizeof(__pyx_k_369), 0, 0, 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},
@@ -182696,63 +172586,59 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__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_376, __pyx_k_376, sizeof(__pyx_k_376), 0, 1, 0, 0},
+  {&__pyx_kp_s_379, __pyx_k_379, sizeof(__pyx_k_379), 0, 0, 1, 0},
   {&__pyx_kp_s_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 0, 1, 0},
+  {&__pyx_kp_u_383, __pyx_k_383, sizeof(__pyx_k_383), 0, 1, 0, 0},
   {&__pyx_kp_u_384, __pyx_k_384, sizeof(__pyx_k_384), 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_u_389, __pyx_k_389, sizeof(__pyx_k_389), 0, 1, 0, 0},
   {&__pyx_kp_s_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 0, 1, 0},
-  {&__pyx_kp_u_391, __pyx_k_391, sizeof(__pyx_k_391), 0, 1, 0, 0},
-  {&__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_s_395, __pyx_k_395, sizeof(__pyx_k_395), 0, 0, 1, 0},
+  {&__pyx_kp_u_390, __pyx_k_390, sizeof(__pyx_k_390), 0, 1, 0, 0},
+  {&__pyx_kp_s_391, __pyx_k_391, sizeof(__pyx_k_391), 0, 0, 1, 0},
+  {&__pyx_kp_s_392, __pyx_k_392, sizeof(__pyx_k_392), 0, 0, 1, 0},
+  {&__pyx_kp_s_393, __pyx_k_393, sizeof(__pyx_k_393), 0, 0, 1, 0},
+  {&__pyx_kp_s_394, __pyx_k_394, sizeof(__pyx_k_394), 0, 0, 1, 0},
   {&__pyx_kp_u_396, __pyx_k_396, sizeof(__pyx_k_396), 0, 1, 0, 0},
+  {&__pyx_kp_u_398, __pyx_k_398, sizeof(__pyx_k_398), 0, 1, 0, 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_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_s_400, __pyx_k_400, sizeof(__pyx_k_400), 0, 0, 1, 0},
+  {&__pyx_kp_u_401, __pyx_k_401, sizeof(__pyx_k_401), 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_407, __pyx_k_407, sizeof(__pyx_k_407), 0, 1, 0, 0},
   {&__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_kp_b_411, __pyx_k_411, sizeof(__pyx_k_411), 0, 0, 0, 0},
+  {&__pyx_kp_u_410, __pyx_k_410, sizeof(__pyx_k_410), 0, 1, 0, 0},
   {&__pyx_kp_u_411, __pyx_k_411, sizeof(__pyx_k_411), 0, 1, 0, 0},
-  {&__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_n_s_415, __pyx_k_415, sizeof(__pyx_k_415), 0, 0, 1, 1},
+  {&__pyx_kp_s_412, __pyx_k_412, sizeof(__pyx_k_412), 0, 0, 1, 0},
+  {&__pyx_n_s_413, __pyx_k_413, sizeof(__pyx_k_413), 0, 0, 1, 1},
+  {&__pyx_kp_u_414, __pyx_k_414, sizeof(__pyx_k_414), 0, 1, 0, 0},
+  {&__pyx_kp_b_416, __pyx_k_416, sizeof(__pyx_k_416), 0, 0, 0, 0},
   {&__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_417, __pyx_k_417, sizeof(__pyx_k_417), 0, 1, 0, 0},
   {&__pyx_kp_u_418, __pyx_k_418, sizeof(__pyx_k_418), 0, 1, 0, 0},
+  {&__pyx_kp_s_419, __pyx_k_419, sizeof(__pyx_k_419), 0, 0, 1, 0},
   {&__pyx_kp_u_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 1, 0, 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_kp_u_421, __pyx_k_421, sizeof(__pyx_k_421), 0, 1, 0, 0},
+  {&__pyx_kp_s_422, __pyx_k_422, sizeof(__pyx_k_422), 0, 0, 1, 0},
+  {&__pyx_kp_u_423, __pyx_k_423, sizeof(__pyx_k_423), 0, 1, 0, 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_u_427, __pyx_k_427, sizeof(__pyx_k_427), 0, 1, 0, 0},
+  {&__pyx_kp_s_428, __pyx_k_428, sizeof(__pyx_k_428), 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_430, __pyx_k_430, sizeof(__pyx_k_430), 0, 0, 1, 1},
+  {&__pyx_kp_u_431, __pyx_k_431, sizeof(__pyx_k_431), 0, 1, 0, 0},
+  {&__pyx_kp_b_432, __pyx_k_432, sizeof(__pyx_k_432), 0, 0, 0, 0},
+  {&__pyx_n_s_433, __pyx_k_433, sizeof(__pyx_k_433), 0, 0, 1, 1},
+  {&__pyx_kp_s_434, __pyx_k_434, sizeof(__pyx_k_434), 0, 0, 1, 0},
+  {&__pyx_kp_b_435, __pyx_k_435, sizeof(__pyx_k_435), 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_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_kp_u_473, __pyx_k_473, sizeof(__pyx_k_473), 0, 1, 0, 0},
   {&__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},
@@ -182761,75 +172647,75 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_n_s_479, __pyx_k_479, sizeof(__pyx_k_479), 0, 0, 1, 1},
   {&__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_n_s_481, __pyx_k_481, sizeof(__pyx_k_481), 0, 0, 1, 1},
+  {&__pyx_n_s_482, __pyx_k_482, sizeof(__pyx_k_482), 0, 0, 1, 1},
+  {&__pyx_n_s_483, __pyx_k_483, sizeof(__pyx_k_483), 0, 0, 1, 1},
+  {&__pyx_n_s_484, __pyx_k_484, sizeof(__pyx_k_484), 0, 0, 1, 1},
+  {&__pyx_n_s_485, __pyx_k_485, sizeof(__pyx_k_485), 0, 0, 1, 1},
   {&__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_490, __pyx_k_490, sizeof(__pyx_k_490), 0, 0, 0, 0},
+  {&__pyx_kp_b_491, __pyx_k_491, sizeof(__pyx_k_491), 0, 0, 0, 0},
+  {&__pyx_kp_b_492, __pyx_k_492, sizeof(__pyx_k_492), 0, 0, 0, 0},
+  {&__pyx_kp_b_493, __pyx_k_493, sizeof(__pyx_k_493), 0, 0, 0, 0},
+  {&__pyx_kp_b_494, __pyx_k_494, sizeof(__pyx_k_494), 0, 0, 0, 0},
+  {&__pyx_kp_s_498, __pyx_k_498, sizeof(__pyx_k_498), 0, 0, 1, 0},
+  {&__pyx_n_s_499, __pyx_k_499, sizeof(__pyx_k_499), 0, 0, 1, 1},
   {&__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_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_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_n_s_503, __pyx_k_503, sizeof(__pyx_k_503), 0, 0, 1, 1},
+  {&__pyx_kp_s_504, __pyx_k_504, sizeof(__pyx_k_504), 0, 0, 1, 0},
+  {&__pyx_kp_s_505, __pyx_k_505, sizeof(__pyx_k_505), 0, 0, 1, 0},
+  {&__pyx_kp_s_506, __pyx_k_506, sizeof(__pyx_k_506), 0, 0, 1, 0},
+  {&__pyx_kp_u_507, __pyx_k_507, sizeof(__pyx_k_507), 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_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_s_516, __pyx_k_516, sizeof(__pyx_k_516), 0, 0, 1, 0},
+  {&__pyx_kp_s_517, __pyx_k_517, sizeof(__pyx_k_517), 0, 0, 1, 0},
+  {&__pyx_kp_s_518, __pyx_k_518, sizeof(__pyx_k_518), 0, 0, 1, 0},
+  {&__pyx_kp_s_519, __pyx_k_519, sizeof(__pyx_k_519), 0, 0, 1, 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_530, __pyx_k_530, sizeof(__pyx_k_530), 0, 1, 0, 0},
   {&__pyx_kp_u_531, __pyx_k_531, sizeof(__pyx_k_531), 0, 1, 0, 0},
+  {&__pyx_kp_u_532, __pyx_k_532, sizeof(__pyx_k_532), 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_u_534, __pyx_k_534, sizeof(__pyx_k_534), 0, 1, 0, 0},
+  {&__pyx_kp_u_536, __pyx_k_536, sizeof(__pyx_k_536), 0, 1, 0, 0},
+  {&__pyx_kp_u_538, __pyx_k_538, sizeof(__pyx_k_538), 0, 1, 0, 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_574, __pyx_k_574, sizeof(__pyx_k_574), 0, 0, 1, 0},
+  {&__pyx_kp_s_575, __pyx_k_575, sizeof(__pyx_k_575), 0, 0, 1, 0},
   {&__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_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_581, __pyx_k_581, sizeof(__pyx_k_581), 0, 0, 1, 0},
+  {&__pyx_n_s_582, __pyx_k_582, sizeof(__pyx_k_582), 0, 0, 1, 1},
+  {&__pyx_kp_s_583, __pyx_k_583, sizeof(__pyx_k_583), 0, 0, 1, 0},
+  {&__pyx_kp_s_584, __pyx_k_584, sizeof(__pyx_k_584), 0, 0, 1, 0},
+  {&__pyx_kp_s_585, __pyx_k_585, sizeof(__pyx_k_585), 0, 0, 1, 0},
   {&__pyx_kp_s_591, __pyx_k_591, sizeof(__pyx_k_591), 0, 0, 1, 0},
+  {&__pyx_n_s_592, __pyx_k_592, sizeof(__pyx_k_592), 0, 0, 1, 1},
+  {&__pyx_kp_s_593, __pyx_k_593, sizeof(__pyx_k_593), 0, 0, 1, 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_s_601, __pyx_k_601, sizeof(__pyx_k_601), 0, 0, 1, 0},
+  {&__pyx_kp_s_604, __pyx_k_604, sizeof(__pyx_k_604), 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_612, __pyx_k_612, sizeof(__pyx_k_612), 0, 0, 0, 0},
-  {&__pyx_kp_b_613, __pyx_k_613, sizeof(__pyx_k_613), 0, 0, 0, 0},
-  {&__pyx_kp_b_614, __pyx_k_614, sizeof(__pyx_k_614), 0, 0, 0, 0},
+  {&__pyx_kp_s_611, __pyx_k_611, sizeof(__pyx_k_611), 0, 0, 1, 0},
+  {&__pyx_kp_s_612, __pyx_k_612, sizeof(__pyx_k_612), 0, 0, 1, 0},
+  {&__pyx_kp_s_613, __pyx_k_613, sizeof(__pyx_k_613), 0, 0, 1, 0},
+  {&__pyx_kp_s_614, __pyx_k_614, sizeof(__pyx_k_614), 0, 0, 1, 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},
@@ -182850,40 +172736,45 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__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_n_s_638, __pyx_k_638, sizeof(__pyx_k_638), 0, 0, 1, 1},
+  {&__pyx_kp_b_633, __pyx_k_633, sizeof(__pyx_k_633), 0, 0, 0, 0},
+  {&__pyx_kp_b_634, __pyx_k_634, sizeof(__pyx_k_634), 0, 0, 0, 0},
+  {&__pyx_kp_b_635, __pyx_k_635, sizeof(__pyx_k_635), 0, 0, 0, 0},
+  {&__pyx_kp_b_636, __pyx_k_636, sizeof(__pyx_k_636), 0, 0, 0, 0},
+  {&__pyx_kp_b_637, __pyx_k_637, sizeof(__pyx_k_637), 0, 0, 0, 0},
   {&__pyx_kp_u_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 1, 0, 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_640, __pyx_k_640, sizeof(__pyx_k_640), 0, 0, 1, 0},
+  {&__pyx_n_s_643, __pyx_k_643, sizeof(__pyx_k_643), 0, 0, 1, 1},
   {&__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_b_647, __pyx_k_647, sizeof(__pyx_k_647), 0, 0, 0, 0},
+  {&__pyx_kp_b_649, __pyx_k_649, sizeof(__pyx_k_649), 0, 0, 0, 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_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_s_654, __pyx_k_654, sizeof(__pyx_k_654), 0, 0, 1, 0},
+  {&__pyx_kp_s_655, __pyx_k_655, sizeof(__pyx_k_655), 0, 0, 1, 0},
+  {&__pyx_kp_s_658, __pyx_k_658, sizeof(__pyx_k_658), 0, 0, 1, 0},
   {&__pyx_kp_u_66, __pyx_k_66, sizeof(__pyx_k_66), 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_n_s_661, __pyx_k_661, sizeof(__pyx_k_661), 0, 0, 1, 1},
+  {&__pyx_kp_u_662, __pyx_k_662, sizeof(__pyx_k_662), 0, 1, 0, 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_s_669, __pyx_k_669, sizeof(__pyx_k_669), 0, 0, 1, 0},
   {&__pyx_kp_u_67, __pyx_k_67, sizeof(__pyx_k_67), 0, 1, 0, 0},
+  {&__pyx_kp_s_670, __pyx_k_670, sizeof(__pyx_k_670), 0, 0, 1, 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_s_676, __pyx_k_676, sizeof(__pyx_k_676), 0, 0, 1, 0},
+  {&__pyx_kp_s_677, __pyx_k_677, sizeof(__pyx_k_677), 0, 0, 1, 0},
+  {&__pyx_kp_s_678, __pyx_k_678, sizeof(__pyx_k_678), 0, 0, 1, 0},
+  {&__pyx_kp_u_679, __pyx_k_679, sizeof(__pyx_k_679), 0, 1, 0, 0},
   {&__pyx_kp_u_68, __pyx_k_68, sizeof(__pyx_k_68), 0, 1, 0, 0},
+  {&__pyx_kp_u_680, __pyx_k_680, sizeof(__pyx_k_680), 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},
@@ -183044,6 +172935,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__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____pyx_vtable__, __pyx_k____pyx_vtable__, sizeof(__pyx_k____pyx_vtable__), 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},
@@ -183140,6 +173032,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_n_s__element_config, __pyx_k__element_config, sizeof(__pyx_k__element_config), 0, 0, 1, 1},
   {&__pyx_n_s__element_factory, __pyx_k__element_factory, sizeof(__pyx_k__element_factory), 0, 0, 1, 1},
   {&__pyx_n_s__element_or_tree, __pyx_k__element_or_tree, sizeof(__pyx_k__element_or_tree), 0, 0, 1, 1},
+  {&__pyx_n_s__elements_only, __pyx_k__elements_only, sizeof(__pyx_k__elements_only), 0, 0, 1, 1},
   {&__pyx_n_s__elemname, __pyx_k__elemname, sizeof(__pyx_k__elemname), 0, 0, 1, 1},
   {&__pyx_n_s__empty, __pyx_k__empty, sizeof(__pyx_k__empty), 0, 0, 1, 1},
   {&__pyx_n_s__enable_regexp, __pyx_k__enable_regexp, sizeof(__pyx_k__enable_regexp), 0, 0, 1, 1},
@@ -183456,10 +173349,10 @@ static int __Pyx_InitCachedBuiltins(void) {
   __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_range = __Pyx_GetBuiltinName(__pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 373; __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_GetBuiltinName(__pyx_n_s__range); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 936; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -183799,9 +173692,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 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);
+  __pyx_k_slice_153 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_153)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_153);
+  __Pyx_GIVEREF(__pyx_k_slice_153);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1607
  *     if isinstance(text, unicode):
@@ -183810,9 +173703,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 u"Unicode strings with encoding declaration are not supported. "
  *                 u"Please use bytes input or XML fragments without declaration.")
  */
-  __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));
+  __pyx_k_tuple_220 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_219)); if (unlikely(!__pyx_k_tuple_220)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_220);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_220));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":112
  *     if enchandler is NULL and c_enc is not NULL:
@@ -183821,9 +173714,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  */
-  __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));
+  __pyx_k_tuple_230 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_105)); if (unlikely(!__pyx_k_tuple_230)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_230);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_230));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":562
  *             writer   = _FilelikeWriter(f, compression=compression)
@@ -183832,9 +173725,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 bytes_count = c14n.xmlC14NDocSaveTo(
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  */
-  __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));
+  __pyx_k_tuple_250 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_250)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_250);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_250));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":673
  *         cdef int c_standalone
@@ -183843,9 +173736,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         version = _utf8orNone(version)
  *         c_version = _xcstr(version) if version is not None else NULL
  */
-  __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));
+  __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 = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_252);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_252));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":698
  *             return
@@ -183854,9 +173747,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         doctype = _utf8(doctype)
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  */
-  __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));
+  __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 = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_254);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_254));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":740
  *     cdef _write_start_element(self, element_config):
@@ -183865,9 +173758,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         ns, name, attributes, nsmap = element_config
  *         flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
  */
-  __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));
+  __pyx_k_tuple_257 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_256)); if (unlikely(!__pyx_k_tuple_257)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_257);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_257));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":778
  *     cdef _write_end_element(self, element_config):
@@ -183876,9 +173769,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         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_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));
+  __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 = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_262);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_262));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":779
  *         if self._status != WRITER_IN_ELEMENT:
@@ -183887,12 +173780,12 @@ static int __Pyx_InitCachedConstants(void) {
  *             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);
+  __pyx_k_slice_264 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_k_slice_264)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_264);
+  __Pyx_GIVEREF(__pyx_k_slice_264);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":780
  *             raise LxmlSyntaxError("not in an element")
@@ -183901,9 +173794,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *         name, prefix = self._element_stack.pop()[1:3]
  */
-  __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));
+  __pyx_k_tuple_266 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_265)); if (unlikely(!__pyx_k_tuple_266)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_266);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_266));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":782
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
@@ -183912,9 +173805,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         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);
+  __pyx_k_slice_267 = PySlice_New(__pyx_int_1, __pyx_int_3, Py_None); if (unlikely(!__pyx_k_slice_267)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_267);
+  __Pyx_GIVEREF(__pyx_k_slice_267);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":834
  *                 if self._status != WRITER_IN_ELEMENT:
@@ -183923,9 +173816,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 content = _utf8(content)
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
  */
-  __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));
+  __pyx_k_tuple_269 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_261)); if (unlikely(!__pyx_k_tuple_269)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __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":839
  *             elif iselement(content):
@@ -183934,9 +173827,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
  *                                    self._c_encoding, NULL, OUTPUT_METHOD_XML,
  */
-  __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));
+  __pyx_k_tuple_270 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_256)); if (unlikely(!__pyx_k_tuple_270)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_270);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_270));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":853
  *         if raise_on_error:
@@ -183945,9 +173838,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             if self._element_stack:
  *                 raise LxmlSyntaxError("pending open tags on close")
  */
-  __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));
+  __pyx_k_tuple_273 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_272)); if (unlikely(!__pyx_k_tuple_273)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_273);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_273));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":855
  *                 raise LxmlSyntaxError("no content written")
@@ -183956,9 +173849,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         error_result = self._c_out.error
  *         if error_result == xmlerror.XML_ERR_OK:
  */
-  __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));
+  __pyx_k_tuple_275 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_274)); if (unlikely(!__pyx_k_tuple_275)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_275);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_275));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":166
  *             ns_count = self._ns_stack.pop()
@@ -183967,9 +173860,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 for i from 0 <= i < ns_count:
  *                     self._events.append(event)
  */
-  __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));
+  __pyx_k_tuple_279 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_277), Py_None); if (unlikely(!__pyx_k_tuple_279)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 166; __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":368
  *     cdef bint _close_source_after_read
@@ -183978,9 +173871,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                  attribute_defaults=False, dtd_validation=False,
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
  */
-  __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));
+  __pyx_k_tuple_280 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_280)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_280);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_280));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":503
  *         while not events:
@@ -183989,9 +173882,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 if not isinstance(data, bytes):
  *                     self._close_source()
  */
-  __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));
+  __pyx_k_tuple_294 = PyTuple_Pack(1, __pyx_int_32768); if (unlikely(!__pyx_k_tuple_294)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_294);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_294));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":506
  *                 if not isinstance(data, bytes):
@@ -184000,9 +173893,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 c_data_len = python.PyBytes_GET_SIZE(data)
  *                 c_data = _cstr(data)
  */
-  __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));
+  __pyx_k_tuple_296 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_295)); if (unlikely(!__pyx_k_tuple_296)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __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":553
  *     cdef int    _event_filter
@@ -184011,9 +173904,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         cdef _Element root
  *         cdef int ns_count
  */
-  __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));
+  __pyx_k_tuple_297 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_297)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 553; __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":582
  *         cdef int ns_count = 0
@@ -184022,9 +173915,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         if self._matcher is not None and self._index >= 0:
  *             node = self._node_stack[self._index][0]
  */
-  __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));
+  __pyx_k_tuple_298 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_298)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 582; __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":614
  *                 self._index += 1
@@ -184033,9 +173926,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise StopIteration
  * 
  */
-  __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));
+  __pyx_k_tuple_299 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_299)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 614; __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/iterparse.pxi":638
  *                 self._events.append( (u"end", node) )
@@ -184044,9 +173937,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             for i from 0 <= i < ns_count:
  *                 self._events.append(event)
  */
-  __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));
+  __pyx_k_tuple_300 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_277), Py_None); if (unlikely(!__pyx_k_tuple_300)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_300);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_300));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":15
  *     global _find_id_attributes
@@ -184055,9 +173948,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     # ElementTree compatible implementation: parse and look for 'id' attributes
  */
-  __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));
+  __pyx_k_tuple_302 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_301)); if (unlikely(!__pyx_k_tuple_302)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __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":21
  *     dic = {}
@@ -184066,9 +173959,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     return (root, dic)
  * 
  */
-  __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));
+  __pyx_k_tuple_303 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__id)); if (unlikely(!__pyx_k_tuple_303)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_303);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_303));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":114
  *         if self._keys is None:
@@ -184077,9 +173970,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     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);
+  __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 = 114; __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/xmlid.pxi":132
  *         if self._items is None:
@@ -184088,9 +173981,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     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);
+  __pyx_k_slice_308 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_308)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_308);
+  __Pyx_GIVEREF(__pyx_k_slice_308);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":445
  *         if function_mapping is None:
@@ -184099,9 +173992,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         for function_name in function_mapping:
  *             functions[(ns, function_name)] = getattr(module, function_name)
  */
-  __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));
+  __pyx_k_tuple_319 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u___)); if (unlikely(!__pyx_k_tuple_319)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __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":520
  *                 return ()
@@ -184110,9 +174003,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         result_list = []
  *         root = Element(u'matches')
  */
-  __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));
+  __pyx_k_tuple_320 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_25)); if (unlikely(!__pyx_k_tuple_320)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __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/extensions.pxi":522
  *             results.extend( result.groups(u'') )
@@ -184121,9 +174014,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         join_groups = u''.join
  *         for s_match in results:
  */
-  __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));
+  __pyx_k_tuple_321 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__matches)); if (unlikely(!__pyx_k_tuple_321)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_321);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_321));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":146
  *             _XPATH_VERSION_WARNING_REQUIRED = 0
@@ -184132,9 +174025,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                           u"Use it at your own risk.")
  *         self._context = _XPathContext(namespaces, extensions, self._error_log,
  */
-  __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));
+  __pyx_k_tuple_333 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_332)); if (unlikely(!__pyx_k_tuple_333)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_333);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_333));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":514
  *                 i += 1
@@ -184143,9 +174036,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 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);
+  __pyx_k_slice_348 = PySlice_New(__pyx_int_1, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_348)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_348);
+  __Pyx_GIVEREF(__pyx_k_slice_348);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":520
  *                 # FIXME: this also replaces {namespaces} within strings!
@@ -184153,9 +174046,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         path = path_utf.decode('utf8')             # <<<<<<<<<<<<<<
  *         return path, namespaces
  */
-  __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));
+  __pyx_k_tuple_349 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__utf8)); if (unlikely(!__pyx_k_tuple_349)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_349);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_349));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":395
  *         c_doc._private = <python.PyObject*>self._xslt_resolver_context
@@ -184164,9 +174057,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             c_style = xslt.xsltParseStylesheetDoc(c_doc)
  * 
  */
-  __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));
+  __pyx_k_tuple_358 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_358)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_358);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_358));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":462
  *         """
@@ -184175,9 +174068,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         xslt.xsltMaxDepth = max_depth
  * 
  */
-  __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));
+  __pyx_k_tuple_361 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_360)); if (unlikely(!__pyx_k_tuple_361)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_361);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_361));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":841
  *     global __findStylesheetByID
@@ -184186,20 +174079,20 @@ static int __Pyx_InitCachedConstants(void) {
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
  */
-  __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));
+  __pyx_k_tuple_368 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_367)); if (unlikely(!__pyx_k_tuple_368)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_368);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_368));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":204
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":225
  *                 e = unicode(e).encode(u"UTF-8")
  *             except:
  *                 e = repr(e).encode(u"UTF-8")             # <<<<<<<<<<<<<<
  *             message = python.PyBytes_FromFormat(
  *                 "Error executing extension element '%s': %s",
  */
-  __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));
+  __pyx_k_tuple_385 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_105)); if (unlikely(!__pyx_k_tuple_385)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_385);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_385));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":284
  *             if _isString(file):
@@ -184208,9 +174101,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                     self._c_dtd = xmlparser.xmlParseDTD(NULL, _xcstr(file))
  *             elif hasattr(file, 'read'):
  */
-  __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));
+  __pyx_k_tuple_395 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_395)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_395);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_395));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":291
  *                 raise DTDParseError, u"file must be a filename or file-like object"
@@ -184219,9 +174112,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self._c_dtd = xmlparser.xmlParseDTD(<const_xmlChar*>external_id, NULL)
  *         else:
  */
-  __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));
+  __pyx_k_tuple_397 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_397)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __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":361
  *         valid_ctxt = dtdvalid.xmlNewValidCtxt()
@@ -184230,9 +174123,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *         try:
  */
-  __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));
+  __pyx_k_tuple_402 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_401)); if (unlikely(!__pyx_k_tuple_402)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_402);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_402));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":364
  * 
@@ -184241,9 +174134,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
  *                 ret = dtdvalid.xmlValidateDtd(valid_ctxt, c_doc, self._c_dtd)
  */
-  __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));
+  __pyx_k_tuple_403 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_403)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __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/dtd.pxi":389
  *     error_log = _ErrorLog()
@@ -184252,9 +174145,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         c_dtd = dtd_parser._readDtd()
  * 
  */
-  __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));
+  __pyx_k_tuple_405 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_405)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_405);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_405));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":58
  *                 doc = None
@@ -184263,9 +174156,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                     parser_ctxt = relaxng.xmlRelaxNGNewParserCtxt(_cstr(filename))
  *             else:
  */
-  __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));
+  __pyx_k_tuple_408 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_408)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_408);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_408));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":98
  *                 filename = file
@@ -184274,9 +174167,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 parser_ctxt = schematron.xmlSchematronNewParserCtxt(_cstr(filename))
  *         else:
  */
-  __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));
+  __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 = 98; __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/schematron.pxi":110
  * 
@@ -184285,9 +174178,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self._c_schema = schematron.xmlSchematronParse(parser_ctxt)
  *         finally:
  */
-  __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));
+  __pyx_k_tuple_426 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_426)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_426);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_426));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":167
  *         else:
@@ -184296,9 +174189,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
  *                 with nogil:
  */
-  __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));
+  __pyx_k_tuple_429 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_429)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_429);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_429));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":134
  * 
@@ -184307,9 +174200,9 @@ static int __Pyx_InitCachedConstants(void) {
  * cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)
  * 
  */
-  __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));
+  __pyx_k_tuple_486 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_105)); if (unlikely(!__pyx_k_tuple_486)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_486);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_486));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":153
  * }
@@ -184318,9 +174211,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * def register_namespace(prefix, uri):
  */
-  __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));
+  __pyx_k_tuple_495 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_494)); if (unlikely(!__pyx_k_tuple_495)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_495);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_495));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":155
  * cdef object _check_internal_prefix = re.compile(b"ns\d+$").match
@@ -184329,10 +174222,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Registers a namespace prefix that newly created Elements in that
  *     namespace will use.  The registry is global, and any existing
  */
-  __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;}
+  __pyx_k_tuple_496 = 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_496)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_496);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_496));
+  __pyx_k_codeobj_497 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_496, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__register_namespace, 155, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_497)) {__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.
@@ -184341,13 +174234,13 @@ static int __Pyx_InitCachedConstants(void) {
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __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));
+  __pyx_k_tuple_500 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__error_log)); if (unlikely(!__pyx_k_tuple_500)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_500);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_500));
+  __pyx_k_codeobj_501 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_500, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s____init__, 181, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_501)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_502 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_k_tuple_502)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_502);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_502));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":241
  * try:
@@ -184356,9 +174249,9 @@ static int __Pyx_InitCachedConstants(void) {
  * except Exception:
  *     print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")
  */
-  __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));
+  __pyx_k_tuple_508 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_508)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __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":8
  * # module level API functions
@@ -184367,7 +174260,7 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""clear_error_log()
  * 
  */
-  __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;}
+  __pyx_k_codeobj_511 = (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_512, __pyx_n_s__clear_error_log, 8, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_511)) {__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
  * 
@@ -184376,9 +174269,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * cdef _BaseErrorLog _getGlobalErrorLog():
  */
-  __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));
+  __pyx_k_tuple_513 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_513)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_513);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_513));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":527
  *     return _getGlobalErrorLog().copy()
@@ -184387,10 +174280,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""use_global_python_log(log)
  * 
  */
-  __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;}
+  __pyx_k_tuple_514 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__log)); if (unlikely(!__pyx_k_tuple_514)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_514);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_514));
+  __pyx_k_codeobj_515 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_514, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_512, __pyx_n_s_484, 527, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_515)) {__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.
@@ -184399,9 +174292,9 @@ static int __Pyx_InitCachedConstants(void) {
  * NONE=0
  * WARNING=1
  */
-  __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));
+  __pyx_k_tuple_521 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_520)); if (unlikely(!__pyx_k_tuple_521)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_521);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_521));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":682
  * """,)
@@ -184410,9 +174303,9 @@ static int __Pyx_InitCachedConstants(void) {
  * NONE=0
  * PARSER=1
  */
-  __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));
+  __pyx_k_tuple_523 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_522)); if (unlikely(!__pyx_k_tuple_523)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_523);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_523));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":714
  * """,)
@@ -184421,9 +174314,9 @@ static int __Pyx_InitCachedConstants(void) {
  * ERR_OK=0
  * ERR_INTERNAL_ERROR=1
  */
-  __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));
+  __pyx_k_tuple_535 = PyTuple_Pack(11, ((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), ((PyObject *)__pyx_kp_u_530), ((PyObject *)__pyx_kp_u_531), ((PyObject *)__pyx_kp_u_532), ((PyObject *)__pyx_kp_u_533), ((PyObject *)__pyx_kp_u_534)); if (unlikely(!__pyx_k_tuple_535)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_535);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_535));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1470
  * """,)
@@ -184432,9 +174325,9 @@ static int __Pyx_InitCachedConstants(void) {
  * RELAXNG_OK=0
  * RELAXNG_ERR_MEMORY=1
  */
-  __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));
+  __pyx_k_tuple_537 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_536)); if (unlikely(!__pyx_k_tuple_537)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_537);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_537));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2798
  * # module-level API for ElementTree
@@ -184443,10 +174336,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Element(_tag, attrib=None, nsmap=None, **_extra)
  * 
  */
-  __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;}
+  __pyx_k_tuple_539 = 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_539)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2798; __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(3, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_539, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__Element, 2798, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_540)) {__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)
@@ -184455,10 +174348,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Comment(text=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_541 = 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_541)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2811; __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(1, 0, 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_498, __pyx_n_s__Comment, 2811, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_542)) {__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)
@@ -184467,10 +174360,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""ProcessingInstruction(target, text=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_543 = 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_543)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2830; __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(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_543, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s_82, 2830, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_544)) {__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)
@@ -184479,10 +174372,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Entity(name)
  * 
  */
-  __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;}
+  __pyx_k_tuple_545 = 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_545)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2866; __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, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_545, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__Entity, 2866, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_546)) {__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)
@@ -184491,10 +174384,10 @@ static int __Pyx_InitCachedConstants(void) {
  *                attrib=None, nsmap=None, **_extra):
  *     u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
  */
-  __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;}
+  __pyx_k_tuple_547 = 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_547)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2891; __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(4, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_547, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__SubElement, 2891, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_548)) {__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)
@@ -184503,10 +174396,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""ElementTree(element=None, file=None, parser=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_549 = 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_549)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2900; __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, 2, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_549, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__ElementTree, 2900, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_550)) {__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)
@@ -184515,10 +174408,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""HTML(text, parser=None, base_url=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_551 = 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_551)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __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(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_551, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__HTML, 2925, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_552)) {__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
@@ -184527,10 +174420,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XML(text, parser=None, base_url=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_553 = 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_553)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_553);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_553));
+  __pyx_k_codeobj_554 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_553, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__XML, 2950, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_554)) {__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
@@ -184539,10 +174432,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""fromstring(text, parser=None, base_url=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_555 = 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_555)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_555);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_555));
+  __pyx_k_codeobj_556 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_555, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__fromstring, 2978, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_556)) {__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
@@ -184551,10 +174444,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""fromstringlist(strings, parser=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_557 = 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_557)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_557);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_557));
+  __pyx_k_codeobj_558 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_557, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__fromstringlist, 2998, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_558)) {__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()
@@ -184563,10 +174456,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""iselement(element)
  * 
  */
-  __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;}
+  __pyx_k_tuple_559 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_559)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __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(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_559, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__iselement, 3015, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_560)) {__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
@@ -184575,10 +174468,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""dump(elem, pretty_print=True, with_tail=True)
  * 
  */
-  __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;}
+  __pyx_k_tuple_561 = 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_561)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_561);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_561));
+  __pyx_k_codeobj_562 = (PyObject*)__Pyx_PyCode_New(3, 2, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_561, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__dump, 3022, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_562)) {__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)
@@ -184587,10 +174480,10 @@ static int __Pyx_InitCachedConstants(void) {
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,
  *              standalone=None, doctype=None,
  */
-  __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;}
+  __pyx_k_tuple_563 = 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_563)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_563);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_563));
+  __pyx_k_codeobj_564 = (PyObject*)__Pyx_PyCode_New(11, 10, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_563, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__tostring, 3034, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_564)) {__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)
@@ -184599,10 +174492,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""tostringlist(element_or_tree, *args, **kwargs)
  * 
  */
-  __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;}
+  __pyx_k_tuple_565 = 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_565)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_565);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_565));
+  __pyx_k_codeobj_566 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_565, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__tostringlist, 3126, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_566)) {__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)]
@@ -184611,10 +174504,10 @@ static int __Pyx_InitCachedConstants(void) {
  *               bint with_tail=True, doctype=None):
  *     u"""tounicode(element_or_tree, method="xml", pretty_print=False,
  */
-  __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;}
+  __pyx_k_tuple_567 = 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_567)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_567);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_567));
+  __pyx_k_codeobj_568 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_567, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__tounicode, 3137, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_568)) {__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)
@@ -184623,22 +174516,22 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""parse(source, parser=None, base_url=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_569 = 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_569)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3171; __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(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_569, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_498, __pyx_n_s__parse, 3171, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_570)) {__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
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":538
  *     LOOKUP_ELEMENT_CLASS = function
  * 
  * def set_element_class_lookup(ElementClassLookup lookup = None):             # <<<<<<<<<<<<<<
  *     u"""set_element_class_lookup(lookup = None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_571 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__lookup)); if (unlikely(!__pyx_k_tuple_571)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 538; __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, 1, 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_180, 538, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_572)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":175
  * __FUNCTION_NAMESPACE_REGISTRIES = {}
@@ -184647,10 +174540,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""FunctionNamespace(ns_uri)
  * 
  */
-  __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;}
+  __pyx_k_tuple_576 = 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_576)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_576);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_576));
+  __pyx_k_codeobj_577 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_576, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_578, __pyx_n_s__FunctionNamespace, 175, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_577)) {__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.
@@ -184659,10 +174552,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __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;}
+  __pyx_k_tuple_579 = 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_579)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __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(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_579, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_581, __pyx_n_s____init__, 18, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_580)) {__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":1383
  * __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER)
@@ -184671,10 +174564,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""set_default_parser(parser=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_586 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_586)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_586);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_586));
+  __pyx_k_codeobj_587 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_586, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_581, __pyx_n_s__set_default_parser, 1383, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_587)) {__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":1399
  *     __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser)
@@ -184683,7 +174576,7 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"get_default_parser()"
  *     return __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  */
-  __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;}
+  __pyx_k_codeobj_588 = (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_581, __pyx_n_s__get_default_parser, 1399, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_588)) {__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
@@ -184692,10 +174585,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         self.result = result
  * 
  */
-  __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;}
+  __pyx_k_tuple_589 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__result)); if (unlikely(!__pyx_k_tuple_589)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __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(2, 0, 2, 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____init__, 10, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_590)) {__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
@@ -184704,10 +174597,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XMLID(text, parser=None, base_url=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_594 = 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_594)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __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, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_594, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_596, __pyx_n_s__XMLID, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_595)) {__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)
@@ -184716,10 +174609,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XMLDTDID(text, parser=None, base_url=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_597 = 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_597)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __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(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_597, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_596, __pyx_n_s__XMLDTDID, 24, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_598)) {__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))
@@ -184728,10 +174621,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""parseid(source, parser=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_599 = 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_599)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_599);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_599));
+  __pyx_k_codeobj_600 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_599, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_596, __pyx_n_s__parseid, 44, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_600)) {__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
@@ -184740,10 +174633,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""cleanup_namespaces(tree_or_element)
  * 
  */
-  __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;}
+  __pyx_k_tuple_602 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_602)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __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(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_602, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_604, __pyx_n_s__cleanup_namespaces, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_603)) {__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)
@@ -184752,10 +174645,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_attributes(tree_or_element, *attribute_names)
  * 
  */
-  __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;}
+  __pyx_k_tuple_605 = 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_605)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_605);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_605));
+  __pyx_k_codeobj_606 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_605, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_604, __pyx_n_s__strip_attributes, 13, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_606)) {__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)
@@ -184764,10 +174657,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_elements(tree_or_element, *tag_names, with_tail=True)
  * 
  */
-  __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;}
+  __pyx_k_tuple_607 = 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_607)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_607);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_607));
+  __pyx_k_codeobj_608 = (PyObject*)__Pyx_PyCode_New(2, 1, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_607, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_604, __pyx_n_s__strip_elements, 54, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_608)) {__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
  * 
@@ -184776,10 +174669,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_tags(tree_or_element, *tag_names)
  * 
  */
-  __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;}
+  __pyx_k_tuple_609 = 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_609)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_609);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_609));
+  __pyx_k_codeobj_610 = (PyObject*)__Pyx_PyCode_New(1, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_609, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_604, __pyx_n_s__strip_tags, 132, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_610)) {__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
  * 
@@ -184788,10 +174681,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Extension(module, function_mapping=None, ns=None)
  * 
  */
-  __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;}
+  __pyx_k_tuple_638 = 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_638)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_638);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_638));
+  __pyx_k_codeobj_639 = (PyObject*)__Pyx_PyCode_New(3, 1, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_638, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_640, __pyx_n_s__Extension, 425, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_639)) {__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
@@ -184800,10 +174693,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         return self._parent
  * 
  */
-  __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;}
+  __pyx_k_tuple_641 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__self)); if (unlikely(!__pyx_k_tuple_641)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_641);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_641));
+  __pyx_k_codeobj_642 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_641, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_640, __pyx_n_s__getparent, 734, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_642)) {__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
  * 
@@ -184812,10 +174705,10 @@ static int __Pyx_InitCachedConstants(void) {
  *                    regexp=True, smart_strings=True):
  *     u"""XPathEvaluator(etree_or_element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
  */
-  __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;}
+  __pyx_k_tuple_644 = 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_644)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_644);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_644));
+  __pyx_k_codeobj_645 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_644, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_646, __pyx_n_s__XPathEvaluator, 384, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_645)) {__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
@@ -184824,9 +174717,9 @@ static int __Pyx_InitCachedConstants(void) {
  * _find_namespaces = re.compile(b'({[^}]+})').findall
  * 
  */
-  __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));
+  __pyx_k_tuple_648 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_647)); if (unlikely(!__pyx_k_tuple_648)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_648);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_648));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":483
  * cdef object _find_namespaces
@@ -184835,9 +174728,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * cdef class ETXPath(XPath):
  */
-  __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));
+  __pyx_k_tuple_650 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_649)); if (unlikely(!__pyx_k_tuple_650)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_650);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_650));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":432
  * 
@@ -184846,10 +174739,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         u"""strparam(strval)
  * 
  */
-  __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;}
+  __pyx_k_tuple_656 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__strval)); if (unlikely(!__pyx_k_tuple_656)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_656);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_656));
+  __pyx_k_codeobj_657 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_656, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_658, __pyx_n_s__strparam, 432, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_657)) {__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
  * 
@@ -184858,10 +174751,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         u"""set_global_max_depth(max_depth)
  * 
  */
-  __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;}
+  __pyx_k_tuple_659 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__max_depth)); if (unlikely(!__pyx_k_tuple_659)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_659);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_659));
+  __pyx_k_codeobj_660 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_659, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_658, __pyx_n_s_661, 446, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_660)) {__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
@@ -184870,9 +174763,9 @@ static int __Pyx_InitCachedConstants(void) {
  * cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
  * cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
  */
-  __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));
+  __pyx_k_tuple_663 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_662)); if (unlikely(!__pyx_k_tuple_663)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_663);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_663));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":22
  * # XMLSchema
@@ -184881,9 +174774,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"boolean(//xs:attribute[@default or @fixed][1])",
  *     namespaces={u'xs': u'http://www.w3.org/2001/XMLSchema'})
  */
-  __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_k_tuple_675 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_674)); if (unlikely(!__pyx_k_tuple_675)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_675);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_675));
   __Pyx_RefNannyFinishContext();
   return 0;
   __pyx_L1_error:;
@@ -184968,7 +174861,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   /*--- Module creation code ---*/
   #if PY_MAJOR_VERSION < 3
-  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("etree"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_467), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
+  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("etree"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_472), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
   #else
   __pyx_m = PyModule_Create(&__pyx_moduledef);
   #endif
@@ -185093,34 +174986,42 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_ExportFunction("initTagMatch", (void (*)(void))initTagMatch, "void (struct LxmlElementTagMatcher *, PyObject *)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_ExportFunction("findOrBuildNodeNsPrefix", (void (*)(void))findOrBuildNodeNsPrefix, "xmlNs *(struct LxmlDocument *, xmlNode *, const xmlChar *, const xmlChar *)") < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   /*--- Type init code ---*/
-  __pyx_vtabptr_4lxml_5etree__TempStore = &__pyx_vtable_4lxml_5etree__TempStore;
-  __pyx_vtable_4lxml_5etree__TempStore.add = (int (*)(struct __pyx_obj_4lxml_5etree__TempStore *, PyObject *))__pyx_f_4lxml_5etree_10_TempStore_add;
-  __pyx_vtable_4lxml_5etree__TempStore.clear = (int (*)(struct __pyx_obj_4lxml_5etree__TempStore *))__pyx_f_4lxml_5etree_10_TempStore_clear;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__TempStore.tp_dict, __pyx_vtabptr_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__TempStore = &__pyx_type_4lxml_5etree__TempStore;
-  __pyx_vtabptr_4lxml_5etree__ExceptionContext = &__pyx_vtable_4lxml_5etree__ExceptionContext;
-  __pyx_vtable_4lxml_5etree__ExceptionContext.clear = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext_clear;
-  __pyx_vtable_4lxml_5etree__ExceptionContext._store_raised = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__store_raised;
-  __pyx_vtable_4lxml_5etree__ExceptionContext._store_exception = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *, PyObject *))__pyx_f_4lxml_5etree_17_ExceptionContext__store_exception;
-  __pyx_vtable_4lxml_5etree__ExceptionContext._has_raised = (int (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__has_raised;
-  __pyx_vtable_4lxml_5etree__ExceptionContext._raise_if_stored = (int (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ExceptionContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ExceptionContext = &__pyx_type_4lxml_5etree__ExceptionContext;
-  __pyx_vtabptr_4lxml_5etree__Document = &__pyx_vtable_4lxml_5etree__Document;
-  __pyx_vtable_4lxml_5etree__Document.getroot = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_getroot;
-  __pyx_vtable_4lxml_5etree__Document.hasdoctype = (int (*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_hasdoctype;
-  __pyx_vtable_4lxml_5etree__Document.getdoctype = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_getdoctype;
-  __pyx_vtable_4lxml_5etree__Document.getxmlinfo = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_getxmlinfo;
-  __pyx_vtable_4lxml_5etree__Document.isstandalone = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_isstandalone;
-  __pyx_vtable_4lxml_5etree__Document.buildNewPrefix = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_buildNewPrefix;
-  __pyx_vtable_4lxml_5etree__Document._findOrBuildNodeNs = (xmlNs *(*)(struct LxmlDocument *, xmlNode *, const xmlChar *, const xmlChar *, int))__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs;
-  __pyx_vtable_4lxml_5etree__Document._setNodeNs = (int (*)(struct LxmlDocument *, xmlNode *, const xmlChar *))__pyx_f_4lxml_5etree_9_Document__setNodeNs;
-  if (PyType_Ready(&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlDocumentType.tp_dict, __pyx_vtabptr_4lxml_5etree__Document) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Document", (PyObject *)&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__Document = &LxmlDocumentType;
+  __pyx_vtabptr_4lxml_5etree__BaseParser = &__pyx_vtable_4lxml_5etree__BaseParser;
+  __pyx_vtable_4lxml_5etree__BaseParser._getParserContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__getParserContext;
+  __pyx_vtable_4lxml_5etree__BaseParser._getPushParserContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__getPushParserContext;
+  __pyx_vtable_4lxml_5etree__BaseParser._createContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *))__pyx_f_4lxml_5etree_11_BaseParser__createContext;
+  __pyx_vtable_4lxml_5etree__BaseParser._registerHtmlErrorHandler = (int (*)(struct __pyx_obj_4lxml_5etree__BaseParser *, xmlParserCtxt *))__pyx_f_4lxml_5etree_11_BaseParser__registerHtmlErrorHandler;
+  __pyx_vtable_4lxml_5etree__BaseParser._newParserCtxt = (xmlParserCtxt *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__newParserCtxt;
+  __pyx_vtable_4lxml_5etree__BaseParser._newPushParserCtxt = (xmlParserCtxt *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__newPushParserCtxt;
+  __pyx_vtable_4lxml_5etree__BaseParser._copy = (struct __pyx_obj_4lxml_5etree__BaseParser *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__copy;
+  __pyx_vtable_4lxml_5etree__BaseParser._parseUnicodeDoc = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *, char *))__pyx_f_4lxml_5etree_11_BaseParser__parseUnicodeDoc;
+  __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 = 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;
+  __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 = 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 = 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 = 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;
   if (PyType_Ready(&LxmlElementType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
@@ -185194,93 +175095,6 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   if (__Pyx_SetAttrString(__pyx_m, "_Element", (PyObject *)&LxmlElementType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__Element = &LxmlElementType;
-  __pyx_vtabptr_4lxml_5etree__BaseParser = &__pyx_vtable_4lxml_5etree__BaseParser;
-  __pyx_vtable_4lxml_5etree__BaseParser._getParserContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__getParserContext;
-  __pyx_vtable_4lxml_5etree__BaseParser._getPushParserContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__getPushParserContext;
-  __pyx_vtable_4lxml_5etree__BaseParser._createContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *))__pyx_f_4lxml_5etree_11_BaseParser__createContext;
-  __pyx_vtable_4lxml_5etree__BaseParser._registerHtmlErrorHandler = (int (*)(struct __pyx_obj_4lxml_5etree__BaseParser *, xmlParserCtxt *))__pyx_f_4lxml_5etree_11_BaseParser__registerHtmlErrorHandler;
-  __pyx_vtable_4lxml_5etree__BaseParser._newParserCtxt = (xmlParserCtxt *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__newParserCtxt;
-  __pyx_vtable_4lxml_5etree__BaseParser._newPushParserCtxt = (xmlParserCtxt *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__newPushParserCtxt;
-  __pyx_vtable_4lxml_5etree__BaseParser._copy = (struct __pyx_obj_4lxml_5etree__BaseParser *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_11_BaseParser__copy;
-  __pyx_vtable_4lxml_5etree__BaseParser._parseUnicodeDoc = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *, char *))__pyx_f_4lxml_5etree_11_BaseParser__parseUnicodeDoc;
-  __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 = 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_ptype_4lxml_5etree_QName = &__pyx_type_4lxml_5etree_QName;
-  __pyx_vtabptr_4lxml_5etree__LogEntry = &__pyx_vtable_4lxml_5etree__LogEntry;
-  __pyx_vtable_4lxml_5etree__LogEntry._setError = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__LogEntry *, xmlError *))__pyx_f_4lxml_5etree_9_LogEntry__setError;
-  __pyx_vtable_4lxml_5etree__LogEntry._setGeneric = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__LogEntry *, int, int, int, int, PyObject *, PyObject *))__pyx_f_4lxml_5etree_9_LogEntry__setGeneric;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__LogEntry) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__LogEntry.tp_dict, __pyx_vtabptr_4lxml_5etree__LogEntry) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_LogEntry", (PyObject *)&__pyx_type_4lxml_5etree__LogEntry) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__LogEntry = &__pyx_type_4lxml_5etree__LogEntry;
-  __pyx_vtabptr_4lxml_5etree__BaseErrorLog = &__pyx_vtable_4lxml_5etree__BaseErrorLog;
-  __pyx_vtable_4lxml_5etree__BaseErrorLog.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_13_BaseErrorLog_copy;
-  __pyx_vtable_4lxml_5etree__BaseErrorLog.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_13_BaseErrorLog_receive;
-  __pyx_vtable_4lxml_5etree__BaseErrorLog._receive = (void (*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, xmlError *))__pyx_f_4lxml_5etree_13_BaseErrorLog__receive;
-  __pyx_vtable_4lxml_5etree__BaseErrorLog._receiveGeneric = (void (*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int, int, int, int, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__receiveGeneric;
-  __pyx_vtable_4lxml_5etree__BaseErrorLog._buildParseException = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException;
-  __pyx_vtable_4lxml_5etree__BaseErrorLog._buildExceptionMessage = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_BaseErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__BaseErrorLog = &__pyx_type_4lxml_5etree__BaseErrorLog;
-  __pyx_vtabptr_4lxml_5etree__ListErrorLog = &__pyx_vtable_4lxml_5etree__ListErrorLog;
-  __pyx_vtable_4lxml_5etree__ListErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseErrorLog;
-  __pyx_vtable_4lxml_5etree__ListErrorLog.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_13_ListErrorLog_copy;
-  __pyx_type_4lxml_5etree__ListErrorLog.tp_base = __pyx_ptype_4lxml_5etree__BaseErrorLog;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ListErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ListErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ListErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ListErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__ListErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ListErrorLog = &__pyx_type_4lxml_5etree__ListErrorLog;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLogContext) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ErrorLogContext = &__pyx_type_4lxml_5etree__ErrorLogContext;
-  __pyx_vtabptr_4lxml_5etree__ErrorLog = &__pyx_vtable_4lxml_5etree__ErrorLog;
-  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ListErrorLog;
-  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx_base.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_9_ErrorLog_copy;
-  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_9_ErrorLog_receive;
-  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx___enter__ = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLog *))__pyx_f_4lxml_5etree_9_ErrorLog___enter__;
-  __pyx_vtable_4lxml_5etree__ErrorLog.connect = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLog *))__pyx_f_4lxml_5etree_9_ErrorLog_connect;
-  __pyx_vtable_4lxml_5etree__ErrorLog.disconnect = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLog *))__pyx_f_4lxml_5etree_9_ErrorLog_disconnect;
-  __pyx_vtable_4lxml_5etree__ErrorLog.clear = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_9_ErrorLog_clear;
-  __pyx_type_4lxml_5etree__ErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ListErrorLog;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__ErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ErrorLog = &__pyx_type_4lxml_5etree__ErrorLog;
-  __pyx_vtabptr_4lxml_5etree__DomainErrorLog = &__pyx_vtable_4lxml_5etree__DomainErrorLog;
-  __pyx_vtable_4lxml_5etree__DomainErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ErrorLog;
-  __pyx_vtable_4lxml_5etree__DomainErrorLog.__pyx_base.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_15_DomainErrorLog_receive;
-  __pyx_type_4lxml_5etree__DomainErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ErrorLog;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__DomainErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__DomainErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_DomainErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__DomainErrorLog = &__pyx_type_4lxml_5etree__DomainErrorLog;
-  __pyx_vtabptr_4lxml_5etree__RotatingErrorLog = &__pyx_vtable_4lxml_5etree__RotatingErrorLog;
-  __pyx_vtable_4lxml_5etree__RotatingErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ErrorLog;
-  __pyx_vtable_4lxml_5etree__RotatingErrorLog.__pyx_base.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_17_RotatingErrorLog_receive;
-  __pyx_type_4lxml_5etree__RotatingErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ErrorLog;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__RotatingErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__RotatingErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_RotatingErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__RotatingErrorLog = &__pyx_type_4lxml_5etree__RotatingErrorLog;
-  __pyx_vtabptr_4lxml_5etree_PyErrorLog = &__pyx_vtable_4lxml_5etree_PyErrorLog;
-  __pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseErrorLog;
-  __pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10PyErrorLog_copy;
-  __pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10PyErrorLog_receive;
-  __pyx_type_4lxml_5etree_PyErrorLog.tp_base = __pyx_ptype_4lxml_5etree__BaseErrorLog;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_PyErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PyErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree_PyErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "PyErrorLog", (PyObject *)&__pyx_type_4lxml_5etree_PyErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_PyErrorLog = &__pyx_type_4lxml_5etree_PyErrorLog;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "DocInfo", (PyObject *)&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_DocInfo = &__pyx_type_4lxml_5etree_DocInfo;
   __pyx_vtabptr_4lxml_5etree___ContentOnlyElement = &__pyx_vtable_4lxml_5etree___ContentOnlyElement;
   __pyx_vtable_4lxml_5etree___ContentOnlyElement._raiseImmutable = (int (*)(struct __pyx_obj_4lxml_5etree___ContentOnlyElement *))__pyx_f_4lxml_5etree_20__ContentOnlyElement__raiseImmutable;
   __pyx_type_4lxml_5etree___ContentOnlyElement.tp_base = __pyx_ptype_4lxml_5etree__Element;
@@ -185317,13 +175131,6 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree___ContentOnlyElement.tp_dict, __pyx_vtabptr_4lxml_5etree___ContentOnlyElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree___ContentOnlyElement = &__pyx_type_4lxml_5etree___ContentOnlyElement;
-  __pyx_vtabptr_4lxml_5etree__Comment = &__pyx_vtable_4lxml_5etree__Comment;
-  __pyx_vtable_4lxml_5etree__Comment.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
-  __pyx_type_4lxml_5etree__Comment.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Comment.tp_dict, __pyx_vtabptr_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Comment", (PyObject *)&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__Comment = &__pyx_type_4lxml_5etree__Comment;
   __pyx_vtabptr_4lxml_5etree__ProcessingInstruction = &__pyx_vtable_4lxml_5etree__ProcessingInstruction;
   __pyx_vtable_4lxml_5etree__ProcessingInstruction.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
   __pyx_type_4lxml_5etree__ProcessingInstruction.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
@@ -185331,269 +175138,28 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "_ProcessingInstruction", (PyObject *)&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ProcessingInstruction = &__pyx_type_4lxml_5etree__ProcessingInstruction;
-  __pyx_vtabptr_4lxml_5etree__Entity = &__pyx_vtable_4lxml_5etree__Entity;
-  __pyx_vtable_4lxml_5etree__Entity.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
-  __pyx_type_4lxml_5etree__Entity.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Entity.tp_dict, __pyx_vtabptr_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Entity", (PyObject *)&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__Entity = &__pyx_type_4lxml_5etree__Entity;
-  __pyx_vtabptr_4lxml_5etree__ElementTree = &__pyx_vtable_4lxml_5etree__ElementTree;
-  __pyx_vtable_4lxml_5etree__ElementTree._assertHasRoot = (PyObject *(*)(struct LxmlElementTree *))__pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot;
-  if (PyType_Ready(&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlElementTreeType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementTree", (PyObject *)&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ElementTree = &LxmlElementTreeType;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Attrib", (PyObject *)&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__Attrib = &__pyx_type_4lxml_5etree__Attrib;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__AttribIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__AttribIterator = &__pyx_type_4lxml_5etree__AttribIterator;
-  __pyx_vtabptr_4lxml_5etree__ElementTagMatcher = &__pyx_vtable_4lxml_5etree__ElementTagMatcher;
-  __pyx_vtable_4lxml_5etree__ElementTagMatcher._initTagMatch = (PyObject *(*)(struct LxmlElementTagMatcher *, PyObject *))__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch;
-  if (PyType_Ready(&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlElementTagMatcherType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementTagMatcher", (PyObject *)&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ElementTagMatcher = &LxmlElementTagMatcherType;
-  __pyx_vtabptr_4lxml_5etree__ElementIterator = &__pyx_vtable_4lxml_5etree__ElementIterator;
-  __pyx_vtable_4lxml_5etree__ElementIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementTagMatcher;
-  __pyx_vtable_4lxml_5etree__ElementIterator._storeNext = (void (*)(struct LxmlElementIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_16_ElementIterator__storeNext;
-  LxmlElementIteratorType.tp_base = __pyx_ptype_4lxml_5etree__ElementTagMatcher;
-  if (PyType_Ready(&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlElementIteratorType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementIterator", (PyObject *)&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ElementIterator = &LxmlElementIteratorType;
-  __pyx_vtabptr_4lxml_5etree__MultiTagMatcher = &__pyx_vtable_4lxml_5etree__MultiTagMatcher;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher.rejectsAll = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher.rejectsAllAttributes = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAllAttributes;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher.matchesType = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, int))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher._clear = (void (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher__clear;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher.initTagMatch = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, PyObject *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher._storeTags = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher.cacheTags = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, struct LxmlDocument *, struct __pyx_opt_args_4lxml_5etree_16_MultiTagMatcher_cacheTags *__pyx_optional_args))__pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher.matches = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlNode *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches;
-  __pyx_vtable_4lxml_5etree__MultiTagMatcher.matchesAttribute = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlAttr *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribute;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__MultiTagMatcher.tp_dict, __pyx_vtabptr_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__MultiTagMatcher = &__pyx_type_4lxml_5etree__MultiTagMatcher;
-  __pyx_vtabptr_4lxml_5etree__ElementMatchIterator = &__pyx_vtable_4lxml_5etree__ElementMatchIterator;
-  __pyx_vtable_4lxml_5etree__ElementMatchIterator._initTagMatcher = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher;
-  __pyx_vtable_4lxml_5etree__ElementMatchIterator._storeNext = (int (*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ElementMatchIterator.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementMatchIterator", (PyObject *)&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ElementMatchIterator = &__pyx_type_4lxml_5etree__ElementMatchIterator;
-  __pyx_vtabptr_4lxml_5etree_ElementChildIterator = &__pyx_vtable_4lxml_5etree_ElementChildIterator;
-  __pyx_vtable_4lxml_5etree_ElementChildIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
-  __pyx_type_4lxml_5etree_ElementChildIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementChildIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementChildIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ElementChildIterator = &__pyx_type_4lxml_5etree_ElementChildIterator;
-  __pyx_vtabptr_4lxml_5etree_SiblingsIterator = &__pyx_vtable_4lxml_5etree_SiblingsIterator;
-  __pyx_vtable_4lxml_5etree_SiblingsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
-  __pyx_type_4lxml_5etree_SiblingsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_SiblingsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "SiblingsIterator", (PyObject *)&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_SiblingsIterator = &__pyx_type_4lxml_5etree_SiblingsIterator;
-  __pyx_vtabptr_4lxml_5etree_AncestorsIterator = &__pyx_vtable_4lxml_5etree_AncestorsIterator;
-  __pyx_vtable_4lxml_5etree_AncestorsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
-  __pyx_type_4lxml_5etree_AncestorsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AncestorsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "AncestorsIterator", (PyObject *)&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_AncestorsIterator = &__pyx_type_4lxml_5etree_AncestorsIterator;
-  __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator = &__pyx_vtable_4lxml_5etree_ElementDepthFirstIterator;
-  __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeAnyTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag;
-  __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeMatchTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchTag;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementDepthFirstIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ElementDepthFirstIterator = &__pyx_type_4lxml_5etree_ElementDepthFirstIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementTextIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ElementTextIterator = &__pyx_type_4lxml_5etree_ElementTextIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "CDATA", (PyObject *)&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_CDATA = &__pyx_type_4lxml_5etree_CDATA;
-  __pyx_vtabptr_4lxml_5etree__ReadOnlyProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyProxy;
-  __pyx_vtable_4lxml_5etree__ReadOnlyProxy._assertNode = (int (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy__assertNode;
-  __pyx_vtable_4lxml_5etree__ReadOnlyProxy._raise_unsupported_type = (int (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy__raise_unsupported_type;
-  __pyx_vtable_4lxml_5etree__ReadOnlyProxy.free_after_use = (void (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy_free_after_use;
-  __pyx_vtable_4lxml_5etree__ReadOnlyProxy.__pyx___copy__ = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__;
-  __pyx_vtable_4lxml_5etree__ReadOnlyProxy.getchildren = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_14_ReadOnlyProxy_getchildren;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  #if CYTHON_COMPILING_IN_CPYTHON
-  {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree__ReadOnlyProxy, "__getitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_4__getitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_4__getitem__.doc = __pyx_doc_4lxml_5etree_14_ReadOnlyProxy_4__getitem__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_4__getitem__;
-    }
-  }
-  #endif
-  #if CYTHON_COMPILING_IN_CPYTHON
-  {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree__ReadOnlyProxy, "__len__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_6__len__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_6__len__.doc = __pyx_doc_4lxml_5etree_14_ReadOnlyProxy_6__len__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_6__len__;
-    }
-  }
-  #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ReadOnlyProxy = &__pyx_type_4lxml_5etree__ReadOnlyProxy;
-  __pyx_vtabptr_4lxml_5etree__ReadOnlyPIProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyPIProxy;
-  __pyx_vtable_4lxml_5etree__ReadOnlyPIProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
-  __pyx_type_4lxml_5etree__ReadOnlyPIProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyPIProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ReadOnlyPIProxy = &__pyx_type_4lxml_5etree__ReadOnlyPIProxy;
-  __pyx_vtabptr_4lxml_5etree__ReadOnlyEntityProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyEntityProxy;
-  __pyx_vtable_4lxml_5etree__ReadOnlyEntityProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
-  __pyx_type_4lxml_5etree__ReadOnlyEntityProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyEntityProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ReadOnlyEntityProxy = &__pyx_type_4lxml_5etree__ReadOnlyEntityProxy;
-  __pyx_vtabptr_4lxml_5etree__ReadOnlyElementProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyElementProxy;
-  __pyx_vtable_4lxml_5etree__ReadOnlyElementProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
-  __pyx_type_4lxml_5etree__ReadOnlyElementProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyElementProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ReadOnlyElementProxy = &__pyx_type_4lxml_5etree__ReadOnlyElementProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__OpaqueNodeWrapper) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__OpaqueNodeWrapper = &__pyx_type_4lxml_5etree__OpaqueNodeWrapper;
-  __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper = &__pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper;
-  __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper._assertNode = (int (*)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *))__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode;
-  __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper.append = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append;
-  __pyx_type_4lxml_5etree__OpaqueDocumentWrapper.tp_base = __pyx_ptype_4lxml_5etree__OpaqueNodeWrapper;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__OpaqueDocumentWrapper) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__OpaqueDocumentWrapper.tp_dict, __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__OpaqueDocumentWrapper = &__pyx_type_4lxml_5etree__OpaqueDocumentWrapper;
-  __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy = &__pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy;
-  __pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
-  __pyx_type_4lxml_5etree__ModifyContentOnlyProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ModifyContentOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ModifyContentOnlyProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy = &__pyx_type_4lxml_5etree__ModifyContentOnlyProxy;
-  __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyPIProxy = &__pyx_vtable_4lxml_5etree__ModifyContentOnlyPIProxy;
-  __pyx_vtable_4lxml_5etree__ModifyContentOnlyPIProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy;
-  __pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy.tp_base = __pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ModifyContentOnlyPIProxy = &__pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy;
-  __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyEntityProxy = &__pyx_vtable_4lxml_5etree__ModifyContentOnlyEntityProxy;
-  __pyx_vtable_4lxml_5etree__ModifyContentOnlyEntityProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy;
-  __pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy.tp_base = __pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ModifyContentOnlyEntityProxy = &__pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy;
-  __pyx_vtabptr_4lxml_5etree__AppendOnlyElementProxy = &__pyx_vtable_4lxml_5etree__AppendOnlyElementProxy;
-  __pyx_vtable_4lxml_5etree__AppendOnlyElementProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyElementProxy;
-  __pyx_vtable_4lxml_5etree__AppendOnlyElementProxy.append = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_23_AppendOnlyElementProxy_append;
-  __pyx_type_4lxml_5etree__AppendOnlyElementProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyElementProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__AppendOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__AppendOnlyElementProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__AppendOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__AppendOnlyElementProxy = &__pyx_type_4lxml_5etree__AppendOnlyElementProxy;
-  LxmlElementBaseType.tp_base = __pyx_ptype_4lxml_5etree__Element;
-  if (PyType_Ready(&LxmlElementBaseType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  #if CYTHON_COMPILING_IN_CPYTHON
-  {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementBaseType, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_11ElementBase___init__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_11ElementBase___init__.doc = __pyx_doc_4lxml_5etree_11ElementBase___init__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_11ElementBase___init__;
-    }
-  }
-  #endif
-  if (__Pyx_SetAttrString(__pyx_m, "ElementBase", (PyObject *)&LxmlElementBaseType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ElementBase = &LxmlElementBaseType;
-  __pyx_vtabptr_4lxml_5etree_CommentBase = &__pyx_vtable_4lxml_5etree_CommentBase;
-  __pyx_vtable_4lxml_5etree_CommentBase.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Comment;
-  __pyx_type_4lxml_5etree_CommentBase.tp_base = __pyx_ptype_4lxml_5etree__Comment;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_CommentBase.tp_dict, __pyx_vtabptr_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "CommentBase", (PyObject *)&__pyx_type_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_CommentBase = &__pyx_type_4lxml_5etree_CommentBase;
   __pyx_vtabptr_4lxml_5etree_PIBase = &__pyx_vtable_4lxml_5etree_PIBase;
   __pyx_vtable_4lxml_5etree_PIBase.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ProcessingInstruction;
   __pyx_type_4lxml_5etree_PIBase.tp_base = __pyx_ptype_4lxml_5etree__ProcessingInstruction;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_PIBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PIBase.tp_dict, __pyx_vtabptr_4lxml_5etree_PIBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "PIBase", (PyObject *)&__pyx_type_4lxml_5etree_PIBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_PIBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PIBase.tp_dict, __pyx_vtabptr_4lxml_5etree_PIBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "PIBase", (PyObject *)&__pyx_type_4lxml_5etree_PIBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_PIBase = &__pyx_type_4lxml_5etree_PIBase;
-  __pyx_vtabptr_4lxml_5etree_EntityBase = &__pyx_vtable_4lxml_5etree_EntityBase;
-  __pyx_vtable_4lxml_5etree_EntityBase.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Entity;
-  __pyx_type_4lxml_5etree_EntityBase.tp_base = __pyx_ptype_4lxml_5etree__Entity;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_EntityBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_EntityBase.tp_dict, __pyx_vtabptr_4lxml_5etree_EntityBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "EntityBase", (PyObject *)&__pyx_type_4lxml_5etree_EntityBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_EntityBase = &__pyx_type_4lxml_5etree_EntityBase;
-  if (PyType_Ready(&LxmlElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementClassLookup", (PyObject *)&LxmlElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ElementClassLookup = &LxmlElementClassLookupType;
-  __pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup = &__pyx_vtable_4lxml_5etree_FallbackElementClassLookup;
-  __pyx_vtable_4lxml_5etree_FallbackElementClassLookup._setFallback = (void (*)(struct LxmlFallbackElementClassLookup *, struct LxmlElementClassLookup *))__pyx_f_4lxml_5etree_26FallbackElementClassLookup__setFallback;
-  LxmlFallbackElementClassLookupType.tp_base = __pyx_ptype_4lxml_5etree_ElementClassLookup;
-  if (PyType_Ready(&LxmlFallbackElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlFallbackElementClassLookupType.tp_dict, __pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "FallbackElementClassLookup", (PyObject *)&LxmlFallbackElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_FallbackElementClassLookup = &LxmlFallbackElementClassLookupType;
-  __pyx_type_4lxml_5etree_ElementDefaultClassLookup.tp_base = __pyx_ptype_4lxml_5etree_ElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDefaultClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementDefaultClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_ElementDefaultClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ElementDefaultClassLookup = &__pyx_type_4lxml_5etree_ElementDefaultClassLookup;
-  __pyx_vtabptr_4lxml_5etree_AttributeBasedElementClassLookup = &__pyx_vtable_4lxml_5etree_AttributeBasedElementClassLookup;
-  __pyx_vtable_4lxml_5etree_AttributeBasedElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
-  __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "AttributeBasedElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_AttributeBasedElementClassLookup = &__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup;
-  __pyx_vtabptr_4lxml_5etree_ParserBasedElementClassLookup = &__pyx_vtable_4lxml_5etree_ParserBasedElementClassLookup;
-  __pyx_vtable_4lxml_5etree_ParserBasedElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
-  __pyx_type_4lxml_5etree_ParserBasedElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ParserBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ParserBasedElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_ParserBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ParserBasedElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_ParserBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ParserBasedElementClassLookup = &__pyx_type_4lxml_5etree_ParserBasedElementClassLookup;
-  __pyx_vtabptr_4lxml_5etree_CustomElementClassLookup = &__pyx_vtable_4lxml_5etree_CustomElementClassLookup;
-  __pyx_vtable_4lxml_5etree_CustomElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
-  __pyx_type_4lxml_5etree_CustomElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_CustomElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_CustomElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_CustomElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "CustomElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_CustomElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_CustomElementClassLookup = &__pyx_type_4lxml_5etree_CustomElementClassLookup;
-  __pyx_vtabptr_4lxml_5etree_PythonElementClassLookup = &__pyx_vtable_4lxml_5etree_PythonElementClassLookup;
-  __pyx_vtable_4lxml_5etree_PythonElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
-  __pyx_type_4lxml_5etree_PythonElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_PythonElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PythonElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_PythonElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "PythonElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_PythonElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_PythonElementClassLookup = &__pyx_type_4lxml_5etree_PythonElementClassLookup;
+  __pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction = &__pyx_vtable_4lxml_5etree__XSLTProcessingInstruction;
+  __pyx_vtable_4lxml_5etree__XSLTProcessingInstruction.__pyx_base = *__pyx_vtabptr_4lxml_5etree_PIBase;
+  __pyx_type_4lxml_5etree__XSLTProcessingInstruction.tp_base = __pyx_ptype_4lxml_5etree_PIBase;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_XSLTProcessingInstruction", (PyObject *)&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__XSLTProcessingInstruction = &__pyx_type_4lxml_5etree__XSLTProcessingInstruction;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct__itervalues) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues = &__pyx_type_4lxml_5etree___pyx_scope_struct__itervalues;
   __pyx_vtabptr_4lxml_5etree__NamespaceRegistry = &__pyx_vtable_4lxml_5etree__NamespaceRegistry;
   __pyx_vtable_4lxml_5etree__NamespaceRegistry._get = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__NamespaceRegistry *, PyObject *))__pyx_f_4lxml_5etree_18_NamespaceRegistry__get;
   __pyx_vtable_4lxml_5etree__NamespaceRegistry._getForString = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__NamespaceRegistry *, char *))__pyx_f_4lxml_5etree_18_NamespaceRegistry__getForString;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__NamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__NamespaceRegistry.tp_dict, __pyx_vtabptr_4lxml_5etree__NamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__NamespaceRegistry = &__pyx_type_4lxml_5etree__NamespaceRegistry;
-  __pyx_vtabptr_4lxml_5etree__ClassNamespaceRegistry = &__pyx_vtable_4lxml_5etree__ClassNamespaceRegistry;
-  __pyx_vtable_4lxml_5etree__ClassNamespaceRegistry.__pyx_base = *__pyx_vtabptr_4lxml_5etree__NamespaceRegistry;
-  __pyx_type_4lxml_5etree__ClassNamespaceRegistry.tp_base = __pyx_ptype_4lxml_5etree__NamespaceRegistry;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ClassNamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ClassNamespaceRegistry.tp_dict, __pyx_vtabptr_4lxml_5etree__ClassNamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ClassNamespaceRegistry = &__pyx_type_4lxml_5etree__ClassNamespaceRegistry;
-  __pyx_vtabptr_4lxml_5etree_ElementNamespaceClassLookup = &__pyx_vtable_4lxml_5etree_ElementNamespaceClassLookup;
-  __pyx_vtable_4lxml_5etree_ElementNamespaceClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
-  __pyx_type_4lxml_5etree_ElementNamespaceClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementNamespaceClassLookup) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementNamespaceClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementNamespaceClassLookup) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementNamespaceClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_ElementNamespaceClassLookup) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ElementNamespaceClassLookup = &__pyx_type_4lxml_5etree_ElementNamespaceClassLookup;
   __pyx_vtabptr_4lxml_5etree__FunctionNamespaceRegistry = &__pyx_vtable_4lxml_5etree__FunctionNamespaceRegistry;
   __pyx_vtable_4lxml_5etree__FunctionNamespaceRegistry.__pyx_base = *__pyx_vtabptr_4lxml_5etree__NamespaceRegistry;
   __pyx_type_4lxml_5etree__FunctionNamespaceRegistry.tp_base = __pyx_ptype_4lxml_5etree__NamespaceRegistry;
@@ -185606,107 +175172,6 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry.tp_dict, __pyx_vtabptr_4lxml_5etree__XPathFunctionNamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XPathFunctionNamespaceRegistry = &__pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__InputDocument) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__InputDocument = &__pyx_type_4lxml_5etree__InputDocument;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_Resolver) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "Resolver", (PyObject *)&__pyx_type_4lxml_5etree_Resolver) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_Resolver = &__pyx_type_4lxml_5etree_Resolver;
-  __pyx_vtabptr_4lxml_5etree__ResolverRegistry = &__pyx_vtable_4lxml_5etree__ResolverRegistry;
-  __pyx_vtable_4lxml_5etree__ResolverRegistry._copy = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *(*)(struct __pyx_obj_4lxml_5etree__ResolverRegistry *))__pyx_f_4lxml_5etree_17_ResolverRegistry__copy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ResolverRegistry) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ResolverRegistry.tp_dict, __pyx_vtabptr_4lxml_5etree__ResolverRegistry) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ResolverRegistry = &__pyx_type_4lxml_5etree__ResolverRegistry;
-  __pyx_vtabptr_4lxml_5etree__ResolverContext = &__pyx_vtable_4lxml_5etree__ResolverContext;
-  __pyx_vtable_4lxml_5etree__ResolverContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ExceptionContext;
-  __pyx_vtable_4lxml_5etree__ResolverContext.__pyx_base.clear = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_16_ResolverContext_clear;
-  __pyx_type_4lxml_5etree__ResolverContext.tp_base = __pyx_ptype_4lxml_5etree__ExceptionContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ResolverContext) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ResolverContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ResolverContext) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ResolverContext = &__pyx_type_4lxml_5etree__ResolverContext;
-  __pyx_vtabptr_4lxml_5etree__ParserContext = &__pyx_vtable_4lxml_5etree__ParserContext;
-  __pyx_vtable_4lxml_5etree__ParserContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ResolverContext;
-  __pyx_vtable_4lxml_5etree__ParserContext._copy = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext__copy;
-  __pyx_vtable_4lxml_5etree__ParserContext._initParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_14_ParserContext__initParserContext;
-  __pyx_vtable_4lxml_5etree__ParserContext._resetParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext__resetParserContext;
-  __pyx_vtable_4lxml_5etree__ParserContext.prepare = (int (*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext_prepare;
-  __pyx_vtable_4lxml_5etree__ParserContext.cleanup = (int (*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext_cleanup;
-  __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 = 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_vtable_4lxml_5etree__SaxParserContext.__pyx_base._initParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext;
-  __pyx_vtable_4lxml_5etree__SaxParserContext._setSaxParserTarget = (void (*)(struct __pyx_obj_4lxml_5etree__SaxParserContext *, struct __pyx_obj_4lxml_5etree__SaxParserTarget *))__pyx_f_4lxml_5etree_17_SaxParserContext__setSaxParserTarget;
-  __pyx_vtable_4lxml_5etree__SaxParserContext._handleSaxException = (void (*)(struct __pyx_obj_4lxml_5etree__SaxParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_17_SaxParserContext__handleSaxException;
-  __pyx_type_4lxml_5etree__SaxParserContext.tp_base = __pyx_ptype_4lxml_5etree__ParserContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__SaxParserContext) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__SaxParserContext.tp_dict, __pyx_vtabptr_4lxml_5etree__SaxParserContext) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__SaxParserContext = &__pyx_type_4lxml_5etree__SaxParserContext;
-  __pyx_vtabptr_4lxml_5etree__TargetParserContext = &__pyx_vtable_4lxml_5etree__TargetParserContext;
-  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__SaxParserContext;
-  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base.__pyx_base._copy = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_20_TargetParserContext__copy;
-  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base.__pyx_base._handleParseResult = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *, struct __pyx_obj_4lxml_5etree__BaseParser *, xmlDoc *, PyObject *))__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResult;
-  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base.__pyx_base._handleParseResultDoc = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *, struct __pyx_obj_4lxml_5etree__BaseParser *, xmlDoc *, PyObject *))__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResultDoc;
-  __pyx_vtable_4lxml_5etree__TargetParserContext._setTarget = (int (*)(struct __pyx_obj_4lxml_5etree__TargetParserContext *, PyObject *))__pyx_f_4lxml_5etree_20_TargetParserContext__setTarget;
-  __pyx_vtable_4lxml_5etree__TargetParserContext._cleanupTargetParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__TargetParserContext *, xmlDoc *))__pyx_f_4lxml_5etree_20_TargetParserContext__cleanupTargetParserContext;
-  __pyx_type_4lxml_5etree__TargetParserContext.tp_base = __pyx_ptype_4lxml_5etree__SaxParserContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__TargetParserContext) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__TargetParserContext.tp_dict, __pyx_vtabptr_4lxml_5etree__TargetParserContext) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__TargetParserContext = &__pyx_type_4lxml_5etree__TargetParserContext;
-  __pyx_vtabptr_4lxml_5etree__ParserSchemaValidationContext = &__pyx_vtable_4lxml_5etree__ParserSchemaValidationContext;
-  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.copy = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *(*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_copy;
-  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.inject_default_attributes = (void (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *, xmlDoc *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_inject_default_attributes;
-  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.connect = (int (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *, xmlParserCtxt *, struct __pyx_obj_4lxml_5etree__BaseErrorLog *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect;
-  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.disconnect = (void (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_disconnect;
-  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.isvalid = (int (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ParserSchemaValidationContext) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ParserSchemaValidationContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ParserSchemaValidationContext) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ParserSchemaValidationContext = &__pyx_type_4lxml_5etree__ParserSchemaValidationContext;
-  __pyx_vtabptr_4lxml_5etree__Validator = &__pyx_vtable_4lxml_5etree__Validator;
-  __pyx_vtable_4lxml_5etree__Validator._append_log_message = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int, int, int, int, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__append_log_message;
-  __pyx_vtable_4lxml_5etree__Validator._clear_error_log = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__clear_error_log;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Validator.tp_dict, __pyx_vtabptr_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Validator", (PyObject *)&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__Validator = &__pyx_type_4lxml_5etree__Validator;
-  __pyx_vtabptr_4lxml_5etree_XMLSchema = &__pyx_vtable_4lxml_5etree_XMLSchema;
-  __pyx_vtable_4lxml_5etree_XMLSchema.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Validator;
-  __pyx_vtable_4lxml_5etree_XMLSchema._newSaxValidator = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *(*)(struct __pyx_obj_4lxml_5etree_XMLSchema *, int))__pyx_f_4lxml_5etree_9XMLSchema__newSaxValidator;
-  __pyx_type_4lxml_5etree_XMLSchema.tp_base = __pyx_ptype_4lxml_5etree__Validator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XMLSchema) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  #if CYTHON_COMPILING_IN_CPYTHON
-  {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XMLSchema, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_9XMLSchema_6__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_9XMLSchema_6__call__.doc = __pyx_doc_4lxml_5etree_9XMLSchema_6__call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_9XMLSchema_6__call__;
-    }
-  }
-  #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XMLSchema.tp_dict, __pyx_vtabptr_4lxml_5etree_XMLSchema) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XMLSchema", (PyObject *)&__pyx_type_4lxml_5etree_XMLSchema) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XMLSchema = &__pyx_type_4lxml_5etree_XMLSchema;
-  __pyx_vtabptr_4lxml_5etree__ParserDictionaryContext = &__pyx_vtable_4lxml_5etree__ParserDictionaryContext;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initMainParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initMainParserContext;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext._findThreadParserContext = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext__findThreadParserContext;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.setDefaultParser = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_setDefaultParser;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.getDefaultParser = (struct __pyx_obj_4lxml_5etree__BaseParser *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext._getThreadDict = (xmlDict *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlDict *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext__getThreadDict;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initThreadDictRef = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlDict **))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initThreadDictRef;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initParserDict = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initParserDict;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initXPathParserDict = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlXPathContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initXPathParserDict;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initDocDict = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlDoc *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initDocDict;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.findImpliedContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_findImpliedContext;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.pushImpliedContextFromParser = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContextFromParser;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.pushImpliedContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContext;
-  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.popImpliedContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_popImpliedContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ParserDictionaryContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ParserDictionaryContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ParserDictionaryContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ParserDictionaryContext = &__pyx_type_4lxml_5etree__ParserDictionaryContext;
   __pyx_vtabptr_4lxml_5etree__FileReaderContext = &__pyx_vtable_4lxml_5etree__FileReaderContext;
   __pyx_vtable_4lxml_5etree__FileReaderContext._close_file = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__FileReaderContext *))__pyx_f_4lxml_5etree_18_FileReaderContext__close_file;
   __pyx_vtable_4lxml_5etree__FileReaderContext._createParserInputBuffer = (xmlParserInputBuffer *(*)(struct __pyx_obj_4lxml_5etree__FileReaderContext *))__pyx_f_4lxml_5etree_18_FileReaderContext__createParserInputBuffer;
@@ -185717,34 +175182,54 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__FileReaderContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__FileReaderContext.tp_dict, __pyx_vtabptr_4lxml_5etree__FileReaderContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__FileReaderContext = &__pyx_type_4lxml_5etree__FileReaderContext;
-  __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 = 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 = 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 = 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 = 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__BaseErrorLog = &__pyx_vtable_4lxml_5etree__BaseErrorLog;
+  __pyx_vtable_4lxml_5etree__BaseErrorLog.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_13_BaseErrorLog_copy;
+  __pyx_vtable_4lxml_5etree__BaseErrorLog.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_13_BaseErrorLog_receive;
+  __pyx_vtable_4lxml_5etree__BaseErrorLog._receive = (void (*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, xmlError *))__pyx_f_4lxml_5etree_13_BaseErrorLog__receive;
+  __pyx_vtable_4lxml_5etree__BaseErrorLog._receiveGeneric = (void (*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int, int, int, int, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__receiveGeneric;
+  __pyx_vtable_4lxml_5etree__BaseErrorLog._buildParseException = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException;
+  __pyx_vtable_4lxml_5etree__BaseErrorLog._buildExceptionMessage = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, PyObject *))__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_BaseErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__BaseErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__BaseErrorLog = &__pyx_type_4lxml_5etree__BaseErrorLog;
+  __pyx_vtabptr_4lxml_5etree__ElementTagMatcher = &__pyx_vtable_4lxml_5etree__ElementTagMatcher;
+  __pyx_vtable_4lxml_5etree__ElementTagMatcher._initTagMatch = (PyObject *(*)(struct LxmlElementTagMatcher *, PyObject *))__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch;
+  if (PyType_Ready(&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlElementTagMatcherType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementTagMatcher", (PyObject *)&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ElementTagMatcher = &LxmlElementTagMatcherType;
+  __pyx_vtabptr_4lxml_5etree_XSLT = &__pyx_vtable_4lxml_5etree_XSLT;
+  __pyx_vtable_4lxml_5etree_XSLT._run_transform = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree_XSLT *, xmlDoc *, const char **, struct __pyx_obj_4lxml_5etree__XSLTContext *, xsltTransformContext *))__pyx_f_4lxml_5etree_4XSLT__run_transform;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if CYTHON_COMPILING_IN_CPYTHON
+  {
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XSLT, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
+      __pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__.doc = __pyx_doc_4lxml_5etree_4XSLT_18__call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__;
+    }
+  }
+  #endif
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLT.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XSLT", (PyObject *)&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XSLT = &__pyx_type_4lxml_5etree_XSLT;
+  __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator = &__pyx_vtable_4lxml_5etree_ElementDepthFirstIterator;
+  __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeAnyTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag;
+  __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeMatchTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchTag;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementDepthFirstIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ElementDepthFirstIterator = &__pyx_type_4lxml_5etree_ElementDepthFirstIterator;
+  if (PyType_Ready(&LxmlElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementClassLookup", (PyObject *)&LxmlElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ElementClassLookup = &LxmlElementClassLookupType;
+  __pyx_vtabptr_4lxml_5etree__ResolverRegistry = &__pyx_vtable_4lxml_5etree__ResolverRegistry;
+  __pyx_vtable_4lxml_5etree__ResolverRegistry._copy = (struct __pyx_obj_4lxml_5etree__ResolverRegistry *(*)(struct __pyx_obj_4lxml_5etree__ResolverRegistry *))__pyx_f_4lxml_5etree_17_ResolverRegistry__copy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ResolverRegistry) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ResolverRegistry.tp_dict, __pyx_vtabptr_4lxml_5etree__ResolverRegistry) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ResolverRegistry = &__pyx_type_4lxml_5etree__ResolverRegistry;
   __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;
   __pyx_vtable_4lxml_5etree__SaxParserTarget._handleSaxEnd = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_16_SaxParserTarget__handleSaxEnd;
@@ -185769,28 +175254,113 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_TreeBuilder.tp_dict, __pyx_vtabptr_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "TreeBuilder", (PyObject *)&__pyx_type_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_TreeBuilder = &__pyx_type_4lxml_5etree_TreeBuilder;
-  __pyx_vtabptr_4lxml_5etree__PythonSaxParserTarget = &__pyx_vtable_4lxml_5etree__PythonSaxParserTarget;
-  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base = *__pyx_vtabptr_4lxml_5etree__SaxParserTarget;
-  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxStart = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxStart;
-  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxEnd = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxEnd;
-  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxData = (int (*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxData;
-  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxDoctype = (int (*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxDoctype;
-  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxPi = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxPi;
-  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxComment = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxComment;
-  __pyx_type_4lxml_5etree__PythonSaxParserTarget.tp_base = __pyx_ptype_4lxml_5etree__SaxParserTarget;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__PythonSaxParserTarget) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__PythonSaxParserTarget.tp_dict, __pyx_vtabptr_4lxml_5etree__PythonSaxParserTarget) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__PythonSaxParserTarget = &__pyx_type_4lxml_5etree__PythonSaxParserTarget;
-  __pyx_vtabptr_4lxml_5etree__FilelikeWriter = &__pyx_vtable_4lxml_5etree__FilelikeWriter;
-  __pyx_vtable_4lxml_5etree__FilelikeWriter._createOutputBuffer = (xmlOutputBuffer *(*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *, xmlCharEncodingHandler *))__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer;
-  __pyx_vtable_4lxml_5etree__FilelikeWriter.write = (int (*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *, char *, int))__pyx_f_4lxml_5etree_15_FilelikeWriter_write;
-  __pyx_vtable_4lxml_5etree__FilelikeWriter.close = (int (*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *))__pyx_f_4lxml_5etree_15_FilelikeWriter_close;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__FilelikeWriter.tp_dict, __pyx_vtabptr_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__FilelikeWriter = &__pyx_type_4lxml_5etree__FilelikeWriter;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "xmlfile", (PyObject *)&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_xmlfile = &__pyx_type_4lxml_5etree_xmlfile;
+  __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase = &__pyx_vtable_4lxml_5etree__XPathEvaluatorBase;
+  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase.set_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, xmlXPathContext *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase_set_context;
+  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._checkAbsolutePath = (int (*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, char *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath;
+  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._lock = (int (*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock;
+  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._unlock = (void (*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__unlock;
+  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._raise_parse_error = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error;
+  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._raise_eval_error = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error;
+  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._handle_result = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, xmlXPathObject *, struct LxmlDocument *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XPathEvaluatorBase.tp_dict, __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_XPathEvaluatorBase", (PyObject *)&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__XPathEvaluatorBase = &__pyx_type_4lxml_5etree__XPathEvaluatorBase;
+  __pyx_vtabptr_4lxml_5etree_XPathElementEvaluator = &__pyx_vtable_4lxml_5etree_XPathElementEvaluator;
+  __pyx_vtable_4lxml_5etree_XPathElementEvaluator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase;
+  __pyx_type_4lxml_5etree_XPathElementEvaluator.tp_base = __pyx_ptype_4lxml_5etree__XPathEvaluatorBase;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if CYTHON_COMPILING_IN_CPYTHON
+  {
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
+      __pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__.doc = __pyx_doc_4lxml_5etree_21XPathElementEvaluator_6__call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__;
+    }
+  }
+  #endif
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathElementEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XPathElementEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XPathElementEvaluator = &__pyx_type_4lxml_5etree_XPathElementEvaluator;
+  __pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator = &__pyx_vtable_4lxml_5etree_XPathDocumentEvaluator;
+  __pyx_vtable_4lxml_5etree_XPathDocumentEvaluator.__pyx_base = *__pyx_vtabptr_4lxml_5etree_XPathElementEvaluator;
+  __pyx_type_4lxml_5etree_XPathDocumentEvaluator.tp_base = __pyx_ptype_4lxml_5etree_XPathElementEvaluator;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if CYTHON_COMPILING_IN_CPYTHON
+  {
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
+      __pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__.doc = __pyx_doc_4lxml_5etree_22XPathDocumentEvaluator_2__call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__;
+    }
+  }
+  #endif
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathDocumentEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XPathDocumentEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XPathDocumentEvaluator = &__pyx_type_4lxml_5etree_XPathDocumentEvaluator;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes = &__pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes;
+  __pyx_vtabptr_4lxml_5etree__Comment = &__pyx_vtable_4lxml_5etree__Comment;
+  __pyx_vtable_4lxml_5etree__Comment.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
+  __pyx_type_4lxml_5etree__Comment.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Comment.tp_dict, __pyx_vtabptr_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Comment", (PyObject *)&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__Comment = &__pyx_type_4lxml_5etree__Comment;
+  __pyx_vtabptr_4lxml_5etree__MultiTagMatcher = &__pyx_vtable_4lxml_5etree__MultiTagMatcher;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher.rejectsAll = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher.rejectsAllAttributes = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAllAttributes;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher.matchesType = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, int))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher._clear = (void (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher__clear;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher.initTagMatch = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, PyObject *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher._storeTags = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher.cacheTags = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, struct LxmlDocument *, struct __pyx_opt_args_4lxml_5etree_16_MultiTagMatcher_cacheTags *__pyx_optional_args))__pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher.matches = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlNode *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches;
+  __pyx_vtable_4lxml_5etree__MultiTagMatcher.matchesAttribute = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlAttr *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribute;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__MultiTagMatcher.tp_dict, __pyx_vtabptr_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__MultiTagMatcher = &__pyx_type_4lxml_5etree__MultiTagMatcher;
+  __pyx_vtabptr_4lxml_5etree_XPath = &__pyx_vtable_4lxml_5etree_XPath;
+  __pyx_vtable_4lxml_5etree_XPath.__pyx_base = *__pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase;
+  __pyx_type_4lxml_5etree_XPath.tp_base = __pyx_ptype_4lxml_5etree__XPathEvaluatorBase;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if CYTHON_COMPILING_IN_CPYTHON
+  {
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPath, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
+      __pyx_wrapperbase_4lxml_5etree_5XPath_4__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_5XPath_4__call__.doc = __pyx_doc_4lxml_5etree_5XPath_4__call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_5XPath_4__call__;
+    }
+  }
+  #endif
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPath.tp_dict, __pyx_vtabptr_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XPath", (PyObject *)&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XPath = &__pyx_type_4lxml_5etree_XPath;
+  __pyx_vtabptr_4lxml_5etree_ETXPath = &__pyx_vtable_4lxml_5etree_ETXPath;
+  __pyx_vtable_4lxml_5etree_ETXPath.__pyx_base = *__pyx_vtabptr_4lxml_5etree_XPath;
+  __pyx_vtable_4lxml_5etree_ETXPath._nsextract_path = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_ETXPath *, PyObject *))__pyx_f_4lxml_5etree_7ETXPath__nsextract_path;
+  __pyx_type_4lxml_5etree_ETXPath.tp_base = __pyx_ptype_4lxml_5etree_XPath;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ETXPath.tp_dict, __pyx_vtabptr_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ETXPath", (PyObject *)&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ETXPath = &__pyx_type_4lxml_5etree_ETXPath;
+  __pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup = &__pyx_vtable_4lxml_5etree_FallbackElementClassLookup;
+  __pyx_vtable_4lxml_5etree_FallbackElementClassLookup._setFallback = (void (*)(struct LxmlFallbackElementClassLookup *, struct LxmlElementClassLookup *))__pyx_f_4lxml_5etree_26FallbackElementClassLookup__setFallback;
+  LxmlFallbackElementClassLookupType.tp_base = __pyx_ptype_4lxml_5etree_ElementClassLookup;
+  if (PyType_Ready(&LxmlFallbackElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlFallbackElementClassLookupType.tp_dict, __pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "FallbackElementClassLookup", (PyObject *)&LxmlFallbackElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_FallbackElementClassLookup = &LxmlFallbackElementClassLookupType;
+  __pyx_vtabptr_4lxml_5etree_CustomElementClassLookup = &__pyx_vtable_4lxml_5etree_CustomElementClassLookup;
+  __pyx_vtable_4lxml_5etree_CustomElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
+  __pyx_type_4lxml_5etree_CustomElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_CustomElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_CustomElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_CustomElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "CustomElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_CustomElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_CustomElementClassLookup = &__pyx_type_4lxml_5etree_CustomElementClassLookup;
   __pyx_vtabptr_4lxml_5etree__IncrementalFileWriter = &__pyx_vtable_4lxml_5etree__IncrementalFileWriter;
   __pyx_vtable_4lxml_5etree__IncrementalFileWriter._write_qname = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname;
   __pyx_vtable_4lxml_5etree__IncrementalFileWriter._write_start_element = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *, PyObject *))__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_element;
@@ -185804,65 +175374,50 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__IncrementalFileWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__IncrementalFileWriter.tp_dict, __pyx_vtabptr_4lxml_5etree__IncrementalFileWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__IncrementalFileWriter = &__pyx_type_4lxml_5etree__IncrementalFileWriter;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__FileWriterElement) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__FileWriterElement = &__pyx_type_4lxml_5etree__FileWriterElement;
-  __pyx_vtabptr_4lxml_5etree__IterparseContext = &__pyx_vtable_4lxml_5etree__IterparseContext;
-  __pyx_vtable_4lxml_5etree__IterparseContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ParserContext;
-  __pyx_vtable_4lxml_5etree__IterparseContext.__pyx_base._initParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_17_IterparseContext__initParserContext;
-  __pyx_vtable_4lxml_5etree__IterparseContext._setEventFilter = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_17_IterparseContext__setEventFilter;
-  __pyx_vtable_4lxml_5etree__IterparseContext.startDocument = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, xmlDoc *))__pyx_f_4lxml_5etree_17_IterparseContext_startDocument;
-  __pyx_vtable_4lxml_5etree__IterparseContext.startNode = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, xmlNode *))__pyx_f_4lxml_5etree_17_IterparseContext_startNode;
-  __pyx_vtable_4lxml_5etree__IterparseContext.endNode = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, xmlNode *))__pyx_f_4lxml_5etree_17_IterparseContext_endNode;
-  __pyx_vtable_4lxml_5etree__IterparseContext.pushEvent = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, PyObject *, xmlNode *))__pyx_f_4lxml_5etree_17_IterparseContext_pushEvent;
-  __pyx_vtable_4lxml_5etree__IterparseContext._assureDocGetsFreed = (void (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *))__pyx_f_4lxml_5etree_17_IterparseContext__assureDocGetsFreed;
-  __pyx_type_4lxml_5etree__IterparseContext.tp_base = __pyx_ptype_4lxml_5etree__ParserContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__IterparseContext) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__IterparseContext.tp_dict, __pyx_vtabptr_4lxml_5etree__IterparseContext) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__IterparseContext = &__pyx_type_4lxml_5etree__IterparseContext;
-  __pyx_vtabptr_4lxml_5etree_iterparse = &__pyx_vtable_4lxml_5etree_iterparse;
-  __pyx_vtable_4lxml_5etree_iterparse.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseParser;
-  __pyx_vtable_4lxml_5etree_iterparse.__pyx_base._createContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *))__pyx_f_4lxml_5etree_9iterparse__createContext;
-  __pyx_vtable_4lxml_5etree_iterparse._close_source = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_iterparse *))__pyx_f_4lxml_5etree_9iterparse__close_source;
-  __pyx_vtable_4lxml_5etree_iterparse._read_more_events = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_iterparse *, struct __pyx_obj_4lxml_5etree__IterparseContext *))__pyx_f_4lxml_5etree_9iterparse__read_more_events;
-  __pyx_type_4lxml_5etree_iterparse.tp_base = __pyx_ptype_4lxml_5etree__BaseParser;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_iterparse) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_iterparse.tp_dict, __pyx_vtabptr_4lxml_5etree_iterparse) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "iterparse", (PyObject *)&__pyx_type_4lxml_5etree_iterparse) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_iterparse = &__pyx_type_4lxml_5etree_iterparse;
-  __pyx_vtabptr_4lxml_5etree_iterwalk = &__pyx_vtable_4lxml_5etree_iterwalk;
-  __pyx_vtable_4lxml_5etree_iterwalk._start_node = (int (*)(struct __pyx_obj_4lxml_5etree_iterwalk *, struct LxmlElement *))__pyx_f_4lxml_5etree_8iterwalk__start_node;
-  __pyx_vtable_4lxml_5etree_iterwalk._end_node = (struct LxmlElement *(*)(struct __pyx_obj_4lxml_5etree_iterwalk *))__pyx_f_4lxml_5etree_8iterwalk__end_node;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_iterwalk) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_iterwalk.tp_dict, __pyx_vtabptr_4lxml_5etree_iterwalk) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "iterwalk", (PyObject *)&__pyx_type_4lxml_5etree_iterwalk) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_iterwalk = &__pyx_type_4lxml_5etree_iterwalk;
-  __pyx_vtabptr_4lxml_5etree__IDDict = &__pyx_vtable_4lxml_5etree__IDDict;
-  __pyx_vtable_4lxml_5etree__IDDict._build_keys = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IDDict *))__pyx_f_4lxml_5etree_7_IDDict__build_keys;
-  __pyx_vtable_4lxml_5etree__IDDict._build_items = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IDDict *))__pyx_f_4lxml_5etree_7_IDDict__build_items;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__IDDict) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__IDDict.tp_dict, __pyx_vtabptr_4lxml_5etree__IDDict) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_IDDict", (PyObject *)&__pyx_type_4lxml_5etree__IDDict) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__IDDict = &__pyx_type_4lxml_5etree__IDDict;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XInclude) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_vtabptr_4lxml_5etree__ReadOnlyProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyProxy;
+  __pyx_vtable_4lxml_5etree__ReadOnlyProxy._assertNode = (int (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy__assertNode;
+  __pyx_vtable_4lxml_5etree__ReadOnlyProxy._raise_unsupported_type = (int (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy__raise_unsupported_type;
+  __pyx_vtable_4lxml_5etree__ReadOnlyProxy.free_after_use = (void (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy_free_after_use;
+  __pyx_vtable_4lxml_5etree__ReadOnlyProxy.__pyx___copy__ = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_14_ReadOnlyProxy___copy__;
+  __pyx_vtable_4lxml_5etree__ReadOnlyProxy.getchildren = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_14_ReadOnlyProxy_getchildren;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XInclude, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree__ReadOnlyProxy, "__getitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_8XInclude_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_8XInclude_2__call__.doc = __pyx_doc_4lxml_5etree_8XInclude_2__call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_8XInclude_2__call__;
+      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_4__getitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_4__getitem__.doc = __pyx_doc_4lxml_5etree_14_ReadOnlyProxy_4__getitem__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_4__getitem__;
     }
   }
   #endif
-  if (__Pyx_SetAttrString(__pyx_m, "XInclude", (PyObject *)&__pyx_type_4lxml_5etree_XInclude) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XInclude = &__pyx_type_4lxml_5etree_XInclude;
-  __pyx_vtabptr_4lxml_5etree__ExsltRegExp = &__pyx_vtable_4lxml_5etree__ExsltRegExp;
-  __pyx_vtable_4lxml_5etree__ExsltRegExp._make_string = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ExsltRegExp *, PyObject *))__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string;
-  __pyx_vtable_4lxml_5etree__ExsltRegExp._compile = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ExsltRegExp *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_12_ExsltRegExp__compile;
-  __pyx_vtable_4lxml_5etree__ExsltRegExp._register_in_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ExsltRegExp *, struct __pyx_obj_4lxml_5etree__BaseContext *))__pyx_f_4lxml_5etree_12_ExsltRegExp__register_in_context;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ExsltRegExp) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ExsltRegExp.tp_dict, __pyx_vtabptr_4lxml_5etree__ExsltRegExp) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ExsltRegExp = &__pyx_type_4lxml_5etree__ExsltRegExp;
+  #if CYTHON_COMPILING_IN_CPYTHON
+  {
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree__ReadOnlyProxy, "__len__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
+      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_6__len__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_6__len__.doc = __pyx_doc_4lxml_5etree_14_ReadOnlyProxy_6__len__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_14_ReadOnlyProxy_6__len__;
+    }
+  }
+  #endif
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ReadOnlyProxy = &__pyx_type_4lxml_5etree__ReadOnlyProxy;
+  __pyx_vtabptr_4lxml_5etree__ReadOnlyElementProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyElementProxy;
+  __pyx_vtable_4lxml_5etree__ReadOnlyElementProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
+  __pyx_type_4lxml_5etree__ReadOnlyElementProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyElementProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ReadOnlyElementProxy = &__pyx_type_4lxml_5etree__ReadOnlyElementProxy;
+  __pyx_vtabptr_4lxml_5etree_CommentBase = &__pyx_vtable_4lxml_5etree_CommentBase;
+  __pyx_vtable_4lxml_5etree_CommentBase.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Comment;
+  __pyx_type_4lxml_5etree_CommentBase.tp_base = __pyx_ptype_4lxml_5etree__Comment;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_CommentBase.tp_dict, __pyx_vtabptr_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "CommentBase", (PyObject *)&__pyx_type_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_CommentBase = &__pyx_type_4lxml_5etree_CommentBase;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTQuotedStringParam) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__XSLTQuotedStringParam = &__pyx_type_4lxml_5etree__XSLTQuotedStringParam;
   __pyx_vtabptr_4lxml_5etree__BaseContext = &__pyx_vtable_4lxml_5etree__BaseContext;
   __pyx_vtable_4lxml_5etree__BaseContext._copy = (struct __pyx_obj_4lxml_5etree__BaseContext *(*)(struct __pyx_obj_4lxml_5etree__BaseContext *))__pyx_f_4lxml_5etree_12_BaseContext__copy;
   __pyx_vtable_4lxml_5etree__BaseContext._to_utf = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseContext *, PyObject *))__pyx_f_4lxml_5etree_12_BaseContext__to_utf;
@@ -185888,10 +175443,75 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__BaseContext) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__BaseContext.tp_dict, __pyx_vtabptr_4lxml_5etree__BaseContext) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__BaseContext = &__pyx_type_4lxml_5etree__BaseContext;
-  __pyx_type_4lxml_5etree__ElementUnicodeResult.tp_base = (&PyUnicode_Type);
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementUnicodeResult", (PyObject *)&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__ElementUnicodeResult = &__pyx_type_4lxml_5etree__ElementUnicodeResult;
+  __pyx_vtabptr_4lxml_5etree__XSLTContext = &__pyx_vtable_4lxml_5etree__XSLTContext;
+  __pyx_vtable_4lxml_5etree__XSLTContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseContext;
+  __pyx_vtable_4lxml_5etree__XSLTContext.__pyx_base._copy = (struct __pyx_obj_4lxml_5etree__BaseContext *(*)(struct __pyx_obj_4lxml_5etree__BaseContext *))__pyx_f_4lxml_5etree_12_XSLTContext__copy;
+  __pyx_vtable_4lxml_5etree__XSLTContext.register_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTContext *, xsltTransformContext *, struct LxmlDocument *))__pyx_f_4lxml_5etree_12_XSLTContext_register_context;
+  __pyx_vtable_4lxml_5etree__XSLTContext.free_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTContext *))__pyx_f_4lxml_5etree_12_XSLTContext_free_context;
+  __pyx_type_4lxml_5etree__XSLTContext.tp_base = __pyx_ptype_4lxml_5etree__BaseContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__XSLTContext = &__pyx_type_4lxml_5etree__XSLTContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDElementDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__DTDElementDecl = &__pyx_type_4lxml_5etree__DTDElementDecl;
+  __pyx_vtabptr_4lxml_5etree_XSLTExtension = &__pyx_vtable_4lxml_5etree_XSLTExtension;
+  __pyx_vtable_4lxml_5etree_XSLTExtension._collectXSLTResultContent = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_XSLTExtension *, struct __pyx_obj_4lxml_5etree__XSLTContext *, xmlNode *, int, int))__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLTExtension) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLTExtension.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLTExtension) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XSLTExtension", (PyObject *)&__pyx_type_4lxml_5etree_XSLTExtension) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XSLTExtension = &__pyx_type_4lxml_5etree_XSLTExtension;
+  __pyx_vtabptr_4lxml_5etree__ExceptionContext = &__pyx_vtable_4lxml_5etree__ExceptionContext;
+  __pyx_vtable_4lxml_5etree__ExceptionContext.clear = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext_clear;
+  __pyx_vtable_4lxml_5etree__ExceptionContext._store_raised = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__store_raised;
+  __pyx_vtable_4lxml_5etree__ExceptionContext._store_exception = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *, PyObject *))__pyx_f_4lxml_5etree_17_ExceptionContext__store_exception;
+  __pyx_vtable_4lxml_5etree__ExceptionContext._has_raised = (int (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__has_raised;
+  __pyx_vtable_4lxml_5etree__ExceptionContext._raise_if_stored = (int (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ExceptionContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ExceptionContext = &__pyx_type_4lxml_5etree__ExceptionContext;
+  __pyx_vtabptr_4lxml_5etree__ResolverContext = &__pyx_vtable_4lxml_5etree__ResolverContext;
+  __pyx_vtable_4lxml_5etree__ResolverContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ExceptionContext;
+  __pyx_vtable_4lxml_5etree__ResolverContext.__pyx_base.clear = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_16_ResolverContext_clear;
+  __pyx_type_4lxml_5etree__ResolverContext.tp_base = __pyx_ptype_4lxml_5etree__ExceptionContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ResolverContext) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ResolverContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ResolverContext) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ResolverContext = &__pyx_type_4lxml_5etree__ResolverContext;
+  __pyx_vtabptr_4lxml_5etree__ParserContext = &__pyx_vtable_4lxml_5etree__ParserContext;
+  __pyx_vtable_4lxml_5etree__ParserContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ResolverContext;
+  __pyx_vtable_4lxml_5etree__ParserContext._copy = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext__copy;
+  __pyx_vtable_4lxml_5etree__ParserContext._initParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_14_ParserContext__initParserContext;
+  __pyx_vtable_4lxml_5etree__ParserContext._resetParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext__resetParserContext;
+  __pyx_vtable_4lxml_5etree__ParserContext.prepare = (int (*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext_prepare;
+  __pyx_vtable_4lxml_5etree__ParserContext.cleanup = (int (*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_14_ParserContext_cleanup;
+  __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 = 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_vtable_4lxml_5etree__SaxParserContext.__pyx_base._initParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_17_SaxParserContext__initParserContext;
+  __pyx_vtable_4lxml_5etree__SaxParserContext._setSaxParserTarget = (void (*)(struct __pyx_obj_4lxml_5etree__SaxParserContext *, struct __pyx_obj_4lxml_5etree__SaxParserTarget *))__pyx_f_4lxml_5etree_17_SaxParserContext__setSaxParserTarget;
+  __pyx_vtable_4lxml_5etree__SaxParserContext._handleSaxException = (void (*)(struct __pyx_obj_4lxml_5etree__SaxParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_17_SaxParserContext__handleSaxException;
+  __pyx_type_4lxml_5etree__SaxParserContext.tp_base = __pyx_ptype_4lxml_5etree__ParserContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__SaxParserContext) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__SaxParserContext.tp_dict, __pyx_vtabptr_4lxml_5etree__SaxParserContext) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 32; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__SaxParserContext = &__pyx_type_4lxml_5etree__SaxParserContext;
+  __pyx_vtabptr_4lxml_5etree__TargetParserContext = &__pyx_vtable_4lxml_5etree__TargetParserContext;
+  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__SaxParserContext;
+  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base.__pyx_base._copy = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_20_TargetParserContext__copy;
+  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base.__pyx_base._handleParseResult = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *, struct __pyx_obj_4lxml_5etree__BaseParser *, xmlDoc *, PyObject *))__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResult;
+  __pyx_vtable_4lxml_5etree__TargetParserContext.__pyx_base.__pyx_base._handleParseResultDoc = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree__ParserContext *, struct __pyx_obj_4lxml_5etree__BaseParser *, xmlDoc *, PyObject *))__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResultDoc;
+  __pyx_vtable_4lxml_5etree__TargetParserContext._setTarget = (int (*)(struct __pyx_obj_4lxml_5etree__TargetParserContext *, PyObject *))__pyx_f_4lxml_5etree_20_TargetParserContext__setTarget;
+  __pyx_vtable_4lxml_5etree__TargetParserContext._cleanupTargetParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__TargetParserContext *, xmlDoc *))__pyx_f_4lxml_5etree_20_TargetParserContext__cleanupTargetParserContext;
+  __pyx_type_4lxml_5etree__TargetParserContext.tp_base = __pyx_ptype_4lxml_5etree__SaxParserContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__TargetParserContext) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__TargetParserContext.tp_dict, __pyx_vtabptr_4lxml_5etree__TargetParserContext) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__TargetParserContext = &__pyx_type_4lxml_5etree__TargetParserContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_Resolver) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "Resolver", (PyObject *)&__pyx_type_4lxml_5etree_Resolver) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_Resolver = &__pyx_type_4lxml_5etree_Resolver;
   __pyx_vtabptr_4lxml_5etree__XPathContext = &__pyx_vtable_4lxml_5etree__XPathContext;
   __pyx_vtable_4lxml_5etree__XPathContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseContext;
   __pyx_vtable_4lxml_5etree__XPathContext.set_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathContext *, xmlXPathContext *))__pyx_f_4lxml_5etree_13_XPathContext_set_context;
@@ -185906,119 +175526,158 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__XPathContext) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XPathContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XPathContext) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XPathContext = &__pyx_type_4lxml_5etree__XPathContext;
-  __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase = &__pyx_vtable_4lxml_5etree__XPathEvaluatorBase;
-  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase.set_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, xmlXPathContext *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase_set_context;
-  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._checkAbsolutePath = (int (*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, char *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath;
-  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._lock = (int (*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock;
-  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._unlock = (void (*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__unlock;
-  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._raise_parse_error = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error;
-  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._raise_eval_error = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error;
-  __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._handle_result = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, xmlXPathObject *, struct LxmlDocument *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XPathEvaluatorBase.tp_dict, __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_XPathEvaluatorBase", (PyObject *)&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__XPathEvaluatorBase = &__pyx_type_4lxml_5etree__XPathEvaluatorBase;
-  __pyx_vtabptr_4lxml_5etree_XPathElementEvaluator = &__pyx_vtable_4lxml_5etree_XPathElementEvaluator;
-  __pyx_vtable_4lxml_5etree_XPathElementEvaluator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase;
-  __pyx_type_4lxml_5etree_XPathElementEvaluator.tp_base = __pyx_ptype_4lxml_5etree__XPathEvaluatorBase;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  #if CYTHON_COMPILING_IN_CPYTHON
-  {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__.doc = __pyx_doc_4lxml_5etree_21XPathElementEvaluator_6__call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__;
-    }
-  }
-  #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathElementEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XPathElementEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XPathElementEvaluator = &__pyx_type_4lxml_5etree_XPathElementEvaluator;
-  __pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator = &__pyx_vtable_4lxml_5etree_XPathDocumentEvaluator;
-  __pyx_vtable_4lxml_5etree_XPathDocumentEvaluator.__pyx_base = *__pyx_vtabptr_4lxml_5etree_XPathElementEvaluator;
-  __pyx_type_4lxml_5etree_XPathDocumentEvaluator.tp_base = __pyx_ptype_4lxml_5etree_XPathElementEvaluator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  #if CYTHON_COMPILING_IN_CPYTHON
-  {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__.doc = __pyx_doc_4lxml_5etree_22XPathDocumentEvaluator_2__call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__;
-    }
-  }
-  #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathDocumentEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XPathDocumentEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XPathDocumentEvaluator = &__pyx_type_4lxml_5etree_XPathDocumentEvaluator;
-  __pyx_vtabptr_4lxml_5etree_XPath = &__pyx_vtable_4lxml_5etree_XPath;
-  __pyx_vtable_4lxml_5etree_XPath.__pyx_base = *__pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase;
-  __pyx_type_4lxml_5etree_XPath.tp_base = __pyx_ptype_4lxml_5etree__XPathEvaluatorBase;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_vtabptr_4lxml_5etree__Entity = &__pyx_vtable_4lxml_5etree__Entity;
+  __pyx_vtable_4lxml_5etree__Entity.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
+  __pyx_type_4lxml_5etree__Entity.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Entity.tp_dict, __pyx_vtabptr_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Entity", (PyObject *)&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__Entity = &__pyx_type_4lxml_5etree__Entity;
+  __pyx_vtabptr_4lxml_5etree_EntityBase = &__pyx_vtable_4lxml_5etree_EntityBase;
+  __pyx_vtable_4lxml_5etree_EntityBase.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Entity;
+  __pyx_type_4lxml_5etree_EntityBase.tp_base = __pyx_ptype_4lxml_5etree__Entity;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_EntityBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_EntityBase.tp_dict, __pyx_vtabptr_4lxml_5etree_EntityBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "EntityBase", (PyObject *)&__pyx_type_4lxml_5etree_EntityBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_EntityBase = &__pyx_type_4lxml_5etree_EntityBase;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XInclude) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPath, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XInclude, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_5XPath_4__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_5XPath_4__call__.doc = __pyx_doc_4lxml_5etree_5XPath_4__call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_5XPath_4__call__;
+      __pyx_wrapperbase_4lxml_5etree_8XInclude_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_8XInclude_2__call__.doc = __pyx_doc_4lxml_5etree_8XInclude_2__call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_8XInclude_2__call__;
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPath.tp_dict, __pyx_vtabptr_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XPath", (PyObject *)&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XPath = &__pyx_type_4lxml_5etree_XPath;
-  __pyx_vtabptr_4lxml_5etree_ETXPath = &__pyx_vtable_4lxml_5etree_ETXPath;
-  __pyx_vtable_4lxml_5etree_ETXPath.__pyx_base = *__pyx_vtabptr_4lxml_5etree_XPath;
-  __pyx_vtable_4lxml_5etree_ETXPath._nsextract_path = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_ETXPath *, PyObject *))__pyx_f_4lxml_5etree_7ETXPath__nsextract_path;
-  __pyx_type_4lxml_5etree_ETXPath.tp_base = __pyx_ptype_4lxml_5etree_XPath;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ETXPath.tp_dict, __pyx_vtabptr_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ETXPath", (PyObject *)&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_ETXPath = &__pyx_type_4lxml_5etree_ETXPath;
-  __pyx_vtabptr_4lxml_5etree__XSLTResolverContext = &__pyx_vtable_4lxml_5etree__XSLTResolverContext;
-  __pyx_vtable_4lxml_5etree__XSLTResolverContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ResolverContext;
-  __pyx_vtable_4lxml_5etree__XSLTResolverContext._copy = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *(*)(struct __pyx_obj_4lxml_5etree__XSLTResolverContext *))__pyx_f_4lxml_5etree_20_XSLTResolverContext__copy;
-  __pyx_type_4lxml_5etree__XSLTResolverContext.tp_base = __pyx_ptype_4lxml_5etree__ResolverContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTResolverContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTResolverContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTResolverContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__XSLTResolverContext = &__pyx_type_4lxml_5etree__XSLTResolverContext;
-  __pyx_vtabptr_4lxml_5etree_XSLTAccessControl = &__pyx_vtable_4lxml_5etree_XSLTAccessControl;
-  __pyx_vtable_4lxml_5etree_XSLTAccessControl._setAccess = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *, xsltSecurityOption, int))__pyx_f_4lxml_5etree_17XSLTAccessControl__setAccess;
-  __pyx_vtable_4lxml_5etree_XSLTAccessControl._register_in_context = (void (*)(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *, xsltTransformContext *))__pyx_f_4lxml_5etree_17XSLTAccessControl__register_in_context;
-  __pyx_vtable_4lxml_5etree_XSLTAccessControl._optval = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *, xsltSecurityOption))__pyx_f_4lxml_5etree_17XSLTAccessControl__optval;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLTAccessControl) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLTAccessControl.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLTAccessControl) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XSLTAccessControl", (PyObject *)&__pyx_type_4lxml_5etree_XSLTAccessControl) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XSLTAccessControl = &__pyx_type_4lxml_5etree_XSLTAccessControl;
-  __pyx_vtabptr_4lxml_5etree__XSLTContext = &__pyx_vtable_4lxml_5etree__XSLTContext;
-  __pyx_vtable_4lxml_5etree__XSLTContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseContext;
-  __pyx_vtable_4lxml_5etree__XSLTContext.__pyx_base._copy = (struct __pyx_obj_4lxml_5etree__BaseContext *(*)(struct __pyx_obj_4lxml_5etree__BaseContext *))__pyx_f_4lxml_5etree_12_XSLTContext__copy;
-  __pyx_vtable_4lxml_5etree__XSLTContext.register_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTContext *, xsltTransformContext *, struct LxmlDocument *))__pyx_f_4lxml_5etree_12_XSLTContext_register_context;
-  __pyx_vtable_4lxml_5etree__XSLTContext.free_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTContext *))__pyx_f_4lxml_5etree_12_XSLTContext_free_context;
-  __pyx_type_4lxml_5etree__XSLTContext.tp_base = __pyx_ptype_4lxml_5etree__BaseContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__XSLTContext = &__pyx_type_4lxml_5etree__XSLTContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTQuotedStringParam) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__XSLTQuotedStringParam = &__pyx_type_4lxml_5etree__XSLTQuotedStringParam;
-  __pyx_vtabptr_4lxml_5etree_XSLT = &__pyx_vtable_4lxml_5etree_XSLT;
-  __pyx_vtable_4lxml_5etree_XSLT._run_transform = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree_XSLT *, xmlDoc *, const char **, struct __pyx_obj_4lxml_5etree__XSLTContext *, xsltTransformContext *))__pyx_f_4lxml_5etree_4XSLT__run_transform;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XInclude", (PyObject *)&__pyx_type_4lxml_5etree_XInclude) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XInclude = &__pyx_type_4lxml_5etree_XInclude;
+  __pyx_vtabptr_4lxml_5etree__Document = &__pyx_vtable_4lxml_5etree__Document;
+  __pyx_vtable_4lxml_5etree__Document.getroot = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_getroot;
+  __pyx_vtable_4lxml_5etree__Document.hasdoctype = (int (*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_hasdoctype;
+  __pyx_vtable_4lxml_5etree__Document.getdoctype = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_getdoctype;
+  __pyx_vtable_4lxml_5etree__Document.getxmlinfo = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_getxmlinfo;
+  __pyx_vtable_4lxml_5etree__Document.isstandalone = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_isstandalone;
+  __pyx_vtable_4lxml_5etree__Document.buildNewPrefix = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_buildNewPrefix;
+  __pyx_vtable_4lxml_5etree__Document._findOrBuildNodeNs = (xmlNs *(*)(struct LxmlDocument *, xmlNode *, const xmlChar *, const xmlChar *, int))__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs;
+  __pyx_vtable_4lxml_5etree__Document._setNodeNs = (int (*)(struct LxmlDocument *, xmlNode *, const xmlChar *))__pyx_f_4lxml_5etree_9_Document__setNodeNs;
+  if (PyType_Ready(&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlDocumentType.tp_dict, __pyx_vtabptr_4lxml_5etree__Document) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Document", (PyObject *)&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__Document = &LxmlDocumentType;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__InputDocument) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__InputDocument = &__pyx_type_4lxml_5etree__InputDocument;
+  __pyx_vtabptr_4lxml_5etree__ElementTree = &__pyx_vtable_4lxml_5etree__ElementTree;
+  __pyx_vtable_4lxml_5etree__ElementTree._assertHasRoot = (PyObject *(*)(struct LxmlElementTree *))__pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot;
+  if (PyType_Ready(&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlElementTreeType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementTree", (PyObject *)&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ElementTree = &LxmlElementTreeType;
+  __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy = &__pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy;
+  __pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
+  __pyx_type_4lxml_5etree__ModifyContentOnlyProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ModifyContentOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ModifyContentOnlyProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy = &__pyx_type_4lxml_5etree__ModifyContentOnlyProxy;
+  __pyx_vtabptr_4lxml_5etree_ParserBasedElementClassLookup = &__pyx_vtable_4lxml_5etree_ParserBasedElementClassLookup;
+  __pyx_vtable_4lxml_5etree_ParserBasedElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
+  __pyx_type_4lxml_5etree_ParserBasedElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ParserBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ParserBasedElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_ParserBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ParserBasedElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_ParserBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ParserBasedElementClassLookup = &__pyx_type_4lxml_5etree_ParserBasedElementClassLookup;
+  __pyx_vtabptr_4lxml_5etree__Validator = &__pyx_vtable_4lxml_5etree__Validator;
+  __pyx_vtable_4lxml_5etree__Validator._append_log_message = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int, int, int, int, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__append_log_message;
+  __pyx_vtable_4lxml_5etree__Validator._clear_error_log = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__clear_error_log;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Validator.tp_dict, __pyx_vtabptr_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Validator", (PyObject *)&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__Validator = &__pyx_type_4lxml_5etree__Validator;
+  __pyx_vtabptr_4lxml_5etree_RelaxNG = &__pyx_vtable_4lxml_5etree_RelaxNG;
+  __pyx_vtable_4lxml_5etree_RelaxNG.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Validator;
+  __pyx_type_4lxml_5etree_RelaxNG.tp_base = __pyx_ptype_4lxml_5etree__Validator;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_RelaxNG) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XSLT, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_RelaxNG, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__.doc = __pyx_doc_4lxml_5etree_4XSLT_18__call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__;
+      __pyx_wrapperbase_4lxml_5etree_7RelaxNG_6__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_7RelaxNG_6__call__.doc = __pyx_doc_4lxml_5etree_7RelaxNG_6__call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_7RelaxNG_6__call__;
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLT.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XSLT", (PyObject *)&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XSLT = &__pyx_type_4lxml_5etree_XSLT;
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_RelaxNG.tp_dict, __pyx_vtabptr_4lxml_5etree_RelaxNG) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "RelaxNG", (PyObject *)&__pyx_type_4lxml_5etree_RelaxNG) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_RelaxNG = &__pyx_type_4lxml_5etree_RelaxNG;
+  __pyx_vtabptr_4lxml_5etree__LogEntry = &__pyx_vtable_4lxml_5etree__LogEntry;
+  __pyx_vtable_4lxml_5etree__LogEntry._setError = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__LogEntry *, xmlError *))__pyx_f_4lxml_5etree_9_LogEntry__setError;
+  __pyx_vtable_4lxml_5etree__LogEntry._setGeneric = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__LogEntry *, int, int, int, int, PyObject *, PyObject *))__pyx_f_4lxml_5etree_9_LogEntry__setGeneric;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__LogEntry) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__LogEntry.tp_dict, __pyx_vtabptr_4lxml_5etree__LogEntry) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_LogEntry", (PyObject *)&__pyx_type_4lxml_5etree__LogEntry) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 38; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__LogEntry = &__pyx_type_4lxml_5etree__LogEntry;
+  __pyx_vtabptr_4lxml_5etree__PythonSaxParserTarget = &__pyx_vtable_4lxml_5etree__PythonSaxParserTarget;
+  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base = *__pyx_vtabptr_4lxml_5etree__SaxParserTarget;
+  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxStart = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxStart;
+  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxEnd = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxEnd;
+  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxData = (int (*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxData;
+  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxDoctype = (int (*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxDoctype;
+  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxPi = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxPi;
+  __pyx_vtable_4lxml_5etree__PythonSaxParserTarget.__pyx_base._handleSaxComment = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_22_PythonSaxParserTarget__handleSaxComment;
+  __pyx_type_4lxml_5etree__PythonSaxParserTarget.tp_base = __pyx_ptype_4lxml_5etree__SaxParserTarget;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__PythonSaxParserTarget) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__PythonSaxParserTarget.tp_dict, __pyx_vtabptr_4lxml_5etree__PythonSaxParserTarget) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__PythonSaxParserTarget = &__pyx_type_4lxml_5etree__PythonSaxParserTarget;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "CDATA", (PyObject *)&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_CDATA = &__pyx_type_4lxml_5etree_CDATA;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "xmlfile", (PyObject *)&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_xmlfile = &__pyx_type_4lxml_5etree_xmlfile;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDElementContentDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__DTDElementContentDecl = &__pyx_type_4lxml_5etree__DTDElementContentDecl;
+  __pyx_vtabptr_4lxml_5etree__IterparseContext = &__pyx_vtable_4lxml_5etree__IterparseContext;
+  __pyx_vtable_4lxml_5etree__IterparseContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ParserContext;
+  __pyx_vtable_4lxml_5etree__IterparseContext.__pyx_base._initParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_17_IterparseContext__initParserContext;
+  __pyx_vtable_4lxml_5etree__IterparseContext._setEventFilter = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_17_IterparseContext__setEventFilter;
+  __pyx_vtable_4lxml_5etree__IterparseContext.startDocument = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, xmlDoc *))__pyx_f_4lxml_5etree_17_IterparseContext_startDocument;
+  __pyx_vtable_4lxml_5etree__IterparseContext.startNode = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, xmlNode *))__pyx_f_4lxml_5etree_17_IterparseContext_startNode;
+  __pyx_vtable_4lxml_5etree__IterparseContext.endNode = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, xmlNode *))__pyx_f_4lxml_5etree_17_IterparseContext_endNode;
+  __pyx_vtable_4lxml_5etree__IterparseContext.pushEvent = (int (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *, PyObject *, xmlNode *))__pyx_f_4lxml_5etree_17_IterparseContext_pushEvent;
+  __pyx_vtable_4lxml_5etree__IterparseContext._assureDocGetsFreed = (void (*)(struct __pyx_obj_4lxml_5etree__IterparseContext *))__pyx_f_4lxml_5etree_17_IterparseContext__assureDocGetsFreed;
+  __pyx_type_4lxml_5etree__IterparseContext.tp_base = __pyx_ptype_4lxml_5etree__ParserContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__IterparseContext) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__IterparseContext.tp_dict, __pyx_vtabptr_4lxml_5etree__IterparseContext) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__IterparseContext = &__pyx_type_4lxml_5etree__IterparseContext;
+  __pyx_vtabptr_4lxml_5etree__ListErrorLog = &__pyx_vtable_4lxml_5etree__ListErrorLog;
+  __pyx_vtable_4lxml_5etree__ListErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseErrorLog;
+  __pyx_vtable_4lxml_5etree__ListErrorLog.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_13_ListErrorLog_copy;
+  __pyx_type_4lxml_5etree__ListErrorLog.tp_base = __pyx_ptype_4lxml_5etree__BaseErrorLog;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ListErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ListErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ListErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ListErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__ListErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ListErrorLog = &__pyx_type_4lxml_5etree__ListErrorLog;
+  __pyx_vtabptr_4lxml_5etree__ErrorLog = &__pyx_vtable_4lxml_5etree__ErrorLog;
+  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ListErrorLog;
+  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx_base.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_9_ErrorLog_copy;
+  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_9_ErrorLog_receive;
+  __pyx_vtable_4lxml_5etree__ErrorLog.__pyx___enter__ = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLog *))__pyx_f_4lxml_5etree_9_ErrorLog___enter__;
+  __pyx_vtable_4lxml_5etree__ErrorLog.connect = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLog *))__pyx_f_4lxml_5etree_9_ErrorLog_connect;
+  __pyx_vtable_4lxml_5etree__ErrorLog.disconnect = (int (*)(struct __pyx_obj_4lxml_5etree__ErrorLog *))__pyx_f_4lxml_5etree_9_ErrorLog_disconnect;
+  __pyx_vtable_4lxml_5etree__ErrorLog.clear = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_9_ErrorLog_clear;
+  __pyx_type_4lxml_5etree__ErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ListErrorLog;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__ErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__ErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ErrorLog = &__pyx_type_4lxml_5etree__ErrorLog;
+  __pyx_vtabptr_4lxml_5etree__ReadOnlyPIProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyPIProxy;
+  __pyx_vtable_4lxml_5etree__ReadOnlyPIProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
+  __pyx_type_4lxml_5etree__ReadOnlyPIProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyPIProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ReadOnlyPIProxy = &__pyx_type_4lxml_5etree__ReadOnlyPIProxy;
   __pyx_vtabptr_4lxml_5etree__XSLTResultTree = &__pyx_vtable_4lxml_5etree__XSLTResultTree;
   __pyx_vtable_4lxml_5etree__XSLTResultTree.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementTree;
   __pyx_vtable_4lxml_5etree__XSLTResultTree._saveToStringAndSize = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTResultTree *, xmlChar **, int *))__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize;
@@ -186027,27 +175686,40 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTResultTree.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "_XSLTResultTree", (PyObject *)&__pyx_type_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XSLTResultTree = &__pyx_type_4lxml_5etree__XSLTResultTree;
-  __pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction = &__pyx_vtable_4lxml_5etree__XSLTProcessingInstruction;
-  __pyx_vtable_4lxml_5etree__XSLTProcessingInstruction.__pyx_base = *__pyx_vtabptr_4lxml_5etree_PIBase;
-  __pyx_type_4lxml_5etree__XSLTProcessingInstruction.tp_base = __pyx_ptype_4lxml_5etree_PIBase;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_XSLTProcessingInstruction", (PyObject *)&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__XSLTProcessingInstruction = &__pyx_type_4lxml_5etree__XSLTProcessingInstruction;
-  __pyx_vtabptr_4lxml_5etree_XSLTExtension = &__pyx_vtable_4lxml_5etree_XSLTExtension;
-  __pyx_vtable_4lxml_5etree_XSLTExtension._collectXSLTResultContent = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_XSLTExtension *, struct __pyx_obj_4lxml_5etree__XSLTContext *, xmlNode *))__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLTExtension) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLTExtension.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLTExtension) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XSLTExtension", (PyObject *)&__pyx_type_4lxml_5etree_XSLTExtension) < 0) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_XSLTExtension = &__pyx_type_4lxml_5etree_XSLTExtension;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDElementContentDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__DTDElementContentDecl = &__pyx_type_4lxml_5etree__DTDElementContentDecl;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDAttributeDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__DTDAttributeDecl = &__pyx_type_4lxml_5etree__DTDAttributeDecl;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDElementDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__DTDElementDecl = &__pyx_type_4lxml_5etree__DTDElementDecl;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDEntityDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__DTDEntityDecl = &__pyx_type_4lxml_5etree__DTDEntityDecl;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementTextIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ElementTextIterator = &__pyx_type_4lxml_5etree_ElementTextIterator;
+  __pyx_vtabptr_4lxml_5etree__ElementIterator = &__pyx_vtable_4lxml_5etree__ElementIterator;
+  __pyx_vtable_4lxml_5etree__ElementIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementTagMatcher;
+  __pyx_vtable_4lxml_5etree__ElementIterator._storeNext = (void (*)(struct LxmlElementIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_16_ElementIterator__storeNext;
+  LxmlElementIteratorType.tp_base = __pyx_ptype_4lxml_5etree__ElementTagMatcher;
+  if (PyType_Ready(&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlElementIteratorType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementIterator", (PyObject *)&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ElementIterator = &LxmlElementIteratorType;
+  LxmlElementBaseType.tp_base = __pyx_ptype_4lxml_5etree__Element;
+  if (PyType_Ready(&LxmlElementBaseType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if CYTHON_COMPILING_IN_CPYTHON
+  {
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementBaseType, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
+      __pyx_wrapperbase_4lxml_5etree_11ElementBase___init__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_11ElementBase___init__.doc = __pyx_doc_4lxml_5etree_11ElementBase___init__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_11ElementBase___init__;
+    }
+  }
+  #endif
+  if (__Pyx_SetAttrString(__pyx_m, "ElementBase", (PyObject *)&LxmlElementBaseType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ElementBase = &LxmlElementBaseType;
+  __pyx_vtabptr_4lxml_5etree_PyErrorLog = &__pyx_vtable_4lxml_5etree_PyErrorLog;
+  __pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseErrorLog;
+  __pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base.copy = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10PyErrorLog_copy;
+  __pyx_vtable_4lxml_5etree_PyErrorLog.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10PyErrorLog_receive;
+  __pyx_type_4lxml_5etree_PyErrorLog.tp_base = __pyx_ptype_4lxml_5etree__BaseErrorLog;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_PyErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PyErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree_PyErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "PyErrorLog", (PyObject *)&__pyx_type_4lxml_5etree_PyErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_PyErrorLog = &__pyx_type_4lxml_5etree_PyErrorLog;
   __pyx_vtabptr_4lxml_5etree_DTD = &__pyx_vtable_4lxml_5etree_DTD;
   __pyx_vtable_4lxml_5etree_DTD.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Validator;
   __pyx_type_4lxml_5etree_DTD.tp_base = __pyx_ptype_4lxml_5etree__Validator;
@@ -186065,23 +175737,183 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_DTD.tp_dict, __pyx_vtabptr_4lxml_5etree_DTD) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "DTD", (PyObject *)&__pyx_type_4lxml_5etree_DTD) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_DTD = &__pyx_type_4lxml_5etree_DTD;
-  __pyx_vtabptr_4lxml_5etree_RelaxNG = &__pyx_vtable_4lxml_5etree_RelaxNG;
-  __pyx_vtable_4lxml_5etree_RelaxNG.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Validator;
-  __pyx_type_4lxml_5etree_RelaxNG.tp_base = __pyx_ptype_4lxml_5etree__Validator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_RelaxNG) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_vtabptr_4lxml_5etree_iterparse = &__pyx_vtable_4lxml_5etree_iterparse;
+  __pyx_vtable_4lxml_5etree_iterparse.__pyx_base = *__pyx_vtabptr_4lxml_5etree__BaseParser;
+  __pyx_vtable_4lxml_5etree_iterparse.__pyx_base._createContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__BaseParser *, PyObject *))__pyx_f_4lxml_5etree_9iterparse__createContext;
+  __pyx_vtable_4lxml_5etree_iterparse._close_source = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_iterparse *))__pyx_f_4lxml_5etree_9iterparse__close_source;
+  __pyx_vtable_4lxml_5etree_iterparse._read_more_events = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_iterparse *, struct __pyx_obj_4lxml_5etree__IterparseContext *))__pyx_f_4lxml_5etree_9iterparse__read_more_events;
+  __pyx_type_4lxml_5etree_iterparse.tp_base = __pyx_ptype_4lxml_5etree__BaseParser;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_iterparse) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_iterparse.tp_dict, __pyx_vtabptr_4lxml_5etree_iterparse) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "iterparse", (PyObject *)&__pyx_type_4lxml_5etree_iterparse) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_iterparse = &__pyx_type_4lxml_5etree_iterparse;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree___pyx_scope_struct_2_iterelements = &__pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements;
+  __pyx_vtabptr_4lxml_5etree__XSLTResolverContext = &__pyx_vtable_4lxml_5etree__XSLTResolverContext;
+  __pyx_vtable_4lxml_5etree__XSLTResolverContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ResolverContext;
+  __pyx_vtable_4lxml_5etree__XSLTResolverContext._copy = (struct __pyx_obj_4lxml_5etree__XSLTResolverContext *(*)(struct __pyx_obj_4lxml_5etree__XSLTResolverContext *))__pyx_f_4lxml_5etree_20_XSLTResolverContext__copy;
+  __pyx_type_4lxml_5etree__XSLTResolverContext.tp_base = __pyx_ptype_4lxml_5etree__ResolverContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTResolverContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTResolverContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTResolverContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__XSLTResolverContext = &__pyx_type_4lxml_5etree__XSLTResolverContext;
+  __pyx_vtabptr_4lxml_5etree__ParserDictionaryContext = &__pyx_vtable_4lxml_5etree__ParserDictionaryContext;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initMainParserContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initMainParserContext;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext._findThreadParserContext = (struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext__findThreadParserContext;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.setDefaultParser = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_setDefaultParser;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.getDefaultParser = (struct __pyx_obj_4lxml_5etree__BaseParser *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext._getThreadDict = (xmlDict *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlDict *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext__getThreadDict;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initThreadDictRef = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlDict **))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initThreadDictRef;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initParserDict = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlParserCtxt *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initParserDict;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initXPathParserDict = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlXPathContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initXPathParserDict;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.initDocDict = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, xmlDoc *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_initDocDict;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.findImpliedContext = (struct __pyx_obj_4lxml_5etree__ParserContext *(*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_findImpliedContext;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.pushImpliedContextFromParser = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, struct __pyx_obj_4lxml_5etree__BaseParser *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContextFromParser;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.pushImpliedContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *, struct __pyx_obj_4lxml_5etree__ParserContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_pushImpliedContext;
+  __pyx_vtable_4lxml_5etree__ParserDictionaryContext.popImpliedContext = (void (*)(struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *))__pyx_f_4lxml_5etree_24_ParserDictionaryContext_popImpliedContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ParserDictionaryContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ParserDictionaryContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ParserDictionaryContext) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ParserDictionaryContext = &__pyx_type_4lxml_5etree__ParserDictionaryContext;
+  __pyx_vtabptr_4lxml_5etree_iterwalk = &__pyx_vtable_4lxml_5etree_iterwalk;
+  __pyx_vtable_4lxml_5etree_iterwalk._start_node = (int (*)(struct __pyx_obj_4lxml_5etree_iterwalk *, struct LxmlElement *))__pyx_f_4lxml_5etree_8iterwalk__start_node;
+  __pyx_vtable_4lxml_5etree_iterwalk._end_node = (struct LxmlElement *(*)(struct __pyx_obj_4lxml_5etree_iterwalk *))__pyx_f_4lxml_5etree_8iterwalk__end_node;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_iterwalk) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_iterwalk.tp_dict, __pyx_vtabptr_4lxml_5etree_iterwalk) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "iterwalk", (PyObject *)&__pyx_type_4lxml_5etree_iterwalk) < 0) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_iterwalk = &__pyx_type_4lxml_5etree_iterwalk;
+  __pyx_vtabptr_4lxml_5etree__DomainErrorLog = &__pyx_vtable_4lxml_5etree__DomainErrorLog;
+  __pyx_vtable_4lxml_5etree__DomainErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ErrorLog;
+  __pyx_vtable_4lxml_5etree__DomainErrorLog.__pyx_base.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_15_DomainErrorLog_receive;
+  __pyx_type_4lxml_5etree__DomainErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ErrorLog;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__DomainErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__DomainErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_DomainErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__DomainErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__DomainErrorLog = &__pyx_type_4lxml_5etree__DomainErrorLog;
+  __pyx_vtabptr_4lxml_5etree_AttributeBasedElementClassLookup = &__pyx_vtable_4lxml_5etree_AttributeBasedElementClassLookup;
+  __pyx_vtable_4lxml_5etree_AttributeBasedElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
+  __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "AttributeBasedElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_AttributeBasedElementClassLookup = &__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "DocInfo", (PyObject *)&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_DocInfo = &__pyx_type_4lxml_5etree_DocInfo;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDAttributeDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__DTDAttributeDecl = &__pyx_type_4lxml_5etree__DTDAttributeDecl;
+  __pyx_vtabptr_4lxml_5etree_XMLSchema = &__pyx_vtable_4lxml_5etree_XMLSchema;
+  __pyx_vtable_4lxml_5etree_XMLSchema.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Validator;
+  __pyx_vtable_4lxml_5etree_XMLSchema._newSaxValidator = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *(*)(struct __pyx_obj_4lxml_5etree_XMLSchema *, int))__pyx_f_4lxml_5etree_9XMLSchema__newSaxValidator;
+  __pyx_type_4lxml_5etree_XMLSchema.tp_base = __pyx_ptype_4lxml_5etree__Validator;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XMLSchema) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_RelaxNG, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XMLSchema, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_5etree_7RelaxNG_6__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_5etree_7RelaxNG_6__call__.doc = __pyx_doc_4lxml_5etree_7RelaxNG_6__call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_7RelaxNG_6__call__;
+      __pyx_wrapperbase_4lxml_5etree_9XMLSchema_6__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_5etree_9XMLSchema_6__call__.doc = __pyx_doc_4lxml_5etree_9XMLSchema_6__call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_5etree_9XMLSchema_6__call__;
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_RelaxNG.tp_dict, __pyx_vtabptr_4lxml_5etree_RelaxNG) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "RelaxNG", (PyObject *)&__pyx_type_4lxml_5etree_RelaxNG) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree_RelaxNG = &__pyx_type_4lxml_5etree_RelaxNG;
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XMLSchema.tp_dict, __pyx_vtabptr_4lxml_5etree_XMLSchema) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XMLSchema", (PyObject *)&__pyx_type_4lxml_5etree_XMLSchema) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XMLSchema = &__pyx_type_4lxml_5etree_XMLSchema;
+  __pyx_vtabptr_4lxml_5etree__ElementMatchIterator = &__pyx_vtable_4lxml_5etree__ElementMatchIterator;
+  __pyx_vtable_4lxml_5etree__ElementMatchIterator._initTagMatcher = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher;
+  __pyx_vtable_4lxml_5etree__ElementMatchIterator._storeNext = (int (*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ElementMatchIterator.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementMatchIterator", (PyObject *)&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ElementMatchIterator = &__pyx_type_4lxml_5etree__ElementMatchIterator;
+  __pyx_vtabptr_4lxml_5etree_AncestorsIterator = &__pyx_vtable_4lxml_5etree_AncestorsIterator;
+  __pyx_vtable_4lxml_5etree_AncestorsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
+  __pyx_type_4lxml_5etree_AncestorsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AncestorsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "AncestorsIterator", (PyObject *)&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_AncestorsIterator = &__pyx_type_4lxml_5etree_AncestorsIterator;
+  __pyx_vtabptr_4lxml_5etree__IDDict = &__pyx_vtable_4lxml_5etree__IDDict;
+  __pyx_vtable_4lxml_5etree__IDDict._build_keys = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IDDict *))__pyx_f_4lxml_5etree_7_IDDict__build_keys;
+  __pyx_vtable_4lxml_5etree__IDDict._build_items = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IDDict *))__pyx_f_4lxml_5etree_7_IDDict__build_items;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__IDDict) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__IDDict.tp_dict, __pyx_vtabptr_4lxml_5etree__IDDict) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_IDDict", (PyObject *)&__pyx_type_4lxml_5etree__IDDict) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__IDDict = &__pyx_type_4lxml_5etree__IDDict;
+  __pyx_vtabptr_4lxml_5etree_ElementNamespaceClassLookup = &__pyx_vtable_4lxml_5etree_ElementNamespaceClassLookup;
+  __pyx_vtable_4lxml_5etree_ElementNamespaceClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
+  __pyx_type_4lxml_5etree_ElementNamespaceClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementNamespaceClassLookup) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementNamespaceClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementNamespaceClassLookup) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementNamespaceClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_ElementNamespaceClassLookup) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ElementNamespaceClassLookup = &__pyx_type_4lxml_5etree_ElementNamespaceClassLookup;
+  __pyx_vtabptr_4lxml_5etree__AppendOnlyElementProxy = &__pyx_vtable_4lxml_5etree__AppendOnlyElementProxy;
+  __pyx_vtable_4lxml_5etree__AppendOnlyElementProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyElementProxy;
+  __pyx_vtable_4lxml_5etree__AppendOnlyElementProxy.append = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__AppendOnlyElementProxy *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_23_AppendOnlyElementProxy_append;
+  __pyx_type_4lxml_5etree__AppendOnlyElementProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyElementProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__AppendOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__AppendOnlyElementProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__AppendOnlyElementProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__AppendOnlyElementProxy = &__pyx_type_4lxml_5etree__AppendOnlyElementProxy;
+  __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyEntityProxy = &__pyx_vtable_4lxml_5etree__ModifyContentOnlyEntityProxy;
+  __pyx_vtable_4lxml_5etree__ModifyContentOnlyEntityProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy;
+  __pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy.tp_base = __pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ModifyContentOnlyEntityProxy = &__pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy;
+  __pyx_vtabptr_4lxml_5etree__ReadOnlyEntityProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyEntityProxy;
+  __pyx_vtable_4lxml_5etree__ReadOnlyEntityProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
+  __pyx_type_4lxml_5etree__ReadOnlyEntityProxy.tp_base = __pyx_ptype_4lxml_5etree__ReadOnlyProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyEntityProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ReadOnlyEntityProxy = &__pyx_type_4lxml_5etree__ReadOnlyEntityProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__FileWriterElement) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__FileWriterElement = &__pyx_type_4lxml_5etree__FileWriterElement;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__MemDebug) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__MemDebug = &__pyx_type_4lxml_5etree__MemDebug;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Attrib", (PyObject *)&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__Attrib = &__pyx_type_4lxml_5etree__Attrib;
+  __pyx_type_4lxml_5etree_ElementDefaultClassLookup.tp_base = __pyx_ptype_4lxml_5etree_ElementClassLookup;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDefaultClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementDefaultClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_ElementDefaultClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ElementDefaultClassLookup = &__pyx_type_4lxml_5etree_ElementDefaultClassLookup;
+  __pyx_type_4lxml_5etree__ElementUnicodeResult.tp_base = (&PyUnicode_Type);
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementUnicodeResult", (PyObject *)&__pyx_type_4lxml_5etree__ElementUnicodeResult) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ElementUnicodeResult = &__pyx_type_4lxml_5etree__ElementUnicodeResult;
+  __pyx_vtabptr_4lxml_5etree__ExsltRegExp = &__pyx_vtable_4lxml_5etree__ExsltRegExp;
+  __pyx_vtable_4lxml_5etree__ExsltRegExp._make_string = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ExsltRegExp *, PyObject *))__pyx_f_4lxml_5etree_12_ExsltRegExp__make_string;
+  __pyx_vtable_4lxml_5etree__ExsltRegExp._compile = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ExsltRegExp *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_12_ExsltRegExp__compile;
+  __pyx_vtable_4lxml_5etree__ExsltRegExp._register_in_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ExsltRegExp *, struct __pyx_obj_4lxml_5etree__BaseContext *))__pyx_f_4lxml_5etree_12_ExsltRegExp__register_in_context;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ExsltRegExp) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ExsltRegExp.tp_dict, __pyx_vtabptr_4lxml_5etree__ExsltRegExp) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ExsltRegExp = &__pyx_type_4lxml_5etree__ExsltRegExp;
+  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_ptype_4lxml_5etree_QName = &__pyx_type_4lxml_5etree_QName;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities = &__pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities;
+  __pyx_vtabptr_4lxml_5etree__TempStore = &__pyx_vtable_4lxml_5etree__TempStore;
+  __pyx_vtable_4lxml_5etree__TempStore.add = (int (*)(struct __pyx_obj_4lxml_5etree__TempStore *, PyObject *))__pyx_f_4lxml_5etree_10_TempStore_add;
+  __pyx_vtable_4lxml_5etree__TempStore.clear = (int (*)(struct __pyx_obj_4lxml_5etree__TempStore *))__pyx_f_4lxml_5etree_10_TempStore_clear;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__TempStore.tp_dict, __pyx_vtabptr_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__TempStore = &__pyx_type_4lxml_5etree__TempStore;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__OpaqueNodeWrapper) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__OpaqueNodeWrapper = &__pyx_type_4lxml_5etree__OpaqueNodeWrapper;
+  __pyx_vtabptr_4lxml_5etree__FilelikeWriter = &__pyx_vtable_4lxml_5etree__FilelikeWriter;
+  __pyx_vtable_4lxml_5etree__FilelikeWriter._createOutputBuffer = (xmlOutputBuffer *(*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *, xmlCharEncodingHandler *))__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer;
+  __pyx_vtable_4lxml_5etree__FilelikeWriter.write = (int (*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *, char *, int))__pyx_f_4lxml_5etree_15_FilelikeWriter_write;
+  __pyx_vtable_4lxml_5etree__FilelikeWriter.close = (int (*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *))__pyx_f_4lxml_5etree_15_FilelikeWriter_close;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__FilelikeWriter.tp_dict, __pyx_vtabptr_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__FilelikeWriter = &__pyx_type_4lxml_5etree__FilelikeWriter;
+  __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper = &__pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper;
+  __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper._assertNode = (int (*)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *))__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode;
+  __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper.append = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append;
+  __pyx_type_4lxml_5etree__OpaqueDocumentWrapper.tp_base = __pyx_ptype_4lxml_5etree__OpaqueNodeWrapper;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__OpaqueDocumentWrapper) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__OpaqueDocumentWrapper.tp_dict, __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__OpaqueDocumentWrapper = &__pyx_type_4lxml_5etree__OpaqueDocumentWrapper;
   __pyx_vtabptr_4lxml_5etree_Schematron = &__pyx_vtable_4lxml_5etree_Schematron;
   __pyx_vtable_4lxml_5etree_Schematron.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Validator;
   __pyx_type_4lxml_5etree_Schematron.tp_base = __pyx_ptype_4lxml_5etree__Validator;
@@ -186099,16 +175931,77 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_Schematron.tp_dict, __pyx_vtabptr_4lxml_5etree_Schematron) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "Schematron", (PyObject *)&__pyx_type_4lxml_5etree_Schematron) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_Schematron = &__pyx_type_4lxml_5etree_Schematron;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__MemDebug) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree__MemDebug = &__pyx_type_4lxml_5etree__MemDebug;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct__itervalues) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues = &__pyx_type_4lxml_5etree___pyx_scope_struct__itervalues;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes = &__pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree___pyx_scope_struct_2_iterelements = &__pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities = &__pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ErrorLogContext) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ErrorLogContext = &__pyx_type_4lxml_5etree__ErrorLogContext;
+  __pyx_vtabptr_4lxml_5etree_XSLTAccessControl = &__pyx_vtable_4lxml_5etree_XSLTAccessControl;
+  __pyx_vtable_4lxml_5etree_XSLTAccessControl._setAccess = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *, xsltSecurityOption, int))__pyx_f_4lxml_5etree_17XSLTAccessControl__setAccess;
+  __pyx_vtable_4lxml_5etree_XSLTAccessControl._register_in_context = (void (*)(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *, xsltTransformContext *))__pyx_f_4lxml_5etree_17XSLTAccessControl__register_in_context;
+  __pyx_vtable_4lxml_5etree_XSLTAccessControl._optval = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *, xsltSecurityOption))__pyx_f_4lxml_5etree_17XSLTAccessControl__optval;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLTAccessControl) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLTAccessControl.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLTAccessControl) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XSLTAccessControl", (PyObject *)&__pyx_type_4lxml_5etree_XSLTAccessControl) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_XSLTAccessControl = &__pyx_type_4lxml_5etree_XSLTAccessControl;
+  __pyx_vtabptr_4lxml_5etree_SiblingsIterator = &__pyx_vtable_4lxml_5etree_SiblingsIterator;
+  __pyx_vtable_4lxml_5etree_SiblingsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
+  __pyx_type_4lxml_5etree_SiblingsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_SiblingsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "SiblingsIterator", (PyObject *)&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_SiblingsIterator = &__pyx_type_4lxml_5etree_SiblingsIterator;
+  __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 = 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__ModifyContentOnlyPIProxy = &__pyx_vtable_4lxml_5etree__ModifyContentOnlyPIProxy;
+  __pyx_vtable_4lxml_5etree__ModifyContentOnlyPIProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy;
+  __pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy.tp_base = __pyx_ptype_4lxml_5etree__ModifyContentOnlyProxy;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyPIProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ModifyContentOnlyPIProxy = &__pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy;
+  __pyx_vtabptr_4lxml_5etree__ClassNamespaceRegistry = &__pyx_vtable_4lxml_5etree__ClassNamespaceRegistry;
+  __pyx_vtable_4lxml_5etree__ClassNamespaceRegistry.__pyx_base = *__pyx_vtabptr_4lxml_5etree__NamespaceRegistry;
+  __pyx_type_4lxml_5etree__ClassNamespaceRegistry.tp_base = __pyx_ptype_4lxml_5etree__NamespaceRegistry;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ClassNamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ClassNamespaceRegistry.tp_dict, __pyx_vtabptr_4lxml_5etree__ClassNamespaceRegistry) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ClassNamespaceRegistry = &__pyx_type_4lxml_5etree__ClassNamespaceRegistry;
+  __pyx_vtabptr_4lxml_5etree__ParserSchemaValidationContext = &__pyx_vtable_4lxml_5etree__ParserSchemaValidationContext;
+  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.copy = (struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *(*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_copy;
+  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.inject_default_attributes = (void (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *, xmlDoc *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_inject_default_attributes;
+  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.connect = (int (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *, xmlParserCtxt *, struct __pyx_obj_4lxml_5etree__BaseErrorLog *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_connect;
+  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.disconnect = (void (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_disconnect;
+  __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext.isvalid = (int (*)(struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *))__pyx_f_4lxml_5etree_30_ParserSchemaValidationContext_isvalid;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ParserSchemaValidationContext) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ParserSchemaValidationContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ParserSchemaValidationContext) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__ParserSchemaValidationContext = &__pyx_type_4lxml_5etree__ParserSchemaValidationContext;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDEntityDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__DTDEntityDecl = &__pyx_type_4lxml_5etree__DTDEntityDecl;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__AttribIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__AttribIterator = &__pyx_type_4lxml_5etree__AttribIterator;
+  __pyx_vtabptr_4lxml_5etree_PythonElementClassLookup = &__pyx_vtable_4lxml_5etree_PythonElementClassLookup;
+  __pyx_vtable_4lxml_5etree_PythonElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
+  __pyx_type_4lxml_5etree_PythonElementClassLookup.tp_base = __pyx_ptype_4lxml_5etree_FallbackElementClassLookup;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_PythonElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_PythonElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_PythonElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "PythonElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_PythonElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_PythonElementClassLookup = &__pyx_type_4lxml_5etree_PythonElementClassLookup;
+  __pyx_vtabptr_4lxml_5etree_ElementChildIterator = &__pyx_vtable_4lxml_5etree_ElementChildIterator;
+  __pyx_vtable_4lxml_5etree_ElementChildIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
+  __pyx_type_4lxml_5etree_ElementChildIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementChildIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementChildIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree_ElementChildIterator = &__pyx_type_4lxml_5etree_ElementChildIterator;
+  __pyx_vtabptr_4lxml_5etree__RotatingErrorLog = &__pyx_vtable_4lxml_5etree__RotatingErrorLog;
+  __pyx_vtable_4lxml_5etree__RotatingErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ErrorLog;
+  __pyx_vtable_4lxml_5etree__RotatingErrorLog.__pyx_base.__pyx_base.__pyx_base.receive = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__BaseErrorLog *, struct __pyx_obj_4lxml_5etree__LogEntry *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_17_RotatingErrorLog_receive;
+  __pyx_type_4lxml_5etree__RotatingErrorLog.tp_base = __pyx_ptype_4lxml_5etree__ErrorLog;
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__RotatingErrorLog.tp_dict, __pyx_vtabptr_4lxml_5etree__RotatingErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_RotatingErrorLog", (PyObject *)&__pyx_type_4lxml_5etree__RotatingErrorLog) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_5etree__RotatingErrorLog = &__pyx_type_4lxml_5etree__RotatingErrorLog;
   /*--- Type import code ---*/
   /*--- Variable import code ---*/
   /*--- Function import code ---*/
@@ -186121,7 +176014,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * __all__ = [
  */
-  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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s____docformat__, ((PyObject *)__pyx_kp_u_473)) < 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"
@@ -186132,9 +176025,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_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_474));
+  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s_474));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_474));
   __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));
@@ -186147,9 +176040,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_475));
+  PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_n_s_475));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_475));
   __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));
@@ -186183,12 +176076,12 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_476));
+  PyList_SET_ITEM(__pyx_t_1, 17, ((PyObject *)__pyx_n_s_476));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_476));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_477));
+  PyList_SET_ITEM(__pyx_t_1, 18, ((PyObject *)__pyx_n_s_477));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_477));
   __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));
@@ -186213,9 +176106,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_478));
+  PyList_SET_ITEM(__pyx_t_1, 27, ((PyObject *)__pyx_n_s_478));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_478));
   __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));
@@ -186225,15 +176118,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_479));
+  PyList_SET_ITEM(__pyx_t_1, 31, ((PyObject *)__pyx_n_s_479));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_479));
   __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_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_480));
+  PyList_SET_ITEM(__pyx_t_1, 33, ((PyObject *)__pyx_n_s_480));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_480));
   __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));
@@ -186249,9 +176142,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_155));
+  PyList_SET_ITEM(__pyx_t_1, 39, ((PyObject *)__pyx_n_s_155));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_155));
   __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));
@@ -186261,9 +176154,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_481));
+  PyList_SET_ITEM(__pyx_t_1, 43, ((PyObject *)__pyx_n_s_481));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_481));
   __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));
@@ -186273,9 +176166,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_482));
+  PyList_SET_ITEM(__pyx_t_1, 47, ((PyObject *)__pyx_n_s_482));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_482));
   __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));
@@ -186291,9 +176184,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_413));
+  PyList_SET_ITEM(__pyx_t_1, 53, ((PyObject *)__pyx_n_s_413));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_413));
   __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));
@@ -186303,12 +176196,12 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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));
+  PyList_SET_ITEM(__pyx_t_1, 57, ((PyObject *)__pyx_n_s_425));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s_425));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_430));
+  PyList_SET_ITEM(__pyx_t_1, 58, ((PyObject *)__pyx_n_s_430));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_430));
   __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));
@@ -186345,9 +176238,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_420));
+  PyList_SET_ITEM(__pyx_t_1, 71, ((PyObject *)__pyx_n_s_420));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_420));
   __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));
@@ -186357,9 +176250,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_483));
+  PyList_SET_ITEM(__pyx_t_1, 75, ((PyObject *)__pyx_n_s_483));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_483));
   __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));
@@ -186441,9 +176334,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_180));
+  PyList_SET_ITEM(__pyx_t_1, 103, ((PyObject *)__pyx_n_s_180));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_180));
   __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));
@@ -186462,9 +176355,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_479));
-  PyList_SET_ITEM(__pyx_t_1, 110, ((PyObject *)__pyx_n_s_479));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_479));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_484));
+  PyList_SET_ITEM(__pyx_t_1, 110, ((PyObject *)__pyx_n_s_484));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_484));
   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;
 
@@ -186660,7 +176553,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s_485), ((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 = __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;}
@@ -186958,7 +176851,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)
  * 
  */
-  __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_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_433); 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);
@@ -186989,7 +176882,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_481), 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_486), 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;}
@@ -187020,15 +176913,15 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_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;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_487), ((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_488), ((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_369), ((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_489), ((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_490), ((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_416), ((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_491), ((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_492), ((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_493), ((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));
@@ -187044,7 +176937,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_490), 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_495), 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 = __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;}
@@ -187063,7 +176956,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     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_494); 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_499); 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 (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;
@@ -187082,7 +176975,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_494); 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_499); 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 (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;}
@@ -187106,9 +176999,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         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_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_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9LxmlError_1__init__, 0, __pyx_n_s_503, NULL, __pyx_n_s_499, ((PyObject *)__pyx_k_codeobj_501)); 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_497));
+  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, ((PyObject *)__pyx_k_tuple_502));
   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;
 
@@ -187126,8 +177019,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_504)) < 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_499); 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 (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;}
@@ -187141,7 +177034,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * cdef object error_super_init = Error.__init__ if python.PY_VERSION_HEX < 0x02050000 else None
  * 
  */
-  if ((PY_VERSION_HEX >= 0x02050000)) {
+  if (((PY_VERSION_HEX >= 0x02050000) != 0)) {
     __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;
@@ -187163,7 +177056,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * 
  */
-  if ((PY_VERSION_HEX < 0x02050000)) {
+  if (((PY_VERSION_HEX < 0x02050000) != 0)) {
     __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 = __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;}
@@ -187200,8 +177093,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_505)) < 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_499); 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 (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;}
@@ -187224,8 +177117,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_506)) < 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_499); 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 (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;}
@@ -187260,9 +177153,9 @@ PyMODINIT_FUNC PyInit_etree(void)
       __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_502));
-      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_502));
-      __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_502));
+      __Pyx_INCREF(((PyObject *)__pyx_kp_u_507));
+      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_507));
+      __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_507));
       __Pyx_INCREF(((PyObject *)__pyx_t_7));
       PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_7));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
@@ -187274,7 +177167,7 @@ PyMODINIT_FUNC PyInit_etree(void)
       __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_503), 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_508), 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;}
@@ -187325,7 +177218,7 @@ PyMODINIT_FUNC PyInit_etree(void)
       __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_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_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_509), ((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;}
@@ -187379,7 +177272,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_479, __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
@@ -187430,9 +177323,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_505));
-  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_u_505));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_505));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_u_510));
+  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_u_510));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_510));
   PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
@@ -187483,7 +177376,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""clear_error_log()
  * 
  */
-  __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_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_3clear_error_log, NULL, __pyx_n_s_499); 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 (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;
@@ -187495,7 +177388,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * cdef _BaseErrorLog _getGlobalErrorLog():
  */
-  __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_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_513), 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));
@@ -187510,9 +177403,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""use_global_python_log(log)
  * 
  */
-  __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_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_5use_global_python_log, NULL, __pyx_n_s_499); 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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_484, __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
@@ -187529,8 +177422,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_516)) < 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_499); 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 (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;}
@@ -187551,8 +177444,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_517)) < 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_499); 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 (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;}
@@ -187573,8 +177466,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_518)) < 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_499); 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 (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;}
@@ -187595,8 +177488,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_519)) < 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_499); 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 (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;}
@@ -187610,11 +177503,11 @@ PyMODINIT_FUNC PyInit_etree(void)
  * NONE=0
  * WARNING=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_516));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_521));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
   __Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_516));
-  __pyx_v_4lxml_5etree___ERROR_LEVELS = ((PyObject *)__pyx_k_tuple_516);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_521));
+  __pyx_v_4lxml_5etree___ERROR_LEVELS = ((PyObject *)__pyx_k_tuple_521);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":682
  * """,)
@@ -187623,11 +177516,11 @@ PyMODINIT_FUNC PyInit_etree(void)
  * NONE=0
  * PARSER=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_518));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_523));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
   __Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_518));
-  __pyx_v_4lxml_5etree___ERROR_DOMAINS = ((PyObject *)__pyx_k_tuple_518);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_523));
+  __pyx_v_4lxml_5etree___ERROR_DOMAINS = ((PyObject *)__pyx_k_tuple_523);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":714
  * """,)
@@ -187636,11 +177529,11 @@ PyMODINIT_FUNC PyInit_etree(void)
  * ERR_OK=0
  * ERR_INTERNAL_ERROR=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_530));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_535));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
   __Pyx_DECREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_530));
-  __pyx_v_4lxml_5etree___PARSER_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_530);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_535));
+  __pyx_v_4lxml_5etree___PARSER_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_535);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1470
  * """,)
@@ -187649,11 +177542,11 @@ PyMODINIT_FUNC PyInit_etree(void)
  * RELAXNG_OK=0
  * RELAXNG_ERR_MEMORY=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_532));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_537));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
   __Pyx_DECREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_532));
-  __pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_532);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_537));
+  __pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_537);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1514
  * # --- END: GENERATED CONSTANTS ---
@@ -187742,9 +177635,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_533));
-  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_533));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_533));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_u_538));
+  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_538));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_538));
   PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
@@ -187887,7 +177780,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Element(_tag, attrib=None, nsmap=None, **_extra)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_7Element, NULL, __pyx_n_s_499); 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 (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;
@@ -187899,7 +177792,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Comment(text=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_9Comment, NULL, __pyx_n_s_499); 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 (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;
@@ -187911,7 +177804,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""ProcessingInstruction(target, text=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_11ProcessingInstruction, NULL, __pyx_n_s_499); 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 (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;
@@ -187935,7 +177828,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Entity(name)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_13Entity, NULL, __pyx_n_s_499); 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 (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;
@@ -187947,7 +177840,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *                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_494); 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_499); 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 (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;
@@ -187959,7 +177852,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""ElementTree(element=None, file=None, parser=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_17ElementTree, NULL, __pyx_n_s_499); 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 (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;
@@ -187971,7 +177864,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""HTML(text, parser=None, base_url=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_19HTML, NULL, __pyx_n_s_499); 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 (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;
@@ -187983,7 +177876,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""XML(text, parser=None, base_url=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_21XML, NULL, __pyx_n_s_499); 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 (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;
@@ -187995,7 +177888,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""fromstring(text, parser=None, base_url=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_23fromstring, NULL, __pyx_n_s_499); 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 (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;
@@ -188007,7 +177900,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""fromstringlist(strings, parser=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_25fromstringlist, NULL, __pyx_n_s_499); 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 (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;
@@ -188019,7 +177912,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""iselement(element)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_27iselement, NULL, __pyx_n_s_499); 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 (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;
@@ -188036,7 +177929,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_494); 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_499); 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 (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;
@@ -188048,7 +177941,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *              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_494); 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_499); 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 (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;
@@ -188060,7 +177953,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""tostringlist(element_or_tree, *args, **kwargs)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_33tostringlist, NULL, __pyx_n_s_499); 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 (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;
@@ -188072,7 +177965,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *               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_494); 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_499); 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 (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;
@@ -188084,7 +177977,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""parse(source, parser=None, base_url=None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_37parse, NULL, __pyx_n_s_499); 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 (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;
@@ -188102,26 +177995,26 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":515
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":538
  *     LOOKUP_ELEMENT_CLASS = function
  * 
  * def set_element_class_lookup(ElementClassLookup lookup = None):             # <<<<<<<<<<<<<<
  *     u"""set_element_class_lookup(lookup = None)
  * 
  */
-  __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_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_39set_element_class_lookup, NULL, __pyx_n_s_499); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_180, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 538; __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
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":550
  * # default setup: parser delegation
  * cdef ParserBasedElementClassLookup DEFAULT_ELEMENT_CLASS_LOOKUP
  * DEFAULT_ELEMENT_CLASS_LOOKUP = ParserBasedElementClassLookup()             # <<<<<<<<<<<<<<
  * 
  * set_element_class_lookup(DEFAULT_ELEMENT_CLASS_LOOKUP)
  */
-  __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ParserBasedElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ParserBasedElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
   __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
@@ -188129,19 +178022,19 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP = ((struct __pyx_obj_4lxml_5etree_ParserBasedElementClassLookup *)__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":529
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":552
  * DEFAULT_ELEMENT_CLASS_LOOKUP = ParserBasedElementClassLookup()
  * 
  * set_element_class_lookup(DEFAULT_ELEMENT_CLASS_LOOKUP)             # <<<<<<<<<<<<<<
  */
-  __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_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_180); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 552; __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_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
   PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
-  __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
@@ -188163,8 +178056,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_574)) < 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_499); 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 (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;}
@@ -188187,11 +178080,11 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_575)) < 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_155, __pyx_n_s_155, __pyx_n_s_499); 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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_155, __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;
 
@@ -188217,7 +178110,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""FunctionNamespace(ns_uri)
  * 
  */
-  __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_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_41FunctionNamespace, NULL, __pyx_n_s_499); 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 (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;
@@ -188239,7 +178132,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         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_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_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10ParseError_1__init__, 0, __pyx_n_s_582, NULL, __pyx_n_s_499, ((PyObject *)__pyx_k_codeobj_580)); 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;
@@ -188258,8 +178151,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_583)) < 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_499); 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 (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;}
@@ -188312,8 +178205,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_584)) < 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_499); 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 (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;}
@@ -188336,8 +178229,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_585)) < 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_499); 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 (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;}
@@ -188422,7 +178315,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_184 = __pyx_t_1;
+  __pyx_k_185 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188435,17 +178328,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_185 = __pyx_t_1;
+  __pyx_k_186 = __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 = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_186 = __pyx_t_1;
+  __pyx_k_187 = __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 = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_187 = __pyx_t_1;
+  __pyx_k_188 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188458,12 +178351,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_188 = __pyx_t_1;
+  __pyx_k_189 = __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 = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_189 = __pyx_t_1;
+  __pyx_k_190 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188476,17 +178369,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_190 = __pyx_t_1;
+  __pyx_k_191 = __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 = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_191 = __pyx_t_1;
+  __pyx_k_192 = __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 = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_192 = __pyx_t_1;
+  __pyx_k_193 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188499,17 +178392,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_193 = __pyx_t_1;
+  __pyx_k_194 = __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 = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_194 = __pyx_t_1;
+  __pyx_k_195 = __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 = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_195 = __pyx_t_1;
+  __pyx_k_196 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188522,7 +178415,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_196 = __pyx_t_1;
+  __pyx_k_197 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188535,7 +178428,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_197 = __pyx_t_1;
+  __pyx_k_198 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188548,17 +178441,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_198 = __pyx_t_1;
+  __pyx_k_199 = __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 = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_199 = __pyx_t_1;
+  __pyx_k_200 = __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 = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_200 = __pyx_t_1;
+  __pyx_k_201 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188571,12 +178464,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_201 = __pyx_t_1;
+  __pyx_k_202 = __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 = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_202 = __pyx_t_1;
+  __pyx_k_203 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188589,17 +178482,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_203 = __pyx_t_1;
+  __pyx_k_204 = __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 = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_204 = __pyx_t_1;
+  __pyx_k_205 = __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 = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_205 = __pyx_t_1;
+  __pyx_k_206 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188612,17 +178505,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_206 = __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 = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_207 = __pyx_t_1;
+  __pyx_k_208 = __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 = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_208 = __pyx_t_1;
+  __pyx_k_209 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188635,7 +178528,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_209 = __pyx_t_1;
+  __pyx_k_210 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188682,7 +178575,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""set_default_parser(parser=None)
  * 
  */
-  __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_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_43set_default_parser, NULL, __pyx_n_s_499); 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 (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;
@@ -188694,7 +178587,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     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_494); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_45get_default_parser, NULL, __pyx_n_s_499); 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 (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;
@@ -188717,7 +178610,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_210 = __pyx_t_1;
+  __pyx_k_211 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188730,17 +178623,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_211 = __pyx_t_1;
+  __pyx_k_212 = __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 = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_212 = __pyx_t_1;
+  __pyx_k_213 = __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 = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_213 = __pyx_t_1;
+  __pyx_k_214 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188753,7 +178646,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_214 = __pyx_t_1;
+  __pyx_k_215 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188766,12 +178659,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_215 = __pyx_t_1;
+  __pyx_k_216 = __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 = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_216 = __pyx_t_1;
+  __pyx_k_217 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -188832,7 +178725,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         self.result = result
  * 
  */
-  __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_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__, 0, __pyx_n_s_592, NULL, __pyx_n_s_499, ((PyObject *)__pyx_k_codeobj_590)); 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;
@@ -188849,7 +178742,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_494); 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_499); 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 (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;}
@@ -188872,8 +178765,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_593)) < 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_499); 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 (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;}
@@ -188889,12 +178782,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_280 = __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 = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_281 = __pyx_t_7;
+  __pyx_k_282 = __pyx_t_7;
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
 
@@ -188907,17 +178800,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_282 = __pyx_t_7;
+  __pyx_k_283 = __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_283 = __pyx_t_7;
+  __pyx_k_284 = __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_284 = __pyx_t_7;
+  __pyx_k_285 = __pyx_t_7;
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
 
@@ -188930,17 +178823,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_285 = __pyx_t_7;
+  __pyx_k_286 = __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_286 = __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 = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_287 = __pyx_t_7;
+  __pyx_k_288 = __pyx_t_7;
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
 
@@ -188953,12 +178846,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_288 = __pyx_t_7;
+  __pyx_k_289 = __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_289 = __pyx_t_7;
+  __pyx_k_290 = __pyx_t_7;
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
 
@@ -188971,12 +178864,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_290 = __pyx_t_7;
+  __pyx_k_291 = __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_291 = __pyx_t_7;
+  __pyx_k_292 = __pyx_t_7;
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
 
@@ -188987,7 +178880,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""XMLID(text, parser=None, base_url=None)
  * 
  */
-  __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_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_47XMLID, NULL, __pyx_n_s_499); 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 (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;
@@ -188999,7 +178892,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""XMLDTDID(text, parser=None, base_url=None)
  * 
  */
-  __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_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_49XMLDTDID, NULL, __pyx_n_s_499); 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 (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;
@@ -189011,7 +178904,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""parseid(source, parser=None)
  * 
  */
-  __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_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_51parseid, NULL, __pyx_n_s_499); 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 (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;
@@ -189032,8 +178925,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_601)) < 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_499); 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 (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;}
@@ -189047,7 +178940,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""cleanup_namespaces(tree_or_element)
  * 
  */
-  __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_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_53cleanup_namespaces, NULL, __pyx_n_s_499); 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 (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;
@@ -189059,7 +178952,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""strip_attributes(tree_or_element, *attribute_names)
  * 
  */
-  __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_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_55strip_attributes, NULL, __pyx_n_s_499); 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 (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;
@@ -189071,7 +178964,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     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_494); 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_499); 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 (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;
@@ -189083,7 +178976,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""strip_tags(tree_or_element, *tag_names)
  * 
  */
-  __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_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_59strip_tags, NULL, __pyx_n_s_499); 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 (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;
@@ -189104,8 +178997,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_611)) < 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_499); 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 (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;}
@@ -189128,8 +179021,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_612)) < 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_499); 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 (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;}
@@ -189152,8 +179045,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_613)) < 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_499); 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 (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;}
@@ -189176,8 +179069,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_614)) < 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_499); 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 (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;}
@@ -189196,75 +179089,75 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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, 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, 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, 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, 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, 6, ((PyObject *)__pyx_kp_b_615));
+  PyList_SET_ITEM(__pyx_t_7, 1, ((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, 7, ((PyObject *)__pyx_kp_b_616));
+  PyList_SET_ITEM(__pyx_t_7, 2, ((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, 8, ((PyObject *)__pyx_kp_b_617));
+  PyList_SET_ITEM(__pyx_t_7, 3, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 4, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 5, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 6, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 7, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 8, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 9, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 10, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 11, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 12, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 13, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 14, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 15, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 16, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 17, ((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));
+  PyList_SET_ITEM(__pyx_t_7, 18, ((PyObject *)__pyx_kp_b_632));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_632));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_633));
+  PyList_SET_ITEM(__pyx_t_7, 19, ((PyObject *)__pyx_kp_b_633));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_633));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_634));
+  PyList_SET_ITEM(__pyx_t_7, 20, ((PyObject *)__pyx_kp_b_634));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_634));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_635));
+  PyList_SET_ITEM(__pyx_t_7, 21, ((PyObject *)__pyx_kp_b_635));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_635));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_636));
+  PyList_SET_ITEM(__pyx_t_7, 22, ((PyObject *)__pyx_kp_b_636));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_636));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_637));
+  PyList_SET_ITEM(__pyx_t_7, 23, ((PyObject *)__pyx_kp_b_637));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_637));
   __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));
@@ -189278,7 +179171,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Extension(module, function_mapping=None, ns=None)
  * 
  */
-  __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_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_61Extension, NULL, __pyx_n_s_499); 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 (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;
@@ -189300,7 +179193,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         return self._parent
  * 
  */
-  __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_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20_ElementStringResult_1getparent, 0, __pyx_n_s_643, NULL, __pyx_n_s_499, ((PyObject *)__pyx_k_codeobj_642)); 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;
@@ -189317,10 +179210,10 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_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_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_7), __pyx_n_s_330, __pyx_n_s_330, __pyx_n_s_499); 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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_330, __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;
 
@@ -189345,7 +179238,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_494); 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_499); 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 (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;}
@@ -189555,7 +179448,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     _XPATH_VERSION_WARNING_REQUIRED = 1
  * else:
  */
-  __pyx_t_10 = (__pyx_v_4lxml_5etree__LIBXML_VERSION_INT == 20627);
+  __pyx_t_10 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT == 20627) != 0);
   if (__pyx_t_10) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":123
@@ -189590,12 +179483,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_335 = __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 = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_336 = __pyx_t_15;
+  __pyx_k_337 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -189608,12 +179501,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_338 = __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 = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_339 = __pyx_t_15;
+  __pyx_k_340 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -189626,12 +179519,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_340 = __pyx_t_15;
+  __pyx_k_341 = __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_341 = __pyx_t_15;
+  __pyx_k_342 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -189642,7 +179535,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *                    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_494); 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_499); 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 (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;
@@ -189656,12 +179549,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_342 = __pyx_t_15;
+  __pyx_k_343 = __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_343 = __pyx_t_15;
+  __pyx_k_344 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -189674,7 +179567,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_643), 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_648), 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 = __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;}
@@ -189695,7 +179588,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_645), 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_650), 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 = __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;}
@@ -189716,7 +179609,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_344 = __pyx_t_15;
+  __pyx_k_345 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -189729,7 +179622,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_345 = __pyx_t_15;
+  __pyx_k_346 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -189749,8 +179642,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_651)) < 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_499); 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 (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;}
@@ -189773,8 +179666,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_652)) < 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_499); 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 (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;}
@@ -189797,8 +179690,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_653)) < 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_499); 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 (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;}
@@ -189821,8 +179714,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_654)) < 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_499); 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 (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;}
@@ -189845,8 +179738,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_655)) < 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_499); 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 (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;}
@@ -189862,7 +179755,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_480, __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
@@ -190023,7 +179916,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_355 = __pyx_t_15;
+  __pyx_k_356 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -190034,7 +179927,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         u"""strparam(strval)
  * 
  */
-  __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_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_7strparam, NULL, __pyx_n_s_499); 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);
@@ -190076,7 +179969,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         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_494); 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_499); 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);
@@ -190086,7 +179979,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_656, __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_661, __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);
 
@@ -190097,7 +179990,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     def set_global_max_depth(int max_depth):
  *         u"""set_global_max_depth(max_depth)
  */
-  __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_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s_661); 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);
@@ -190107,7 +180000,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __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_656, __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_661, __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);
 
@@ -190120,7 +180013,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_361 = __pyx_t_15;
+  __pyx_k_362 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -190133,7 +180026,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_362 = __pyx_t_15;
+  __pyx_k_363 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -190164,7 +180057,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_658), 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_663), 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);
@@ -190216,6 +180109,42 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GIVEREF(Py_None);
   __pyx_v_4lxml_5etree___findStylesheetByID = ((struct __pyx_obj_4lxml_5etree_XPath *)Py_None);
 
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":23
+ * 
+ *     def apply_templates(self, _XSLTContext context not None, node, output_parent=None,
+ *                         *, elements_only=False, remove_blank_text=False):             # <<<<<<<<<<<<<<
+ *         u"""apply_templates(self, context, node, output_parent=None, elements_only=False, remove_blank_text=False)
+ * 
+ */
+  __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __pyx_k_377 = __pyx_t_14;
+  __Pyx_GIVEREF(__pyx_t_14);
+  __pyx_t_14 = 0;
+  __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __pyx_k_378 = __pyx_t_14;
+  __Pyx_GIVEREF(__pyx_t_14);
+  __pyx_t_14 = 0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":75
+ * 
+ *     def process_children(self, _XSLTContext context not None, output_parent=None,
+ *                          *, elements_only=False, remove_blank_text=False):             # <<<<<<<<<<<<<<
+ *         u"""process_children(self, context, output_parent=None, elements_only=False, remove_blank_text=False)
+ * 
+ */
+  __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __pyx_k_381 = __pyx_t_14;
+  __Pyx_GIVEREF(__pyx_t_14);
+  __pyx_t_14 = 0;
+  __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_14);
+  __pyx_k_382 = __pyx_t_14;
+  __Pyx_GIVEREF(__pyx_t_14);
+  __pyx_t_14 = 0;
+
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3232
  * # Validation
  * 
@@ -190232,8 +180161,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_664)) < 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_499); 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 (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;}
@@ -190256,8 +180185,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_665)) < 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_499); 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 (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;}
@@ -190280,8 +180209,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_666)) < 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_499); 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 (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;}
@@ -190304,8 +180233,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_667)) < 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_499); 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 (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;}
@@ -190328,8 +180257,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_668)) < 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_499); 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 (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;}
@@ -190352,8 +180281,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_669)) < 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_499); 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 (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;}
@@ -190376,11 +180305,11 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_670)) < 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_413, __pyx_n_s_413, __pyx_n_s_499); 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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_413, __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;
 
@@ -190400,8 +180329,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_671)) < 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_499); 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 (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;}
@@ -190424,8 +180353,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_672)) < 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_499); 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 (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;}
@@ -190448,11 +180377,11 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_673)) < 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_420, __pyx_n_s_420, __pyx_n_s_499); 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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_420, __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;
 
@@ -190475,10 +180404,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_411)) < 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_416)) < 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_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_t_15 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_675), ((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));
@@ -190496,7 +180425,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_410 = __pyx_t_15;
+  __pyx_k_415 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -190516,8 +180445,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_676)) < 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_499); 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 (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;}
@@ -190540,11 +180469,11 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_677)) < 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_425, __pyx_n_s_425, __pyx_n_s_499); 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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_425, __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;
 
@@ -190564,11 +180493,11 @@ PyMODINIT_FUNC PyInit_etree(void)
   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_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;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_678)) < 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_430, __pyx_n_s_430, __pyx_n_s_499); 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 (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;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_430, __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;
 
@@ -190589,7 +180518,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __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_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_t_15, ((PyObject *)__pyx_kp_u_679), ((PyObject *)__pyx_kp_u_680)) < 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;};
@@ -190650,140 +180579,140 @@ static void __Pyx_CleanupGlobals(void) {
   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_261);
-  Py_CLEAR(__pyx_k_slice_262);
+  Py_CLEAR(__pyx_k_slice_153);
+  Py_CLEAR(__pyx_k_tuple_220);
+  Py_CLEAR(__pyx_k_tuple_230);
+  Py_CLEAR(__pyx_k_tuple_250);
+  Py_CLEAR(__pyx_k_tuple_252);
+  Py_CLEAR(__pyx_k_tuple_254);
+  Py_CLEAR(__pyx_k_tuple_257);
+  Py_CLEAR(__pyx_k_tuple_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_slice_264);
+  Py_CLEAR(__pyx_k_tuple_266);
+  Py_CLEAR(__pyx_k_slice_267);
   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_270);
+  Py_CLEAR(__pyx_k_tuple_273);
+  Py_CLEAR(__pyx_k_tuple_275);
   Py_CLEAR(__pyx_k_tuple_279);
-  Py_CLEAR(__pyx_k_tuple_293);
-  Py_CLEAR(__pyx_k_tuple_295);
+  Py_CLEAR(__pyx_k_tuple_280);
+  Py_CLEAR(__pyx_k_tuple_294);
   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_300);
   Py_CLEAR(__pyx_k_tuple_302);
-  Py_CLEAR(__pyx_k_slice_306);
+  Py_CLEAR(__pyx_k_tuple_303);
   Py_CLEAR(__pyx_k_slice_307);
-  Py_CLEAR(__pyx_k_tuple_318);
+  Py_CLEAR(__pyx_k_slice_308);
   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_321);
+  Py_CLEAR(__pyx_k_tuple_333);
+  Py_CLEAR(__pyx_k_slice_348);
+  Py_CLEAR(__pyx_k_tuple_349);
+  Py_CLEAR(__pyx_k_tuple_358);
+  Py_CLEAR(__pyx_k_tuple_361);
+  Py_CLEAR(__pyx_k_tuple_368);
+  Py_CLEAR(__pyx_k_tuple_385);
+  Py_CLEAR(__pyx_k_tuple_395);
   Py_CLEAR(__pyx_k_tuple_397);
-  Py_CLEAR(__pyx_k_tuple_398);
-  Py_CLEAR(__pyx_k_tuple_400);
+  Py_CLEAR(__pyx_k_tuple_402);
   Py_CLEAR(__pyx_k_tuple_403);
-  Py_CLEAR(__pyx_k_tuple_419);
-  Py_CLEAR(__pyx_k_tuple_421);
+  Py_CLEAR(__pyx_k_tuple_405);
+  Py_CLEAR(__pyx_k_tuple_408);
   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_426);
+  Py_CLEAR(__pyx_k_tuple_429);
+  Py_CLEAR(__pyx_k_tuple_486);
   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_codeobj_506);
+  Py_CLEAR(__pyx_k_tuple_496);
+  Py_CLEAR(__pyx_k_codeobj_497);
+  Py_CLEAR(__pyx_k_tuple_500);
+  Py_CLEAR(__pyx_k_codeobj_501);
+  Py_CLEAR(__pyx_k_tuple_502);
   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_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_511);
+  Py_CLEAR(__pyx_k_tuple_513);
+  Py_CLEAR(__pyx_k_tuple_514);
+  Py_CLEAR(__pyx_k_codeobj_515);
+  Py_CLEAR(__pyx_k_tuple_521);
+  Py_CLEAR(__pyx_k_tuple_523);
+  Py_CLEAR(__pyx_k_tuple_535);
+  Py_CLEAR(__pyx_k_tuple_537);
+  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_tuple_553);
+  Py_CLEAR(__pyx_k_codeobj_554);
+  Py_CLEAR(__pyx_k_tuple_555);
+  Py_CLEAR(__pyx_k_codeobj_556);
+  Py_CLEAR(__pyx_k_tuple_557);
+  Py_CLEAR(__pyx_k_codeobj_558);
+  Py_CLEAR(__pyx_k_tuple_559);
+  Py_CLEAR(__pyx_k_codeobj_560);
+  Py_CLEAR(__pyx_k_tuple_561);
+  Py_CLEAR(__pyx_k_codeobj_562);
+  Py_CLEAR(__pyx_k_tuple_563);
+  Py_CLEAR(__pyx_k_codeobj_564);
+  Py_CLEAR(__pyx_k_tuple_565);
+  Py_CLEAR(__pyx_k_codeobj_566);
+  Py_CLEAR(__pyx_k_tuple_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_581);
-  Py_CLEAR(__pyx_k_codeobj_582);
-  Py_CLEAR(__pyx_k_codeobj_583);
-  Py_CLEAR(__pyx_k_tuple_584);
-  Py_CLEAR(__pyx_k_codeobj_585);
+  Py_CLEAR(__pyx_k_tuple_576);
+  Py_CLEAR(__pyx_k_codeobj_577);
+  Py_CLEAR(__pyx_k_tuple_579);
+  Py_CLEAR(__pyx_k_codeobj_580);
+  Py_CLEAR(__pyx_k_tuple_586);
+  Py_CLEAR(__pyx_k_codeobj_587);
+  Py_CLEAR(__pyx_k_codeobj_588);
   Py_CLEAR(__pyx_k_tuple_589);
   Py_CLEAR(__pyx_k_codeobj_590);
-  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_599);
+  Py_CLEAR(__pyx_k_codeobj_600);
   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_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);
+  Py_CLEAR(__pyx_k_tuple_605);
+  Py_CLEAR(__pyx_k_codeobj_606);
+  Py_CLEAR(__pyx_k_tuple_607);
+  Py_CLEAR(__pyx_k_codeobj_608);
+  Py_CLEAR(__pyx_k_tuple_609);
+  Py_CLEAR(__pyx_k_codeobj_610);
+  Py_CLEAR(__pyx_k_tuple_638);
+  Py_CLEAR(__pyx_k_codeobj_639);
+  Py_CLEAR(__pyx_k_tuple_641);
+  Py_CLEAR(__pyx_k_codeobj_642);
+  Py_CLEAR(__pyx_k_tuple_644);
+  Py_CLEAR(__pyx_k_codeobj_645);
+  Py_CLEAR(__pyx_k_tuple_648);
+  Py_CLEAR(__pyx_k_tuple_650);
+  Py_CLEAR(__pyx_k_tuple_656);
+  Py_CLEAR(__pyx_k_codeobj_657);
+  Py_CLEAR(__pyx_k_tuple_659);
+  Py_CLEAR(__pyx_k_codeobj_660);
+  Py_CLEAR(__pyx_k_tuple_663);
+  Py_CLEAR(__pyx_k_tuple_675);
   #if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
 Py_CLEAR(__pyx_print);
 Py_CLEAR(__pyx_print_kwargs);
@@ -190862,10 +180791,10 @@ static void __pyx_module_cleanup(CYTHON_UNUSED PyObject *self) {
   Py_CLEAR(__pyx_builtin_ValueError);
   Py_CLEAR(__pyx_builtin_super);
   Py_CLEAR(__pyx_builtin_MemoryError);
+  Py_CLEAR(__pyx_builtin_range);
   Py_CLEAR(__pyx_builtin_id);
   Py_CLEAR(__pyx_builtin_TypeError);
   Py_CLEAR(__pyx_builtin_sorted);
-  Py_CLEAR(__pyx_builtin_range);
   Py_CLEAR(__pyx_builtin_KeyError);
   Py_CLEAR(__pyx_builtin_xrange);
   Py_CLEAR(__pyx_builtin_UnicodeEncodeError);
@@ -191402,9 +181331,215 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
             if (unlikely(!py_slice)) goto bad;
         }
 #if CYTHON_COMPILING_IN_CPYTHON
-        result = mp->mp_subscript(obj, py_slice);
+        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
+    PyObject *tmp_type, *tmp_value, *tmp_tb;
+    PyThreadState *tstate = PyThreadState_GET();
+    local_type = tstate->curexc_type;
+    local_value = tstate->curexc_value;
+    local_tb = tstate->curexc_traceback;
+    tstate->curexc_type = 0;
+    tstate->curexc_value = 0;
+    tstate->curexc_traceback = 0;
+#else
+    PyErr_Fetch(&local_type, &local_value, &local_tb);
+#endif
+    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
+#if CYTHON_COMPILING_IN_CPYTHON
+    if (unlikely(tstate->curexc_type))
+#else
+    if (unlikely(PyErr_Occurred()))
+#endif
+        goto bad;
+    #if PY_MAJOR_VERSION >= 3
+    if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
+        goto bad;
+    #endif
+    Py_INCREF(local_type);
+    Py_INCREF(local_value);
+    Py_INCREF(local_tb);
+    *type = local_type;
+    *value = local_value;
+    *tb = local_tb;
+#if CYTHON_COMPILING_IN_CPYTHON
+    tmp_type = tstate->exc_type;
+    tmp_value = tstate->exc_value;
+    tmp_tb = tstate->exc_traceback;
+    tstate->exc_type = local_type;
+    tstate->exc_value = local_value;
+    tstate->exc_traceback = local_tb;
+    /* Make sure tstate is in a consistent state when we XDECREF
+       these objects (DECREF may run arbitrary code). */
+    Py_XDECREF(tmp_type);
+    Py_XDECREF(tmp_value);
+    Py_XDECREF(tmp_tb);
+#else
+    PyErr_SetExcInfo(local_type, local_value, local_tb);
+#endif
+    return 0;
+bad:
+    *type = 0;
+    *value = 0;
+    *tb = 0;
+    Py_XDECREF(local_type);
+    Py_XDECREF(local_value);
+    Py_XDECREF(local_tb);
+    return -1;
+}
+
+static CYTHON_INLINE long __Pyx_mod_long(long a, long b) {
+    long r = a % b;
+    r += ((r != 0) & ((r ^ b) < 0)) * b;
+    return r;
+}
+
+static CYTHON_INLINE long __Pyx_div_long(long a, long b) {
+    long q = a / b;
+    long r = a - q*b;
+    q -= ((r != 0) & ((r ^ b) < 0));
+    return q;
+}
+
+static CYTHON_INLINE int __Pyx_CheckKeywordStrings(
+    PyObject *kwdict,
+    const char* function_name,
+    int kw_allowed)
+{
+    PyObject* key = 0;
+    Py_ssize_t pos = 0;
+#if CPYTHON_COMPILING_IN_PYPY
+    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
+        goto invalid_keyword;
+    return 1;
+#else
+    while (PyDict_Next(kwdict, &pos, &key, 0)) {
+        #if PY_MAJOR_VERSION < 3
+        if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key)))
+        #endif
+            if (unlikely(!PyUnicode_Check(key)))
+                goto invalid_keyword_type;
+    }
+    if ((!kw_allowed) && unlikely(key))
+        goto invalid_keyword;
+    return 1;
+invalid_keyword_type:
+    PyErr_Format(PyExc_TypeError,
+        "%s() keywords must be strings", function_name);
+    return 0;
+#endif
+invalid_keyword:
+    PyErr_Format(PyExc_TypeError,
+    #if PY_MAJOR_VERSION < 3
+        "%s() got an unexpected keyword argument '%s'",
+        function_name, PyString_AsString(key));
+    #else
+        "%s() got an unexpected keyword argument '%U'",
+        function_name, key);
+    #endif
+    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 = PyObject_GetItem(obj, py_slice);
+        result = value ? PyObject_SetItem(obj, py_slice, value) : PyObject_DelItem(obj, py_slice);
 #endif
         if (!_py_slice) {
             Py_DECREF(py_slice);
@@ -191412,216 +181547,29 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetSlice(
         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
-    PyObject *tmp_type, *tmp_value, *tmp_tb;
-    PyThreadState *tstate = PyThreadState_GET();
-    local_type = tstate->curexc_type;
-    local_value = tstate->curexc_value;
-    local_tb = tstate->curexc_traceback;
-    tstate->curexc_type = 0;
-    tstate->curexc_value = 0;
-    tstate->curexc_traceback = 0;
-#else
-    PyErr_Fetch(&local_type, &local_value, &local_tb);
-#endif
-    PyErr_NormalizeException(&local_type, &local_value, &local_tb);
-#if CYTHON_COMPILING_IN_CPYTHON
-    if (unlikely(tstate->curexc_type))
-#else
-    if (unlikely(PyErr_Occurred()))
-#endif
-        goto bad;
-    #if PY_MAJOR_VERSION >= 3
-    if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0))
-        goto bad;
-    #endif
-    Py_INCREF(local_type);
-    Py_INCREF(local_value);
-    Py_INCREF(local_tb);
-    *type = local_type;
-    *value = local_value;
-    *tb = local_tb;
-#if CYTHON_COMPILING_IN_CPYTHON
-    tmp_type = tstate->exc_type;
-    tmp_value = tstate->exc_value;
-    tmp_tb = tstate->exc_traceback;
-    tstate->exc_type = local_type;
-    tstate->exc_value = local_value;
-    tstate->exc_traceback = local_tb;
-    /* Make sure tstate is in a consistent state when we XDECREF
-       these objects (DECREF may run arbitrary code). */
-    Py_XDECREF(tmp_type);
-    Py_XDECREF(tmp_value);
-    Py_XDECREF(tmp_tb);
-#else
-    PyErr_SetExcInfo(local_type, local_value, local_tb);
-#endif
-    return 0;
+        "'%.200s' object does not support slice %s",
+        Py_TYPE(obj)->tp_name, value ? "assignment" : "deletion");
 bad:
-    *type = 0;
-    *value = 0;
-    *tb = 0;
-    Py_XDECREF(local_type);
-    Py_XDECREF(local_value);
-    Py_XDECREF(local_tb);
     return -1;
 }
 
-static CYTHON_INLINE long __Pyx_mod_long(long a, long b) {
-    long r = a % b;
-    r += ((r != 0) & ((r ^ b) < 0)) * b;
-    return r;
-}
-
-static CYTHON_INLINE long __Pyx_div_long(long a, long b) {
-    long q = a / b;
-    long r = a - q*b;
-    q -= ((r != 0) & ((r ^ b) < 0));
-    return q;
-}
-
-static CYTHON_INLINE int __Pyx_CheckKeywordStrings(
-    PyObject *kwdict,
-    const char* function_name,
-    int kw_allowed)
-{
-    PyObject* key = 0;
-    Py_ssize_t pos = 0;
-#if CPYTHON_COMPILING_IN_PYPY
-    if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0))
-        goto invalid_keyword;
-    return 1;
-#else
-    while (PyDict_Next(kwdict, &pos, &key, 0)) {
-        #if PY_MAJOR_VERSION < 3
-        if (unlikely(!PyString_CheckExact(key)) && unlikely(!PyString_Check(key)))
-        #endif
-            if (unlikely(!PyUnicode_Check(key)))
-                goto invalid_keyword_type;
-    }
-    if ((!kw_allowed) && unlikely(key))
-        goto invalid_keyword;
-    return 1;
-invalid_keyword_type:
-    PyErr_Format(PyExc_TypeError,
-        "%s() keywords must be strings", function_name);
-    return 0;
-#endif
-invalid_keyword:
-    PyErr_Format(PyExc_TypeError,
+static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
+                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename) {
+    PyObject *old_exc, *old_val, *old_tb;
+    PyObject *ctx;
+    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
     #if PY_MAJOR_VERSION < 3
-        "%s() got an unexpected keyword argument '%s'",
-        function_name, PyString_AsString(key));
+    ctx = PyString_FromString(name);
     #else
-        "%s() got an unexpected keyword argument '%U'",
-        function_name, key);
+    ctx = PyUnicode_FromString(name);
     #endif
-    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;
+    __Pyx_ErrRestore(old_exc, old_val, old_tb);
+    if (!ctx) {
+        PyErr_WriteUnraisable(Py_None);
+    } else {
+        PyErr_WriteUnraisable(ctx);
+        Py_DECREF(ctx);
     }
-    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) {
@@ -191848,11 +181796,7 @@ static CYTHON_INLINE void __Pyx_crop_slice(Py_ssize_t* _start, Py_ssize_t* _stop
     *_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
+static CYTHON_INLINE void __Pyx_copy_object_array(PyObject** CYTHON_RESTRICT src, PyObject** CYTHON_RESTRICT dest, Py_ssize_t length) {
     PyObject *v;
     Py_ssize_t i;
     for (i = 0; i < length; i++) {
@@ -192180,6 +182124,23 @@ static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
         type->tp_clear(obj);
 }
 
+static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
+#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
+    PyObject *ob = PyCapsule_New(vtable, 0, 0);
+#else
+    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
+#endif
+    if (!ob)
+        goto bad;
+    if (PyDict_SetItem(dict, __pyx_n_s____pyx_vtable__, ob) < 0)
+        goto bad;
+    Py_DECREF(ob);
+    return 0;
+bad:
+    Py_XDECREF(ob);
+    return -1;
+}
+
 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
     PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
     if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
@@ -193683,25 +183644,6 @@ static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject*
     }
 }
 
-static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
-                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename) {
-    PyObject *old_exc, *old_val, *old_tb;
-    PyObject *ctx;
-    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
-    #if PY_MAJOR_VERSION < 3
-    ctx = PyString_FromString(name);
-    #else
-    ctx = PyUnicode_FromString(name);
-    #endif
-    __Pyx_ErrRestore(old_exc, old_val, old_tb);
-    if (!ctx) {
-        PyErr_WriteUnraisable(Py_None);
-    } else {
-        PyErr_WriteUnraisable(ctx);
-        Py_DECREF(ctx);
-    }
-}
-
 static CYTHON_INLINE void __Pyx_ExceptionSwap(PyObject **type, PyObject **value, PyObject **tb) {
     PyObject *tmp_type, *tmp_value, *tmp_tb;
 #if CYTHON_COMPILING_IN_CPYTHON
@@ -194277,23 +184219,6 @@ bad:
     return -1;
 }
 
-static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
-#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
-    PyObject *ob = PyCapsule_New(vtable, 0, 0);
-#else
-    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
-#endif
-    if (!ob)
-        goto bad;
-    if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0)
-        goto bad;
-    Py_DECREF(ob);
-    return 0;
-bad:
-    Py_XDECREF(ob);
-    return -1;
-}
-
 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
     int start = 0, mid = 0, end = count - 1;
     if (end >= 0 && code_line > entries[end].code_line) {
index dc5d79df84bb46b224a93dee201ffb7bb86eb613..fcb0f3ff6b1d3100a448f00ecffed5c0013d7abf 100644 (file)
@@ -104,7 +104,7 @@ struct LxmlElementBase {
   struct LxmlElement __pyx_base;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":179
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":192
  * # Element class lookup
  * 
  * ctypedef public object (*_element_class_lookup_function)(object, _Document, xmlNode*)             # <<<<<<<<<<<<<<
@@ -113,7 +113,7 @@ struct LxmlElementBase {
  */
 typedef PyObject *(*_element_class_lookup_function)(PyObject *, struct LxmlDocument *, xmlNode *);
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":182
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":195
  * 
  * # class to store element class lookup functions
  * cdef public class ElementClassLookup [ type LxmlElementClassLookupType,             # <<<<<<<<<<<<<<
@@ -125,7 +125,7 @@ struct LxmlElementClassLookup {
   _element_class_lookup_function _lookup_function;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":191
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":204
  *         self._lookup_function = NULL # use default lookup
  * 
  * cdef public class FallbackElementClassLookup(ElementClassLookup) \             # <<<<<<<<<<<<<<
@@ -149,14 +149,14 @@ struct LxmlFallbackElementClassLookup {
   #endif
 #endif
 
-__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlDocumentType;
 __PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementType;
-__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementTreeType;
 __PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementTagMatcherType;
-__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementIteratorType;
-__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementBaseType;
 __PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementClassLookupType;
 __PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlFallbackElementClassLookupType;
+__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlDocumentType;
+__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementTreeType;
+__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementIteratorType;
+__PYX_EXTERN_C DL_IMPORT(PyTypeObject) LxmlElementBaseType;
 
 __PYX_EXTERN_C DL_IMPORT(struct LxmlElement) *deepcopyNodeToDocument(struct LxmlDocument *, xmlNode *);
 __PYX_EXTERN_C DL_IMPORT(struct LxmlElementTree) *elementTreeFactory(struct LxmlElement *);
index fc808a336c3954c2c2c35c1862694b07129be137..81f19de88bcbeee03d012dd2f89e8d0c1722b05a 100644 (file)
@@ -1649,8 +1649,8 @@ cdef class _Entity(__ContentOnlyElement):
         def __set__(self, value):
             _assertValidNode(self)
             value_utf = _utf8(value)
-            assert u'&' not in value and u';' not in value, \
-                u"Invalid entity name '%s'" % value
+            if u'&' in value or u';' in value:
+                raise ValueError(u"Invalid entity name '%s'" % value)
             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
 
     property text:
index 4f7e606b4205feaed08dc37e0b03e76a116520d4..d0e680fdde0fec3d1f94438d49cb93b6775cd5b5 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.19 on Sun Apr 28 20:49:30 2013 */
+/* Generated by Cython 0.19.1 on Sat May 11 23:34:17 2013 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
     #define CYTHON_INLINE
   #endif
 #endif
+#ifndef CYTHON_RESTRICT
+  #if defined(__GNUC__)
+    #define CYTHON_RESTRICT __restrict__
+  #elif defined(_MSC_VER)
+    #define CYTHON_RESTRICT __restrict
+  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+    #define CYTHON_RESTRICT restrict
+  #else
+    #define CYTHON_RESTRICT
+  #endif
+#endif
 #ifdef NAN
 #define __PYX_NAN() ((float) NAN)
 #else
@@ -905,6 +916,9 @@ static double __Pyx__PyObject_AsDouble(PyObject* obj); /* proto */
  PyFloat_AS_DOUBLE(obj) : __Pyx__PyObject_AsDouble(obj))
 #endif
 
+static void __Pyx_WriteUnraisable(const char *name, int clineno,
+                                  int lineno, const char *filename); /*proto*/
+
 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /*proto*/
 
 static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /*proto*/
@@ -1002,6 +1016,8 @@ static int __Pyx_call_next_tp_traverse(PyObject* obj, visitproc v, void *a, trav
 
 static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_dealloc);
 
+static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
+
 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name); /*proto*/
 
 #if !defined(__Pyx_PyIdentifier_FromString)
@@ -1054,15 +1070,10 @@ static CYTHON_INLINE signed long __Pyx_PyInt_AsSignedLong(PyObject *);
 
 static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject *);
 
-static void __Pyx_WriteUnraisable(const char *name, int clineno,
-                                  int lineno, const char *filename); /*proto*/
-
 static int __Pyx_check_binary_version(void);
 
 static PyTypeObject *__Pyx_ImportType(const char *module_name, const char *class_name, size_t size, int strict);  /*proto*/
 
-static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
-
 typedef struct {
     int code_line;
     PyCodeObject* code_object;
@@ -1113,19 +1124,19 @@ static PyTypeObject *__pyx_ptype_4lxml_8includes_11etreepublic__ElementIterator
 
 /* Module declarations from 'lxml.objectify' */
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_PyType = 0;
+static PyTypeObject *__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_ObjectifiedElement = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_NumberElement = 0;
-static PyTypeObject *__pyx_ptype_4lxml_9objectify_IntElement = 0;
-static PyTypeObject *__pyx_ptype_4lxml_9objectify_LongElement = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_FloatElement = 0;
-static PyTypeObject *__pyx_ptype_4lxml_9objectify_StringElement = 0;
-static PyTypeObject *__pyx_ptype_4lxml_9objectify_NoneElement = 0;
+static PyTypeObject *__pyx_ptype_4lxml_9objectify_IntElement = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_BoolElement = 0;
-static PyTypeObject *__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller = 0;
+static PyTypeObject *__pyx_ptype_4lxml_9objectify_LongElement = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_ElementMaker = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup = 0;
+static PyTypeObject *__pyx_ptype_4lxml_9objectify_NoneElement = 0;
 static PyTypeObject *__pyx_ptype_4lxml_9objectify_ObjectPath = 0;
+static PyTypeObject *__pyx_ptype_4lxml_9objectify_StringElement = 0;
 static PyObject *__pyx_v_4lxml_9objectify_etree = 0;
 static PyObject *__pyx_v_4lxml_9objectify_re = 0;
 static PyObject *__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS = 0;
@@ -1343,19 +1354,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_10setattr(struct __pyx_o
 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__ObjectifyElementMakerCaller(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_IntElement(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_LongElement(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_NoneElement(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
 static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectPath(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_4lxml_9objectify_StringElement(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[] = "";
@@ -1579,6 +1590,7 @@ static char __pyx_k__attribute_tag[] = "attribute_tag";
 static char __pyx_k__ignore_pytype[] = "ignore_pytype";
 static char __pyx_k__unsignedShort[] = "unsignedShort";
 static char __pyx_k__AttributeError[] = "AttributeError";
+static char __pyx_k____pyx_vtable__[] = "__pyx_vtable__";
 static char __pyx_k__xmlSchemaTypes[] = "xmlSchemaTypes";
 static char __pyx_k__annotate_pytype[] = "annotate_pytype";
 static char __pyx_k__attribute_names[] = "attribute_names";
@@ -1707,6 +1719,7 @@ static PyObject *__pyx_n_s____lower_bool;
 static PyObject *__pyx_n_s____main__;
 static PyObject *__pyx_n_s____name__;
 static PyObject *__pyx_n_s____parseBool;
+static PyObject *__pyx_n_s____pyx_vtable__;
 static PyObject *__pyx_n_s____set__;
 static PyObject *__pyx_n_s____test__;
 static PyObject *__pyx_n_s____version__;
@@ -1967,7 +1980,7 @@ static PyObject *__pyx_f_4lxml_9objectify__typename(PyObject *__pyx_v_t) {
  *         c_name = s + 1
  *     return pyunicode(<const_xmlChar*>c_name)
  */
-  __pyx_t_1 = (__pyx_v_s != NULL);
+  __pyx_t_1 = ((__pyx_v_s != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":47
@@ -2130,12 +2143,13 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  PyObject *(*__pyx_t_6)(PyObject *);
-  const xmlChar *__pyx_t_7;
+  PyObject *__pyx_t_6 = NULL;
+  PyObject *(*__pyx_t_7)(PyObject *);
+  const xmlChar *__pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -2149,7 +2163,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *             _unicodeAndUtf8(u"http://codespeak.net/lxml/objectify/pytype")
  */
   __pyx_t_1 = (__pyx_v_attribute_tag == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":83
  *     if attribute_tag is None:
@@ -2158,10 +2173,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *         PYTYPE_ATTRIBUTE_NAME, PYTYPE_ATTRIBUTE_NAME_UTF8 = \
  *             _unicodeAndUtf8(u"pytype")
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_kp_u_1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    if (likely(PyTuple_CheckExact(__pyx_t_2))) {
-      PyObject* sequence = __pyx_t_2;
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_kp_u_1))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    if (likely(PyTuple_CheckExact(__pyx_t_3))) {
+      PyObject* sequence = __pyx_t_3;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -2173,37 +2188,37 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
         {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
-      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
-      __Pyx_INCREF(__pyx_t_3);
+      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
+      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
       __Pyx_INCREF(__pyx_t_4);
+      __Pyx_INCREF(__pyx_t_5);
       #else
-      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       #endif
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else if (1) {
       __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
-      index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L4_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_3);
-      index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
+      index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L4_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_4);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_6 = NULL;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L4_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_5);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L5_unpacking_done;
       __pyx_L4_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_7 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L5_unpacking_done:;
@@ -2216,17 +2231,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *             _unicodeAndUtf8(u"http://codespeak.net/lxml/objectify/pytype")
  *         PYTYPE_ATTRIBUTE_NAME, PYTYPE_ATTRIBUTE_NAME_UTF8 = \
  */
-    if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
     __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
-    __Pyx_GIVEREF(__pyx_t_3);
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE = __pyx_t_3;
-    __pyx_t_3 = 0;
-    __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
     __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8 = ((PyObject*)__pyx_t_4);
+    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE = __pyx_t_4;
     __pyx_t_4 = 0;
+    __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
+    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
+    __Pyx_GIVEREF(__pyx_t_5);
+    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8 = ((PyObject*)__pyx_t_5);
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":85
  *             _unicodeAndUtf8(u"http://codespeak.net/lxml/objectify/pytype")
@@ -2235,10 +2250,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *     else:
  *         PYTYPE_NAMESPACE_UTF8, PYTYPE_ATTRIBUTE_NAME_UTF8 = \
  */
-    __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_n_u__pytype))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    if (likely(PyTuple_CheckExact(__pyx_t_2))) {
-      PyObject* sequence = __pyx_t_2;
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_9objectify__unicodeAndUtf8(((PyObject *)__pyx_n_u__pytype))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    if (likely(PyTuple_CheckExact(__pyx_t_3))) {
+      PyObject* sequence = __pyx_t_3;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -2250,37 +2265,37 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
         {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
-      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
+      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
+      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
+      __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_4);
-      __Pyx_INCREF(__pyx_t_3);
       #else
-      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
       #endif
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else if (1) {
       __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); 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_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
+      index = 0; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
-      index = 0; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
+      index = 1; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_4);
-      index = 1; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L6_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_3);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_6 = NULL;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L7_unpacking_done;
       __pyx_L6_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_7 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
@@ -2293,17 +2308,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *             _unicodeAndUtf8(u"pytype")
  *     else:
  */
-    if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
     __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
-    __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __Pyx_GIVEREF(__pyx_t_5);
+    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME = __pyx_t_5;
+    __pyx_t_5 = 0;
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
     __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
-    __Pyx_GIVEREF(__pyx_t_3);
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8 = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __Pyx_GIVEREF(__pyx_t_4);
+    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8 = ((PyObject*)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -2315,10 +2330,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *         PYTYPE_NAMESPACE = PYTYPE_NAMESPACE_UTF8.decode('utf8')
  *         PYTYPE_ATTRIBUTE_NAME = PYTYPE_ATTRIBUTE_NAME_UTF8.decode('utf8')
  */
-    __pyx_t_2 = ((PyObject *)getNsTag(__pyx_v_attribute_tag)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    if (likely(PyTuple_CheckExact(__pyx_t_2))) {
-      PyObject* sequence = __pyx_t_2;
+    __pyx_t_3 = ((PyObject *)getNsTag(__pyx_v_attribute_tag)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    if (likely(PyTuple_CheckExact(__pyx_t_3))) {
+      PyObject* sequence = __pyx_t_3;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -2330,37 +2345,37 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
         {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
-      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
-      __Pyx_INCREF(__pyx_t_3);
+      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
+      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
       __Pyx_INCREF(__pyx_t_4);
+      __Pyx_INCREF(__pyx_t_5);
       #else
-      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       #endif
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else if (1) {
       __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
-      index = 0; __pyx_t_3 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L8_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_3);
-      index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed;
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
+      index = 0; __pyx_t_4 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_4)) goto __pyx_L8_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_4);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_6 = NULL;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L8_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_5);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L9_unpacking_done;
       __pyx_L8_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_t_6 = NULL;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_7 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L9_unpacking_done:;
@@ -2373,18 +2388,18 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *             cetree.getNsTag(attribute_tag)
  *         PYTYPE_NAMESPACE = PYTYPE_NAMESPACE_UTF8.decode('utf8')
  */
-    if (!(likely(PyBytes_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_3)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
     __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
-    __Pyx_GIVEREF(__pyx_t_3);
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8 = ((PyObject*)__pyx_t_3);
-    __pyx_t_3 = 0;
-    __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
     __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8 = ((PyObject*)__pyx_t_4);
+    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8 = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
+    __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
+    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
+    __Pyx_GIVEREF(__pyx_t_5);
+    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8 = ((PyObject*)__pyx_t_5);
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":89
  *         PYTYPE_NAMESPACE_UTF8, PYTYPE_ATTRIBUTE_NAME_UTF8 = \
@@ -2397,13 +2412,13 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
     __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE = ((PyObject *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":90
  *             cetree.getNsTag(attribute_tag)
@@ -2416,13 +2431,13 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+    __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
     __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
-    __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME = ((PyObject *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
@@ -2433,8 +2448,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *     _PYTYPE_ATTRIBUTE_NAME = PYTYPE_ATTRIBUTE_NAME_UTF8
  *     PYTYPE_ATTRIBUTE = cetree.namespacedNameFromNsName(
  */
-  __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;
+  __pyx_t_8 = __Pyx_PyObject_AsUString(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8)); if (unlikely((!__pyx_t_8) && 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_8;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":93
  * 
@@ -2443,8 +2458,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  *     PYTYPE_ATTRIBUTE = cetree.namespacedNameFromNsName(
  *         _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
  */
-  __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;
+  __pyx_t_8 = __Pyx_PyObject_AsUString(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8)); if (unlikely((!__pyx_t_8) && 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_8;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":95
  *     _PYTYPE_ATTRIBUTE_NAME = PYTYPE_ATTRIBUTE_NAME_UTF8
@@ -2453,18 +2468,18 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  * 
  * set_pytype_attribute_tag()
  */
-  __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 (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_t_3 = namespacedNameFromNsName(__pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__PYTYPE_ATTRIBUTE, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.objectify.set_pytype_attribute_tag", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -2503,8 +2518,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement___iter__(struct
   PyObject *__pyx_t_1 = NULL;
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -2533,7 +2549,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement___iter__(struct
  *         return etree.ElementChildIterator(parent, tag=self.tag)
  */
   __pyx_t_3 = (__pyx_v_parent == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":140
  *         parent = self.getparent()
@@ -2573,19 +2590,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement___iter__(struct
   __Pyx_INCREF(__pyx_v_parent);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_parent);
   __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 = __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;
-  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); 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);
+  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__tag), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+  __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __pyx_r = __pyx_t_5;
-  __pyx_t_5 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+  __pyx_r = __pyx_t_6;
+  __pyx_t_6 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -2593,8 +2610,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement___iter__(struct
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.objectify.ObjectifiedElement.__iter__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -2626,8 +2643,8 @@ static PyObject *__pyx_pw_4lxml_9objectify_18ObjectifiedElement_3__str__(PyObjec
 static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_2__str__(struct __pyx_obj_4lxml_9objectify_ObjectifiedElement *__pyx_v_self) {
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
-  int __pyx_t_2;
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -2641,7 +2658,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_2__str__(struct
  *             return _dump(self, 0)
  *         else:
  */
-  if (__pyx_v_4lxml_9objectify___RECURSIVE_STR) {
+  __pyx_t_1 = (__pyx_v_4lxml_9objectify___RECURSIVE_STR != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":145
  *     def __str__(self):
@@ -2651,10 +2669,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_2__str__(struct
  *             return textOf(self._c_node) or u''
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = __pyx_f_4lxml_9objectify__dump(((struct LxmlElement *)__pyx_v_self), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_1);
-    __pyx_r = __pyx_t_1;
-    __pyx_t_1 = 0;
+    __pyx_t_2 = __pyx_f_4lxml_9objectify__dump(((struct LxmlElement *)__pyx_v_self), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_r = __pyx_t_2;
+    __pyx_t_2 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -2668,16 +2686,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_2__str__(struct
  *     # pickle support for objectified Element
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (!__pyx_t_2) {
-      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+    __pyx_t_2 = textOf(__pyx_v_self->__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!__pyx_t_1) {
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __Pyx_INCREF(((PyObject *)__pyx_kp_u_3));
       __pyx_t_3 = __pyx_kp_u_3;
     } else {
-      __pyx_t_3 = __pyx_t_1;
-      __pyx_t_1 = 0;
+      __pyx_t_3 = __pyx_t_2;
+      __pyx_t_2 = 0;
     }
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -2688,7 +2706,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_2__str__(struct
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.objectify.ObjectifiedElement.__str__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
@@ -2893,7 +2911,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_8__dict_____get_
  *             children = {}
  *             for child in etree.ElementChildIterator(self, tag=tag):
  */
-  if ((__pyx_v_c_ns != NULL)) {
+  if (((__pyx_v_c_ns != NULL) != 0)) {
     __pyx_t_2 = pyunicode(__pyx_v_c_ns); 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);
     __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_4), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -2989,9 +3007,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_8__dict_____get_
  *                     continue
  *                 name = pyunicode(child._c_node.name)
  */
-    __pyx_t_7 = (__pyx_v_c_ns == NULL);
+    __pyx_t_7 = ((__pyx_v_c_ns == NULL) != 0);
     if (__pyx_t_7) {
-      __pyx_t_8 = (_getNs(__pyx_v_child->_c_node) != NULL);
+      __pyx_t_8 = ((_getNs(__pyx_v_child->_c_node) != NULL) != 0);
       __pyx_t_9 = __pyx_t_8;
     } else {
       __pyx_t_9 = __pyx_t_7;
@@ -3030,7 +3048,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_8__dict_____get_
  *                     children[name] = child
  *             return children
  */
-    __pyx_t_9 = (PyDict_GetItem(((PyObject *)__pyx_v_children), __pyx_v_name) == NULL);
+    __pyx_t_9 = ((PyDict_GetItem(((PyObject *)__pyx_v_children), __pyx_v_name) == NULL) != 0);
     if (__pyx_t_9) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":173
@@ -3183,7 +3201,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_8countchildren(s
  *                 c = c + 1
  */
   while (1) {
-    __pyx_t_2 = (__pyx_v_c_node != NULL);
+    __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":193
@@ -3193,7 +3211,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_8countchildren(s
  *                 c = c + 1
  *             c_node = c_node.next
  */
-    __pyx_t_2 = _isElement(__pyx_v_c_node);
+    __pyx_t_2 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":194
@@ -3310,7 +3328,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_10getchildren(st
  *                 result.append(cetree.elementFactory(self._doc, c_node))
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":208
@@ -3320,7 +3338,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_10getchildren(st
  *                 result.append(cetree.elementFactory(self._doc, c_node))
  *             c_node = c_node.next
  */
-    __pyx_t_3 = _isElement(__pyx_v_c_node);
+    __pyx_t_3 = (_isElement(__pyx_v_c_node) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":209
@@ -3743,7 +3761,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_14__setattr__(struct _
  *         else:
  */
   __pyx_t_4 = (((PyObject *)__pyx_v_element) == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_2 = (__pyx_t_4 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":244
  *         element = _lookupChild(self, tag)
@@ -4001,9 +4020,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
-  PyObject *__pyx_t_3 = NULL;
-  Py_ssize_t __pyx_t_4;
-  xmlNode *__pyx_t_5;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  Py_ssize_t __pyx_t_5;
+  xmlNode *__pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -4016,7 +4036,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *             return _lookupChildOrRaise(self, key)
  *         elif isinstance(key, slice):
  */
-  __pyx_t_1 = _isString(__pyx_v_key);
+  __pyx_t_1 = (_isString(__pyx_v_key) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":278
@@ -4043,7 +4063,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *         # normal item access
  */
   __pyx_t_1 = PySlice_Check(__pyx_v_key); 
-  if (__pyx_t_1) {
+  __pyx_t_3 = (__pyx_t_1 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":280
  *             return _lookupChildOrRaise(self, key)
@@ -4058,12 +4079,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
     __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 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_t_2 = PyObject_GetItem(__pyx_t_3, __pyx_v_key); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_GetItem(__pyx_t_4, __pyx_v_key); if (!__pyx_t_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
     goto __pyx_L0;
@@ -4078,8 +4099,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *         c_self_node = self._c_node
  *         c_parent = c_self_node.parent
  */
-  __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_key); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_index = __pyx_t_4;
+  __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_key); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_index = __pyx_t_5;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":283
  *         # normal item access
@@ -4088,8 +4109,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *         c_parent = c_self_node.parent
  *         if c_parent is NULL:
  */
-  __pyx_t_5 = __pyx_v_self->__pyx_base.__pyx_base._c_node;
-  __pyx_v_c_self_node = __pyx_t_5;
+  __pyx_t_6 = __pyx_v_self->__pyx_base.__pyx_base._c_node;
+  __pyx_v_c_self_node = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":284
  *         c_index = key   # raises TypeError if necessary
@@ -4098,8 +4119,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *         if c_parent is NULL:
  *             if c_index == 0:
  */
-  __pyx_t_5 = __pyx_v_c_self_node->parent;
-  __pyx_v_c_parent = __pyx_t_5;
+  __pyx_t_6 = __pyx_v_c_self_node->parent;
+  __pyx_v_c_parent = __pyx_t_6;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":285
  *         c_self_node = self._c_node
@@ -4108,8 +4129,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *             if c_index == 0:
  *                 return self
  */
-  __pyx_t_1 = (__pyx_v_c_parent == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_3 = ((__pyx_v_c_parent == NULL) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":286
  *         c_parent = c_self_node.parent
@@ -4118,8 +4139,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *                 return self
  *             else:
  */
-    __pyx_t_1 = (__pyx_v_c_index == 0);
-    if (__pyx_t_1) {
+    __pyx_t_3 = ((__pyx_v_c_index == 0) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":287
  *         if c_parent is NULL:
@@ -4148,11 +4169,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
       __Pyx_INCREF(__pyx_v_key);
       PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key);
       __Pyx_GIVEREF(__pyx_v_key);
-      __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-      __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_3, 0, 0);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_4, 0, 0);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_L5:;
@@ -4167,8 +4188,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *             c_node = c_parent.last
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_c_index < 0);
-  if (__pyx_t_1) {
+  __pyx_t_3 = ((__pyx_v_c_index < 0) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":291
  *                 raise IndexError, unicode(key)
@@ -4177,8 +4198,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *         else:
  *             c_node = c_parent.children
  */
-    __pyx_t_5 = __pyx_v_c_parent->last;
-    __pyx_v_c_node = __pyx_t_5;
+    __pyx_t_6 = __pyx_v_c_parent->last;
+    __pyx_v_c_node = __pyx_t_6;
     goto __pyx_L6;
   }
   /*else*/ {
@@ -4190,8 +4211,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *         c_node = _findFollowingSibling(
  *             c_node, tree._getNs(c_self_node), c_self_node.name, c_index)
  */
-    __pyx_t_5 = __pyx_v_c_parent->children;
-    __pyx_v_c_node = __pyx_t_5;
+    __pyx_t_6 = __pyx_v_c_parent->children;
+    __pyx_v_c_node = __pyx_t_6;
   }
   __pyx_L6:;
 
@@ -4211,8 +4232,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *             raise IndexError, unicode(key)
  *         return elementFactory(self._doc, c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_node == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":297
  *             c_node, tree._getNs(c_self_node), c_self_node.name, c_index)
@@ -4221,14 +4242,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
  *         return elementFactory(self._doc, c_node)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __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 = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_key);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_key);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_key);
     __Pyx_GIVEREF(__pyx_v_key);
-    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_2, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -4246,18 +4267,18 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_20__getitem__(st
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_2 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._doc);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.objectify.ObjectifiedElement.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -4296,9 +4317,10 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
-  xmlNode *__pyx_t_3;
-  Py_ssize_t __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_3;
+  xmlNode *__pyx_t_4;
+  Py_ssize_t __pyx_t_5;
+  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -4312,7 +4334,7 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             key = _buildChildTag(self, key)
  *             element = _lookupChild(self, key)
  */
-  __pyx_t_1 = _isString(__pyx_v_key);
+  __pyx_t_1 = (_isString(__pyx_v_key) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":316
@@ -4349,7 +4371,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             else:
  */
     __pyx_t_1 = (((PyObject *)__pyx_v_element) == Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":319
  *             element = _lookupChild(self, key)
@@ -4398,8 +4421,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             # the 'root[i] = ...' case
  *             raise TypeError, u"assignment to root element is invalid"
  */
-  __pyx_t_1 = (__pyx_v_self->__pyx_base.__pyx_base._c_node->parent == NULL);
-  if (__pyx_t_1) {
+  __pyx_t_3 = ((__pyx_v_self->__pyx_base.__pyx_base._c_node->parent == NULL) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":326
  *         if self._c_node.parent is NULL:
@@ -4421,7 +4444,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             # slice assignment
  *             _setSlice(key, self, value)
  */
-  __pyx_t_1 = PySlice_Check(__pyx_v_key); 
+  __pyx_t_3 = PySlice_Check(__pyx_v_key); 
+  __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":330
@@ -4457,8 +4481,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             else:
  *                 c_node = self._c_node.parent.children
  */
-      __pyx_t_3 = __pyx_v_self->__pyx_base.__pyx_base._c_node->parent->last;
-      __pyx_v_c_node = __pyx_t_3;
+      __pyx_t_4 = __pyx_v_self->__pyx_base.__pyx_base._c_node->parent->last;
+      __pyx_v_c_node = __pyx_t_4;
       goto __pyx_L7;
     }
     /*else*/ {
@@ -4470,8 +4494,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             c_node = _findFollowingSibling(
  *                 c_node, tree._getNs(self._c_node), self._c_node.name, key)
  */
-      __pyx_t_3 = __pyx_v_self->__pyx_base.__pyx_base._c_node->parent->children;
-      __pyx_v_c_node = __pyx_t_3;
+      __pyx_t_4 = __pyx_v_self->__pyx_base.__pyx_base._c_node->parent->children;
+      __pyx_v_c_node = __pyx_t_4;
     }
     __pyx_L7:;
 
@@ -4482,8 +4506,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             if c_node is NULL:
  *                 raise IndexError, unicode(key)
  */
-    __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_key); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_node = __pyx_f_4lxml_9objectify__findFollowingSibling(__pyx_v_c_node, _getNs(__pyx_v_self->__pyx_base.__pyx_base._c_node), __pyx_v_self->__pyx_base.__pyx_base._c_node->name, __pyx_t_4);
+    __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_key); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_node = __pyx_f_4lxml_9objectify__findFollowingSibling(__pyx_v_c_node, _getNs(__pyx_v_self->__pyx_base.__pyx_base._c_node), __pyx_v_self->__pyx_base.__pyx_base._c_node->name, __pyx_t_5);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":339
  *             c_node = _findFollowingSibling(
@@ -4492,7 +4516,7 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *                 raise IndexError, unicode(key)
  *             element = elementFactory(self._doc, c_node)
  */
-    __pyx_t_1 = (__pyx_v_c_node == NULL);
+    __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":340
@@ -4507,11 +4531,11 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
       __Pyx_INCREF(__pyx_v_key);
       PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_key);
       __Pyx_GIVEREF(__pyx_v_key);
-      __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-      __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_5, 0, 0);
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_Raise(__pyx_builtin_IndexError, __pyx_t_6, 0, 0);
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L8;
     }
@@ -4524,11 +4548,11 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  *             _replaceElement(element, value)
  * 
  */
-    __pyx_t_5 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._doc);
-    __Pyx_INCREF(__pyx_t_5);
-    __pyx_t_2 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base._doc);
+    __Pyx_INCREF(__pyx_t_6);
+    __pyx_t_2 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_v_element = ((struct LxmlElement *)__pyx_t_2);
     __pyx_t_2 = 0;
 
@@ -4549,7 +4573,7 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.objectify.ObjectifiedElement.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -4589,9 +4613,10 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
   PyObject *__pyx_t_1 = NULL;
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
-  Py_ssize_t __pyx_t_4;
-  PyObject *(*__pyx_t_5)(PyObject *);
-  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_4;
+  Py_ssize_t __pyx_t_5;
+  PyObject *(*__pyx_t_6)(PyObject *);
+  PyObject *__pyx_t_7 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -4620,7 +4645,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
  *         if isinstance(key, slice):
  */
   __pyx_t_3 = (__pyx_v_parent == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":348
  *         parent = self.getparent()
@@ -4642,7 +4668,8 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
  *             # slice deletion
  *             del_items = list(self)[key]
  */
-  __pyx_t_3 = PySlice_Check(__pyx_v_key); 
+  __pyx_t_4 = PySlice_Check(__pyx_v_key); 
+  __pyx_t_3 = (__pyx_t_4 != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":351
@@ -4686,30 +4713,30 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
  *         else:
  */
     if (PyList_CheckExact(__pyx_v_del_items) || PyTuple_CheckExact(__pyx_v_del_items)) {
-      __pyx_t_2 = __pyx_v_del_items; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
-      __pyx_t_5 = NULL;
+      __pyx_t_2 = __pyx_v_del_items; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
+      __pyx_t_6 = NULL;
     } else {
-      __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_del_items); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_del_items); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext;
+      __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext;
     }
     for (;;) {
-      if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_2)) {
-        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
+      if (!__pyx_t_6 && PyList_CheckExact(__pyx_t_2)) {
+        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
-      } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_2)) {
-        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
+      } else if (!__pyx_t_6 && PyTuple_CheckExact(__pyx_t_2)) {
+        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
-        __pyx_t_1 = __pyx_t_5(__pyx_t_2);
+        __pyx_t_1 = __pyx_t_6(__pyx_t_2);
         if (unlikely(!__pyx_t_1)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
@@ -4735,10 +4762,10 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
       __Pyx_INCREF(__pyx_v_el);
       PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_el);
       __Pyx_GIVEREF(__pyx_v_el);
-      __pyx_t_6 = PyObject_Call(__pyx_v_remove, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = PyObject_Call(__pyx_v_remove, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     }
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L4;
@@ -4754,15 +4781,15 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
  */
     __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);
+    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
     __Pyx_INCREF(__pyx_v_key);
-    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_key);
+    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_key);
     __Pyx_GIVEREF(__pyx_v_key);
-    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
     __pyx_v_sibling = __pyx_t_1;
     __pyx_t_1 = 0;
 
@@ -4775,15 +4802,15 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
  */
     __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);
+    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
     __Pyx_INCREF(__pyx_v_sibling);
-    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_sibling);
+    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_sibling);
     __Pyx_GIVEREF(__pyx_v_sibling);
-    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   }
   __pyx_L4:;
@@ -4793,7 +4820,7 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.objectify.ObjectifiedElement.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -4891,11 +4918,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_26descendantpath
  *         return _buildDescendantPaths(self._c_node, prefix)
  */
   __pyx_t_1 = (__pyx_v_prefix != Py_None);
-  if (__pyx_t_1) {
-    __pyx_t_2 = (!_isString(__pyx_v_prefix));
+  if ((__pyx_t_1 != 0)) {
+    __pyx_t_2 = ((!(_isString(__pyx_v_prefix) != 0)) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -4964,7 +4991,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify__tagMatches(xmlNode *__pyx_v_c
  *         return 0
  *     if c_href == NULL:
  */
-  __pyx_t_1 = (__pyx_v_c_node->name != __pyx_v_c_name);
+  __pyx_t_1 = ((__pyx_v_c_node->name != __pyx_v_c_name) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":371
@@ -4987,7 +5014,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify__tagMatches(xmlNode *__pyx_v_c
  *         return 1
  *     c_node_href = tree._getNs(c_node)
  */
-  __pyx_t_1 = (__pyx_v_c_href == NULL);
+  __pyx_t_1 = ((__pyx_v_c_href == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":373
@@ -5019,7 +5046,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify__tagMatches(xmlNode *__pyx_v_c
  *         return c_href[0] == c'\0'
  *     return tree.xmlStrcmp(c_node_href, c_href) == 0
  */
-  __pyx_t_1 = (__pyx_v_c_node_href == NULL);
+  __pyx_t_1 = ((__pyx_v_c_node_href == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":376
@@ -5119,7 +5146,7 @@ static Py_ssize_t __pyx_f_4lxml_9objectify__countSiblings(xmlNode *__pyx_v_c_sta
  *                _tagMatches(c_node, c_href, c_tag):
  */
   while (1) {
-    __pyx_t_3 = (__pyx_v_c_node != NULL);
+    __pyx_t_3 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":387
@@ -5129,7 +5156,7 @@ static Py_ssize_t __pyx_f_4lxml_9objectify__countSiblings(xmlNode *__pyx_v_c_sta
  *                _tagMatches(c_node, c_href, c_tag):
  *             count += 1
  */
-    __pyx_t_3 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+    __pyx_t_3 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":388
@@ -5139,7 +5166,7 @@ static Py_ssize_t __pyx_f_4lxml_9objectify__countSiblings(xmlNode *__pyx_v_c_sta
  *             count += 1
  *         c_node = c_node.next
  */
-      __pyx_t_4 = __pyx_f_4lxml_9objectify__tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_tag);
+      __pyx_t_4 = (__pyx_f_4lxml_9objectify__tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_tag) != 0);
       __pyx_t_5 = __pyx_t_4;
     } else {
       __pyx_t_5 = __pyx_t_3;
@@ -5187,7 +5214,7 @@ static Py_ssize_t __pyx_f_4lxml_9objectify__countSiblings(xmlNode *__pyx_v_c_sta
  *                _tagMatches(c_node, c_href, c_tag):
  */
   while (1) {
-    __pyx_t_5 = (__pyx_v_c_node != NULL);
+    __pyx_t_5 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_5) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":393
@@ -5197,7 +5224,7 @@ static Py_ssize_t __pyx_f_4lxml_9objectify__countSiblings(xmlNode *__pyx_v_c_sta
  *                _tagMatches(c_node, c_href, c_tag):
  *             count += 1
  */
-    __pyx_t_5 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+    __pyx_t_5 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":394
@@ -5207,7 +5234,7 @@ static Py_ssize_t __pyx_f_4lxml_9objectify__countSiblings(xmlNode *__pyx_v_c_sta
  *             count += 1
  *         c_node = c_node.prev
  */
-      __pyx_t_3 = __pyx_f_4lxml_9objectify__tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_tag);
+      __pyx_t_3 = (__pyx_f_4lxml_9objectify__tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_tag) != 0);
       __pyx_t_4 = __pyx_t_3;
     } else {
       __pyx_t_4 = __pyx_t_5;
@@ -5277,7 +5304,7 @@ static xmlNode *__pyx_f_4lxml_9objectify__findFollowingSibling(xmlNode *__pyx_v_
  *         next = cetree.nextElement
  *     else:
  */
-  __pyx_t_1 = (__pyx_v_index >= 0);
+  __pyx_t_1 = ((__pyx_v_index >= 0) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":404
@@ -5320,7 +5347,7 @@ static xmlNode *__pyx_f_4lxml_9objectify__findFollowingSibling(xmlNode *__pyx_v_
  *                _tagMatches(c_node, href, name):
  */
   while (1) {
-    __pyx_t_1 = (__pyx_v_c_node != NULL);
+    __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_1) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":409
@@ -5330,7 +5357,7 @@ static xmlNode *__pyx_f_4lxml_9objectify__findFollowingSibling(xmlNode *__pyx_v_
  *                _tagMatches(c_node, href, name):
  *             index = index - 1
  */
-    __pyx_t_1 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+    __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":410
@@ -5340,7 +5367,7 @@ static xmlNode *__pyx_f_4lxml_9objectify__findFollowingSibling(xmlNode *__pyx_v_
  *             index = index - 1
  *             if index < 0:
  */
-      __pyx_t_2 = __pyx_f_4lxml_9objectify__tagMatches(__pyx_v_c_node, __pyx_v_href, __pyx_v_name);
+      __pyx_t_2 = (__pyx_f_4lxml_9objectify__tagMatches(__pyx_v_c_node, __pyx_v_href, __pyx_v_name) != 0);
       __pyx_t_3 = __pyx_t_2;
     } else {
       __pyx_t_3 = __pyx_t_1;
@@ -5363,7 +5390,7 @@ static xmlNode *__pyx_f_4lxml_9objectify__findFollowingSibling(xmlNode *__pyx_v_
  *                 return c_node
  *         c_node = next(c_node)
  */
-      __pyx_t_3 = (__pyx_v_index < 0);
+      __pyx_t_3 = ((__pyx_v_index < 0) != 0);
       if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":413
@@ -5431,9 +5458,10 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChild(struct LxmlElement *__pyx
   PyObject *__pyx_t_5 = NULL;
   PyObject *(*__pyx_t_6)(PyObject *);
   int __pyx_t_7;
-  const xmlChar *__pyx_t_8;
+  int __pyx_t_8;
   const xmlChar *__pyx_t_9;
   const xmlChar *__pyx_t_10;
+  const xmlChar *__pyx_t_11;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -5529,7 +5557,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChild(struct LxmlElement *__pyx
  *         return None # not in the hash map => not in the tree
  *     if ns is None:
  */
-  __pyx_t_7 = (__pyx_v_c_tag == NULL);
+  __pyx_t_7 = ((__pyx_v_c_tag == NULL) != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":425
@@ -5555,7 +5583,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChild(struct LxmlElement *__pyx
  *         c_href = tree._getNs(c_node) or <tree.const_xmlChar*>''
  */
   __pyx_t_7 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_7) {
+  __pyx_t_8 = (__pyx_t_7 != 0);
+  if (__pyx_t_8) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":428
  *     if ns is None:
@@ -5564,14 +5593,14 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChild(struct LxmlElement *__pyx
  *     else:
  *         c_href = _xcstr(ns)
  */
-    __pyx_t_8 = _getNs(__pyx_v_c_node);
-    if (!__pyx_t_8) {
-      __pyx_t_9 = ((const xmlChar *)((unsigned char *)__pyx_k_3));
-      __pyx_t_10 = __pyx_t_9;
+    __pyx_t_9 = _getNs(__pyx_v_c_node);
+    if (!__pyx_t_9) {
+      __pyx_t_10 = ((const xmlChar *)((unsigned char *)__pyx_k_3));
+      __pyx_t_11 = __pyx_t_10;
     } else {
-      __pyx_t_10 = __pyx_t_8;
+      __pyx_t_11 = __pyx_t_9;
     }
-    __pyx_v_c_href = __pyx_t_10;
+    __pyx_v_c_href = __pyx_t_11;
     goto __pyx_L6;
   }
   /*else*/ {
@@ -5603,8 +5632,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChild(struct LxmlElement *__pyx
  *         return None
  *     return elementFactory(parent._doc, c_result)
  */
-  __pyx_t_7 = (__pyx_v_c_result == NULL);
-  if (__pyx_t_7) {
+  __pyx_t_8 = ((__pyx_v_c_result == NULL) != 0);
+  if (__pyx_t_8) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":433
  *     c_result = _findFollowingSibling(c_node.children, c_href, c_tag, 0)
@@ -5669,7 +5698,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChildOrRaise(struct LxmlElement
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -5695,7 +5725,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChildOrRaise(struct LxmlElement
  *             u"no such child: " + _buildChildTag(parent, tag)
  */
   __pyx_t_2 = (__pyx_v_element == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":440
  *     if element is None:
@@ -5706,11 +5737,11 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChildOrRaise(struct LxmlElement
  */
     __pyx_t_1 = __pyx_f_4lxml_9objectify__buildChildTag(__pyx_v_parent, __pyx_v_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = PyNumber_Add(((PyObject *)__pyx_kp_u_9), __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = PyNumber_Add(((PyObject *)__pyx_kp_u_9), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __Pyx_Raise(__pyx_builtin_AttributeError, __pyx_t_3, 0, 0);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_Raise(__pyx_builtin_AttributeError, __pyx_t_4, 0, 0);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -5732,7 +5763,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChildOrRaise(struct LxmlElement
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.objectify._lookupChildOrRaise", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -5849,7 +5880,7 @@ static PyObject *__pyx_f_4lxml_9objectify__buildChildTag(struct LxmlElement *__p
  * 
  */
   __pyx_t_7 = (__pyx_v_ns == Py_None);
-  if (__pyx_t_7) {
+  if ((__pyx_t_7 != 0)) {
     __pyx_t_6 = _getNs(__pyx_v_parent->_c_node);
   } else {
     __pyx_t_6 = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns);
@@ -5900,9 +5931,9 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
@@ -5918,7 +5949,8 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
  *         new_element = cetree.deepcopyNodeToDocument(
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":454
  *         # deep copy the new element
@@ -5927,13 +5959,13 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
  *         new_element.tag = element.tag
  *     elif isinstance(value, (list, tuple)):
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_element->_doc);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_3 = ((PyObject *)deepcopyNodeToDocument(((struct LxmlDocument *)__pyx_t_2), ((struct LxmlElement *)__pyx_v_value)->_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_element->_doc);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)deepcopyNodeToDocument(((struct LxmlDocument *)__pyx_t_3), ((struct LxmlElement *)__pyx_v_value)->_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":455
  *         new_element = cetree.deepcopyNodeToDocument(
@@ -5942,10 +5974,10 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
  *     elif isinstance(value, (list, tuple)):
  *         element[:] = value
  */
-    __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 (__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;
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_new_element), __pyx_n_s__tag, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L3;
   }
 
@@ -5957,16 +5989,17 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
  *         return
  */
   __Pyx_INCREF(__pyx_v_value);
-  __pyx_t_3 = __pyx_v_value;
-  __pyx_t_1 = PyList_Check(__pyx_t_3); 
-  if (!__pyx_t_1) {
-    __pyx_t_4 = PyTuple_Check(__pyx_t_3); 
-    __pyx_t_5 = __pyx_t_4;
-  } else {
+  __pyx_t_4 = __pyx_v_value;
+  __pyx_t_2 = PyList_Check(__pyx_t_4); 
+  if (!__pyx_t_2) {
+    __pyx_t_1 = PyTuple_Check(__pyx_t_4); 
     __pyx_t_5 = __pyx_t_1;
+  } else {
+    __pyx_t_5 = __pyx_t_2;
   }
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_5) {
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_2 = (__pyx_t_5 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":457
  *         new_element.tag = element.tag
@@ -5998,22 +6031,22 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
  *         _setElementValue(new_element, value)
  *     element.getparent().replace(element, new_element)
  */
-    __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_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__makeelement); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __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 = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __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);
-    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
-    __Pyx_GIVEREF(__pyx_t_2);
-    __pyx_t_2 = 0;
-    __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); 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_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
+    __Pyx_GIVEREF(__pyx_t_3);
+    __pyx_t_3 = 0;
+    __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_6), NULL); 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_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-    if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":461
  *     else:
@@ -6022,9 +6055,9 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
  *     element.getparent().replace(element, new_element)
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_9objectify__setElementValue(__pyx_v_new_element, __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_9objectify__setElementValue(__pyx_v_new_element, __pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
@@ -6035,13 +6068,13 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
  * 
  * cdef _appendValue(_Element parent, tag, value):
  */
-  __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_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__getparent); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_6 = PyObject_Call(__pyx_t_3, ((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 = __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_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s__replace); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
   __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;}
   __Pyx_GOTREF(__pyx_t_6);
@@ -6051,17 +6084,17 @@ static PyObject *__pyx_f_4lxml_9objectify__replaceElement(struct LxmlElement *__
   __Pyx_INCREF(((PyObject *)__pyx_v_new_element));
   PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_v_new_element));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_new_element));
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __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_6)); __pyx_t_6 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 462; __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_6)); __pyx_t_6 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.objectify._replaceElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
@@ -6086,9 +6119,9 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
   Py_ssize_t __pyx_t_6;
   PyObject *(*__pyx_t_7)(PyObject *);
@@ -6105,7 +6138,8 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
  *         new_element = cetree.deepcopyNodeToDocument(
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":469
  *         # deep copy the new element
@@ -6114,13 +6148,13 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
  *         new_element.tag = tag
  *         cetree.appendChild(parent, new_element)
  */
-    __pyx_t_2 = ((PyObject *)__pyx_v_parent->_doc);
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_3 = ((PyObject *)deepcopyNodeToDocument(((struct LxmlDocument *)__pyx_t_2), ((struct LxmlElement *)__pyx_v_value)->_c_node)); 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);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_3 = ((PyObject *)__pyx_v_parent->_doc);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = ((PyObject *)deepcopyNodeToDocument(((struct LxmlDocument *)__pyx_t_3), ((struct LxmlElement *)__pyx_v_value)->_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":470
  *         new_element = cetree.deepcopyNodeToDocument(
@@ -6150,16 +6184,17 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
  *             _appendValue(parent, tag, item)
  */
   __Pyx_INCREF(__pyx_v_value);
-  __pyx_t_3 = __pyx_v_value;
-  __pyx_t_1 = PyList_Check(__pyx_t_3); 
-  if (!__pyx_t_1) {
-    __pyx_t_4 = PyTuple_Check(__pyx_t_3); 
-    __pyx_t_5 = __pyx_t_4;
-  } else {
+  __pyx_t_4 = __pyx_v_value;
+  __pyx_t_2 = PyList_Check(__pyx_t_4); 
+  if (!__pyx_t_2) {
+    __pyx_t_1 = PyTuple_Check(__pyx_t_4); 
     __pyx_t_5 = __pyx_t_1;
+  } else {
+    __pyx_t_5 = __pyx_t_2;
   }
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_5) {
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_2 = (__pyx_t_5 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":473
  *         cetree.appendChild(parent, new_element)
@@ -6169,42 +6204,42 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
  *     else:
  */
     if (PyList_CheckExact(__pyx_v_value) || PyTuple_CheckExact(__pyx_v_value)) {
-      __pyx_t_3 = __pyx_v_value; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
+      __pyx_t_4 = __pyx_v_value; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
       __pyx_t_7 = NULL;
     } else {
-      __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
+      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_value); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext;
     }
     for (;;) {
-      if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_3)) {
-        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
+      if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_4)) {
+        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
-      } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_3)) {
-        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
+      } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_4)) {
+        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
-        __pyx_t_2 = __pyx_t_7(__pyx_t_3);
-        if (unlikely(!__pyx_t_2)) {
+        __pyx_t_3 = __pyx_t_7(__pyx_t_4);
+        if (unlikely(!__pyx_t_3)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
             else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
-        __Pyx_GOTREF(__pyx_t_2);
+        __Pyx_GOTREF(__pyx_t_3);
       }
       __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_v_item = __pyx_t_3;
+      __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":474
  *     elif isinstance(value, (list, tuple)):
@@ -6213,11 +6248,11 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
  *     else:
  *         new_element = cetree.makeElement(
  */
-      __pyx_t_2 = __pyx_f_4lxml_9objectify__appendValue(__pyx_v_parent, __pyx_v_tag, __pyx_v_item); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_3 = __pyx_f_4lxml_9objectify__appendValue(__pyx_v_parent, __pyx_v_tag, __pyx_v_item); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     }
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -6229,13 +6264,13 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
  *         _setElementValue(new_element, value)
  *         cetree.appendChild(parent, new_element)
  */
-    __pyx_t_3 = ((PyObject *)__pyx_v_parent->_doc);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_2 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)__pyx_t_3), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_3 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)__pyx_t_4), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_3);
+    __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":478
  *         new_element = cetree.makeElement(
@@ -6244,9 +6279,9 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
  *         cetree.appendChild(parent, new_element)
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_9objectify__setElementValue(__pyx_v_new_element, __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_9objectify__setElementValue(__pyx_v_new_element, __pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __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/lxml.objectify.pyx":479
  *             tag, parent._doc, None, None, None, None, None)
@@ -6262,8 +6297,8 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.objectify._appendValue", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -6288,9 +6323,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_4;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -6305,7 +6341,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *             element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
  */
   __pyx_t_1 = (__pyx_v_value == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":485
  *     if value is None:
@@ -6314,10 +6351,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *     elif isinstance(value, _Element):
  *         _replaceElement(element, value)
  */
-    __pyx_t_2 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_3 = setAttributeValue(__pyx_v_element, __pyx_t_2, ((PyObject *)__pyx_n_u__true)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_4 = setAttributeValue(__pyx_v_element, __pyx_t_3, ((PyObject *)__pyx_n_u__true)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L3;
   }
 
@@ -6328,7 +6365,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *         _replaceElement(element, value)
  *         return
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_value, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":487
@@ -6338,9 +6376,9 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *         return
  *     else:
  */
-    __pyx_t_2 = __pyx_f_4lxml_9objectify__replaceElement(__pyx_v_element, __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_9objectify__replaceElement(__pyx_v_element, __pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 487; __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/lxml.objectify.pyx":488
  *     elif isinstance(value, _Element):
@@ -6372,7 +6410,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *             pytype_name = u"str"
  *             _pytype = python.PyDict_GetItem(_PYTYPE_DICT, pytype_name)
  */
-    __pyx_t_1 = _isString(__pyx_v_value);
+    __pyx_t_1 = (_isString(__pyx_v_value) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":493
@@ -6392,10 +6430,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *         else:
  *             pytype_name = _typename(value)
  */
-      __pyx_t_2 = ((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT);
-      __Pyx_INCREF(__pyx_t_2);
-      __pyx_v__pytype = PyDict_GetItem(__pyx_t_2, __pyx_v_pytype_name);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_3 = ((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT);
+      __Pyx_INCREF(__pyx_t_3);
+      __pyx_v__pytype = PyDict_GetItem(__pyx_t_3, __pyx_v_pytype_name);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     /*else*/ {
@@ -6407,10 +6445,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *             _pytype = python.PyDict_GetItem(_PYTYPE_DICT, pytype_name)
  *             if _pytype is not NULL:
  */
-      __pyx_t_2 = __pyx_f_4lxml_9objectify__typename(__pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_2);
-      __pyx_v_pytype_name = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_t_3 = __pyx_f_4lxml_9objectify__typename(__pyx_v_value); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_v_pytype_name = __pyx_t_3;
+      __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":497
  *         else:
@@ -6419,10 +6457,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *             if _pytype is not NULL:
  *                 value = (<PyType>_pytype).stringify(value)
  */
-      __pyx_t_2 = ((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT);
-      __Pyx_INCREF(__pyx_t_2);
-      __pyx_v__pytype = PyDict_GetItem(__pyx_t_2, __pyx_v_pytype_name);
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_3 = ((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT);
+      __Pyx_INCREF(__pyx_t_3);
+      __pyx_v__pytype = PyDict_GetItem(__pyx_t_3, __pyx_v_pytype_name);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":498
  *             pytype_name = _typename(value)
@@ -6431,7 +6469,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *                 value = (<PyType>_pytype).stringify(value)
  *             else:
  */
-      __pyx_t_1 = (__pyx_v__pytype != NULL);
+      __pyx_t_1 = ((__pyx_v__pytype != NULL) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":499
@@ -6441,17 +6479,17 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *             else:
  *                 value = unicode(value)
  */
-        __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __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 = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_3);
         __Pyx_INCREF(__pyx_v_value);
-        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
+        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_value);
         __Pyx_GIVEREF(__pyx_v_value);
-        __pyx_t_4 = PyObject_Call(((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v__pytype)->stringify, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __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 = PyObject_Call(((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v__pytype)->stringify, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
+        __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
         __Pyx_DECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_4;
-        __pyx_t_4 = 0;
+        __pyx_v_value = __pyx_t_5;
+        __pyx_t_5 = 0;
         goto __pyx_L5;
       }
       /*else*/ {
@@ -6463,17 +6501,17 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *         if _pytype is not NULL:
  *             cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
  */
-        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __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 = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_value);
-        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_value);
+        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_value);
         __Pyx_GIVEREF(__pyx_v_value);
-        __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+        __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
         __Pyx_DECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_2;
-        __pyx_t_2 = 0;
+        __pyx_v_value = __pyx_t_3;
+        __pyx_t_3 = 0;
       }
       __pyx_L5:;
     }
@@ -6486,7 +6524,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *             cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
  *         else:
  */
-    __pyx_t_1 = (__pyx_v__pytype != NULL);
+    __pyx_t_1 = ((__pyx_v__pytype != NULL) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":503
@@ -6496,10 +6534,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  *         else:
  *             cetree.delAttributeFromNsName(
  */
-      __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;
+      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_4 = setAttributeValue(__pyx_v_element, __pyx_t_3, __pyx_v_pytype_name); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       goto __pyx_L6;
     }
     /*else*/ {
@@ -6524,13 +6562,13 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
  * 
  * cdef _setSlice(sliceobject, _Element target, items):
  */
-  __pyx_t_3 = setNodeText(__pyx_v_element->_c_node, __pyx_v_value); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = setNodeText(__pyx_v_element->_c_node, __pyx_v_value); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify._setElementValue", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -6565,12 +6603,12 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  Py_ssize_t __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  PyObject *(*__pyx_t_4)(PyObject *);
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_2;
+  Py_ssize_t __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  PyObject *(*__pyx_t_5)(PyObject *);
   PyObject *__pyx_t_6 = NULL;
-  int __pyx_t_7;
+  PyObject *__pyx_t_7 = NULL;
   int __pyx_t_8;
   int __pyx_t_9;
   xmlNode *__pyx_t_10;
@@ -6587,7 +6625,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *     else:
  */
   __pyx_t_1 = (((PySliceObject*)((PyObject*)__pyx_v_sliceobject))->step == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":516
  *     # collect existing slice
@@ -6608,8 +6647,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *     if c_step == 0:
  *         raise ValueError, u"Invalid slice"
  */
-    __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(((PySliceObject*)((PyObject*)__pyx_v_sliceobject))->step); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_c_step = __pyx_t_2;
+    __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(((PySliceObject*)((PyObject*)__pyx_v_sliceobject))->step); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_c_step = __pyx_t_3;
   }
   __pyx_L3:;
 
@@ -6620,8 +6659,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         raise ValueError, u"Invalid slice"
  *     del_items = target[sliceobject]
  */
-  __pyx_t_1 = (__pyx_v_c_step == 0);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_step == 0) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":520
  *         c_step = (<slice>sliceobject).step
@@ -6643,10 +6682,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  * 
  *     # collect new values
  */
-  __pyx_t_3 = PyObject_GetItem(((PyObject *)__pyx_v_target), __pyx_v_sliceobject); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __pyx_v_del_items = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_t_4 = PyObject_GetItem(((PyObject *)__pyx_v_target), __pyx_v_sliceobject); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_v_del_items = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":524
  * 
@@ -6655,10 +6694,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *     tag = target.tag
  *     for item in items:
  */
-  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __pyx_v_new_items = ((PyObject*)__pyx_t_3);
-  __pyx_t_3 = 0;
+  __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_v_new_items = ((PyObject*)__pyx_t_4);
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":525
  *     # collect new values
@@ -6667,10 +6706,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *     for item in items:
  *         if isinstance(item, _Element):
  */
-  __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;
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_target), __pyx_n_s__tag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_v_tag = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":526
  *     new_items = []
@@ -6680,42 +6719,42 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             # deep copy the new element
  */
   if (PyList_CheckExact(__pyx_v_items) || PyTuple_CheckExact(__pyx_v_items)) {
-    __pyx_t_3 = __pyx_v_items; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;
-    __pyx_t_4 = NULL;
+    __pyx_t_4 = __pyx_v_items; __Pyx_INCREF(__pyx_t_4); __pyx_t_3 = 0;
+    __pyx_t_5 = NULL;
   } else {
-    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_items); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = Py_TYPE(__pyx_t_3)->tp_iternext;
+    __pyx_t_3 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
   }
   for (;;) {
-    if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_3)) {
-      if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
+    if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_4)) {
+      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_6); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-    } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_3)) {
-      if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
+    } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_4)) {
+      if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_5); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_6); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_5 = __pyx_t_4(__pyx_t_3);
-      if (unlikely(!__pyx_t_5)) {
+      __pyx_t_6 = __pyx_t_5(__pyx_t_4);
+      if (unlikely(!__pyx_t_6)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
           else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
-      __Pyx_GOTREF(__pyx_t_5);
+      __Pyx_GOTREF(__pyx_t_6);
     }
     __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_5;
-    __pyx_t_5 = 0;
+    __pyx_v_item = __pyx_t_6;
+    __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":527
  *     tag = target.tag
@@ -6724,7 +6763,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             # deep copy the new element
  *             new_element = cetree.deepcopyNodeToDocument(
  */
-    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_item, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
+    __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_item, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":530
@@ -6734,14 +6774,14 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             new_element.tag = tag
  *         else:
  */
-      __pyx_t_5 = ((PyObject *)__pyx_v_target->_doc);
-      __Pyx_INCREF(__pyx_t_5);
-      __pyx_t_6 = ((PyObject *)deepcopyNodeToDocument(((struct LxmlDocument *)__pyx_t_5), ((struct LxmlElement *)__pyx_v_item)->_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_6 = ((PyObject *)__pyx_v_target->_doc);
+      __Pyx_INCREF(__pyx_t_6);
+      __pyx_t_7 = ((PyObject *)deepcopyNodeToDocument(((struct LxmlDocument *)__pyx_t_6), ((struct LxmlElement *)__pyx_v_item)->_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_XDECREF(((PyObject *)__pyx_v_new_element));
-      __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_6);
-      __pyx_t_6 = 0;
+      __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_7);
+      __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":531
  *             new_element = cetree.deepcopyNodeToDocument(
@@ -6762,14 +6802,14 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             _setElementValue(new_element, item)
  *         new_items.append(new_element)
  */
-      __pyx_t_6 = ((PyObject *)__pyx_v_target->_doc);
-      __Pyx_INCREF(__pyx_t_6);
-      __pyx_t_5 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)__pyx_t_6), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_7 = ((PyObject *)__pyx_v_target->_doc);
+      __Pyx_INCREF(__pyx_t_7);
+      __pyx_t_6 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)__pyx_t_7), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_XDECREF(((PyObject *)__pyx_v_new_element));
-      __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_5);
-      __pyx_t_5 = 0;
+      __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_6);
+      __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":535
  *             new_element = cetree.makeElement(
@@ -6778,9 +6818,9 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         new_items.append(new_element)
  * 
  */
-      __pyx_t_5 = __pyx_f_4lxml_9objectify__setElementValue(__pyx_v_new_element, __pyx_v_item); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_6 = __pyx_f_4lxml_9objectify__setElementValue(__pyx_v_new_element, __pyx_v_item); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     }
     __pyx_L7:;
 
@@ -6791,9 +6831,9 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  * 
  *     # sanity check - raise what a list would raise
  */
-    __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_t_8 = __Pyx_PyList_Append(__pyx_v_new_items, ((PyObject *)__pyx_v_new_element)); if (unlikely(__pyx_t_8 == -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_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":539
  * 
@@ -6802,7 +6842,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             python.PyList_GET_SIZE(del_items) != python.PyList_GET_SIZE(new_items):
  *         raise ValueError, \
  */
-  __pyx_t_1 = (__pyx_v_c_step != 1);
+  __pyx_t_1 = ((__pyx_v_c_step != 1) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":540
@@ -6812,8 +6852,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         raise ValueError, \
  *             u"attempt to assign sequence of size %d to extended slice of size %d" % (
  */
-    __pyx_t_8 = (PyList_GET_SIZE(__pyx_v_del_items) != PyList_GET_SIZE(((PyObject *)__pyx_v_new_items)));
-    __pyx_t_9 = __pyx_t_8;
+    __pyx_t_2 = ((PyList_GET_SIZE(__pyx_v_del_items) != PyList_GET_SIZE(((PyObject *)__pyx_v_new_items))) != 0);
+    __pyx_t_9 = __pyx_t_2;
   } else {
     __pyx_t_9 = __pyx_t_1;
   }
@@ -6826,8 +6866,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             python.PyList_GET_SIZE(del_items))
  * 
  */
-    __pyx_t_3 = PyInt_FromSsize_t(PyList_GET_SIZE(((PyObject *)__pyx_v_new_items))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = PyInt_FromSsize_t(PyList_GET_SIZE(((PyObject *)__pyx_v_new_items))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":544
  *             u"attempt to assign sequence of size %d to extended slice of size %d" % (
@@ -6836,21 +6876,21 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  * 
  *     # replace existing items
  */
-    __pyx_t_5 = PyInt_FromSsize_t(PyList_GET_SIZE(__pyx_v_del_items)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyInt_FromSsize_t(PyList_GET_SIZE(__pyx_v_del_items)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3);
-    __Pyx_GIVEREF(__pyx_t_3);
-    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_5);
-    __Pyx_GIVEREF(__pyx_t_5);
-    __pyx_t_3 = 0;
-    __pyx_t_5 = 0;
-    __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_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
+    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
+    __Pyx_GIVEREF(__pyx_t_4);
+    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
+    __Pyx_GIVEREF(__pyx_t_6);
+    __pyx_t_4 = 0;
+    __pyx_t_6 = 0;
+    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_12), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+    __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_6), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_5), 0, 0);
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L8;
   }
@@ -6872,14 +6912,14 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *     replace = parent.replace
  *     while pos < python.PyList_GET_SIZE(new_items) and \
  */
-  __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_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_target), __pyx_n_s__getparent); 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);
-  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_parent = ((struct LxmlElement *)__pyx_t_6);
-  __pyx_t_6 = 0;
+  __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 = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+  if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_parent = ((struct LxmlElement *)__pyx_t_7);
+  __pyx_t_7 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":549
  *     pos = 0
@@ -6888,10 +6928,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *     while pos < python.PyList_GET_SIZE(new_items) and \
  *             pos < python.PyList_GET_SIZE(del_items):
  */
-  __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;
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parent), __pyx_n_s__replace); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  __pyx_v_replace = __pyx_t_7;
+  __pyx_t_7 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":550
  *     parent = target.getparent()
@@ -6901,7 +6941,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         replace(del_items[pos], new_items[pos])
  */
   while (1) {
-    __pyx_t_9 = (__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items)));
+    __pyx_t_9 = ((__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items))) != 0);
     if (__pyx_t_9) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":551
@@ -6911,12 +6951,12 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         replace(del_items[pos], new_items[pos])
  *         pos += 1
  */
-      __pyx_t_1 = (__pyx_v_pos < PyList_GET_SIZE(__pyx_v_del_items));
-      __pyx_t_8 = __pyx_t_1;
+      __pyx_t_1 = ((__pyx_v_pos < PyList_GET_SIZE(__pyx_v_del_items)) != 0);
+      __pyx_t_2 = __pyx_t_1;
     } else {
-      __pyx_t_8 = __pyx_t_9;
+      __pyx_t_2 = __pyx_t_9;
     }
-    if (!__pyx_t_8) break;
+    if (!__pyx_t_2) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":552
  *     while pos < python.PyList_GET_SIZE(new_items) and \
@@ -6925,22 +6965,22 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         pos += 1
  *     # remove leftover items
  */
-    __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_t_7 = __Pyx_GetItemInt(__pyx_v_del_items, __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 0, 1, 1); if (!__pyx_t_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
+    __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 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, 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);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6);
+    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7);
+    __Pyx_GIVEREF(__pyx_t_7);
+    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_6);
     __Pyx_GIVEREF(__pyx_t_6);
-    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
-    __Pyx_GIVEREF(__pyx_t_5);
+    __pyx_t_7 = 0;
     __pyx_t_6 = 0;
-    __pyx_t_5 = 0;
-    __pyx_t_5 = PyObject_Call(__pyx_v_replace, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __pyx_t_6 = PyObject_Call(__pyx_v_replace, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":553
  *             pos < python.PyList_GET_SIZE(del_items):
@@ -6959,8 +6999,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         remove = parent.remove
  *         while pos < python.PyList_GET_SIZE(del_items):
  */
-  __pyx_t_8 = (__pyx_v_pos < PyList_GET_SIZE(__pyx_v_del_items));
-  if (__pyx_t_8) {
+  __pyx_t_2 = ((__pyx_v_pos < PyList_GET_SIZE(__pyx_v_del_items)) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":556
  *     # remove leftover items
@@ -6969,10 +7009,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         while pos < python.PyList_GET_SIZE(del_items):
  *             remove(del_items[pos])
  */
-    __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;
+    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parent), __pyx_n_s__remove); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_v_remove = __pyx_t_6;
+    __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":557
  *     if pos < python.PyList_GET_SIZE(del_items):
@@ -6982,8 +7022,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             pos += 1
  */
     while (1) {
-      __pyx_t_8 = (__pyx_v_pos < PyList_GET_SIZE(__pyx_v_del_items));
-      if (!__pyx_t_8) break;
+      __pyx_t_2 = ((__pyx_v_pos < PyList_GET_SIZE(__pyx_v_del_items)) != 0);
+      if (!__pyx_t_2) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":558
  *         remove = parent.remove
@@ -6992,17 +7032,17 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             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, 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);
-      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
-      __Pyx_GIVEREF(__pyx_t_5);
-      __pyx_t_5 = 0;
-      __pyx_t_5 = PyObject_Call(__pyx_v_remove, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __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 = 558; __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 = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
+      __Pyx_GIVEREF(__pyx_t_6);
+      __pyx_t_6 = 0;
+      __pyx_t_6 = PyObject_Call(__pyx_v_remove, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":559
  *         while pos < python.PyList_GET_SIZE(del_items):
@@ -7024,8 +7064,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         # the sanity check above guarantees (step == 1)
  *         if pos > 0:
  */
-  __pyx_t_8 = (__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items)));
-  if (__pyx_t_8) {
+  __pyx_t_2 = ((__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items))) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":563
  *     if pos < python.PyList_GET_SIZE(new_items):
@@ -7034,8 +7074,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             item = new_items[pos-1]
  *         else:
  */
-    __pyx_t_8 = (__pyx_v_pos > 0);
-    if (__pyx_t_8) {
+    __pyx_t_2 = ((__pyx_v_pos > 0) != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":564
  *         # the sanity check above guarantees (step == 1)
@@ -7044,12 +7084,12 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         else:
  *             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, 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_t_3 = (__pyx_v_pos - 1);
+      __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_t_3, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
       __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_5;
-      __pyx_t_5 = 0;
+      __pyx_v_item = __pyx_t_6;
+      __pyx_t_6 = 0;
       goto __pyx_L15;
     }
     /*else*/ {
@@ -7061,10 +7101,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *                 c_node = parent._c_node.children
  *             else:
  */
-      __pyx_t_5 = PyObject_RichCompare(((PySliceObject*)((PyObject*)__pyx_v_sliceobject))->start, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (__pyx_t_8) {
+      __pyx_t_6 = PyObject_RichCompare(((PySliceObject*)((PyObject*)__pyx_v_sliceobject))->start, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":567
  *         else:
@@ -7098,11 +7138,11 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             if c_node is NULL:
  *                 while pos < python.PyList_GET_SIZE(new_items):
  */
-      __pyx_t_5 = PyNumber_Subtract(((PySliceObject*)((PyObject*)__pyx_v_sliceobject))->start, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_t_5); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __pyx_v_c_node = __pyx_f_4lxml_9objectify__findFollowingSibling(__pyx_v_c_node, _getNs(__pyx_v_target->_c_node), __pyx_v_target->_c_node->name, __pyx_t_2);
+      __pyx_t_6 = PyNumber_Subtract(((PySliceObject*)((PyObject*)__pyx_v_sliceobject))->start, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_v_c_node = __pyx_f_4lxml_9objectify__findFollowingSibling(__pyx_v_c_node, _getNs(__pyx_v_target->_c_node), __pyx_v_target->_c_node->name, __pyx_t_3);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":573
  *                 c_node, tree._getNs(target._c_node), target._c_node.name,
@@ -7111,8 +7151,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *                 while pos < python.PyList_GET_SIZE(new_items):
  *                     cetree.appendChild(parent, new_items[pos])
  */
-      __pyx_t_8 = (__pyx_v_c_node == NULL);
-      if (__pyx_t_8) {
+      __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":574
  *                 (<slice>sliceobject).start - 1)
@@ -7122,8 +7162,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *                     pos += 1
  */
         while (1) {
-          __pyx_t_8 = (__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items)));
-          if (!__pyx_t_8) break;
+          __pyx_t_2 = ((__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items))) != 0);
+          if (!__pyx_t_2) break;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":575
  *             if c_node is NULL:
@@ -7132,11 +7172,11 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *                     pos += 1
  *                 return
  */
-          __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));
-          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+          __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __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_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_6));
+          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":576
  *                 while pos < python.PyList_GET_SIZE(new_items):
@@ -7169,14 +7209,14 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *         while pos < python.PyList_GET_SIZE(new_items):
  *             add = item.addnext
  */
-      __pyx_t_5 = ((PyObject *)__pyx_v_parent->_doc);
-      __Pyx_INCREF(__pyx_t_5);
-      __pyx_t_3 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_6 = ((PyObject *)__pyx_v_parent->_doc);
+      __Pyx_INCREF(__pyx_t_6);
+      __pyx_t_4 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_3;
-      __pyx_t_3 = 0;
+      __pyx_v_item = __pyx_t_4;
+      __pyx_t_4 = 0;
     }
     __pyx_L15:;
 
@@ -7188,8 +7228,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             item = new_items[pos]
  */
     while (1) {
-      __pyx_t_8 = (__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items)));
-      if (!__pyx_t_8) break;
+      __pyx_t_2 = ((__pyx_v_pos < PyList_GET_SIZE(((PyObject *)__pyx_v_new_items))) != 0);
+      if (!__pyx_t_2) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":580
  *             item = cetree.elementFactory(parent._doc, c_node)
@@ -7198,11 +7238,11 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             item = new_items[pos]
  *             add(item)
  */
-      __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_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__addnext); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_XDECREF(__pyx_v_add);
-      __pyx_v_add = __pyx_t_3;
-      __pyx_t_3 = 0;
+      __pyx_v_add = __pyx_t_4;
+      __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":581
  *         while pos < python.PyList_GET_SIZE(new_items):
@@ -7211,11 +7251,11 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             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, 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_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_3;
-      __pyx_t_3 = 0;
+      __pyx_v_item = __pyx_t_4;
+      __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":582
  *             add = item.addnext
@@ -7224,15 +7264,15 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  *             pos += 1
  * 
  */
-      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __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 = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_item);
-      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_item);
+      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_item);
       __Pyx_GIVEREF(__pyx_v_item);
-      __pyx_t_5 = PyObject_Call(__pyx_v_add, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_6 = PyObject_Call(__pyx_v_add, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_6);
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":583
  *             item = new_items[pos]
@@ -7250,9 +7290,9 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.objectify._setSlice", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -8637,9 +8677,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_13NumberElement_34__pow__(PyObject *_
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -8653,7 +8694,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13NumberElement_34__pow__(PyObject *_
  *         else:
  */
   __pyx_t_1 = (__pyx_v_modulo == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":671
  *     def __pow__(self, other, modulo):
@@ -8663,16 +8705,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_13NumberElement_34__pow__(PyObject *_
  *             return pow(_numericValueOf(self), _numericValueOf(other), modulo)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PyNumber_Power(__pyx_t_2, __pyx_t_3, Py_None); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_5 = PyNumber_Power(__pyx_t_3, __pyx_t_4, Py_None); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_r = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_r = __pyx_t_5;
+    __pyx_t_5 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -8686,16 +8728,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_13NumberElement_34__pow__(PyObject *_
  *     def __neg__(self):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_4 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_3 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Power(__pyx_t_5, __pyx_t_4, __pyx_v_modulo); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_2 = PyNumber_Power(__pyx_t_4, __pyx_t_3, __pyx_v_modulo); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
   }
   __pyx_L3:;
@@ -8703,9 +8745,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_13NumberElement_34__pow__(PyObject *_
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.NumberElement.__pow__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -9617,7 +9659,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_2strlen(struct __pyx_
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  Py_ssize_t __pyx_t_3;
+  int __pyx_t_3;
+  Py_ssize_t __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -9643,7 +9686,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_2strlen(struct __pyx_
  *         else:
  */
   __pyx_t_2 = (__pyx_v_text == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":734
  *         text = textOf(self._c_node)
@@ -9668,8 +9712,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_2strlen(struct __pyx_
  *     def __nonzero__(self):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = PyObject_Length(__pyx_v_text); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Length(__pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_r = __pyx_t_1;
     __pyx_t_1 = 0;
@@ -9715,7 +9759,8 @@ static int __pyx_pf_4lxml_9objectify_13StringElement_4__nonzero__(struct __pyx_o
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  Py_ssize_t __pyx_t_3;
+  int __pyx_t_3;
+  Py_ssize_t __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -9741,7 +9786,8 @@ static int __pyx_pf_4lxml_9objectify_13StringElement_4__nonzero__(struct __pyx_o
  *         return len(text) > 0
  */
   __pyx_t_2 = (__pyx_v_text == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":741
  *         text = textOf(self._c_node)
@@ -9763,8 +9809,8 @@ static int __pyx_pf_4lxml_9objectify_13StringElement_4__nonzero__(struct __pyx_o
  * 
  *     def __richcmp__(self, other, int op):
  */
-  __pyx_t_3 = PyObject_Length(__pyx_v_text); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_r = (__pyx_t_3 > 0);
+  __pyx_t_4 = PyObject_Length(__pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_r = (__pyx_t_4 > 0);
   goto __pyx_L0;
 
   __pyx_r = 0;
@@ -9925,6 +9971,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
+  int __pyx_t_3;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -9964,7 +10011,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
  *         if other is None:
  */
   __pyx_t_2 = (__pyx_v_text == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":754
  *         other = _strValueOf(other)
@@ -9988,7 +10036,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
  *             return text
  *         return text + other
  */
-  __pyx_t_2 = (__pyx_v_other == Py_None);
+  __pyx_t_3 = (__pyx_v_other == Py_None);
+  __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":756
@@ -10057,9 +10106,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -10073,7 +10123,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
  *         elif isinstance(other, StringElement):
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_self, ((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":761
  *     def __mul__(self, other):
@@ -10083,16 +10134,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
  *             return _numericValueOf(self) * textOf((<StringElement>other)._c_node)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_r = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_r = __pyx_t_5;
+    __pyx_t_5 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -10104,7 +10155,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
  *             return _numericValueOf(self) * textOf((<StringElement>other)._c_node)
  *         else:
  */
-  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_other, ((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)); 
+  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_other, ((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)); 
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":763
@@ -10115,16 +10167,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
  *             raise TypeError, u"invalid types for * operator"
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_t_4 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_other)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_3 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_other)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -10145,9 +10197,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.StringElement.__mul__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -10635,11 +10687,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
  *         if isinstance(self, NoneElement):
  */
   __pyx_t_1 = (__pyx_v_other == Py_None);
-  if (!__pyx_t_1) {
+  if (!(__pyx_t_1 != 0)) {
     __pyx_t_2 = (__pyx_v_self == Py_None);
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = (__pyx_t_2 != 0);
   } else {
-    __pyx_t_3 = __pyx_t_1;
+    __pyx_t_3 = (__pyx_t_1 != 0);
   }
   if (__pyx_t_3) {
 
@@ -10668,7 +10720,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
  *         else:
  */
   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_self, ((PyObject*)__pyx_ptype_4lxml_9objectify_NoneElement)); 
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":796
  *             return python.PyObject_RichCompare(None, None, op)
@@ -11249,6 +11302,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -11271,7 +11325,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
  *     if value == -1:
  */
   __pyx_t_1 = (__pyx_v_s != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":838
  *     cdef int value = -1
@@ -11292,8 +11347,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
  *         raise ValueError
  * 
  */
-  __pyx_t_1 = (__pyx_v_value == -1);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_value == -1) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":840
  *         value = __parseBoolAsInt(s)
@@ -11333,7 +11388,8 @@ static PyObject *__pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHO
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -11347,7 +11403,8 @@ static PyObject *__pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHO
  *     value = __parseBoolAsInt(s)
  */
   __pyx_t_1 = (__pyx_v_s == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":845
  *     cdef int value
@@ -11357,10 +11414,10 @@ static PyObject *__pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHO
  *     if value == -1:
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -11382,8 +11439,8 @@ static PyObject *__pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHO
  *         raise ValueError, u"Invalid boolean value: '%s'" % s
  *     return <bint>value
  */
-  __pyx_t_1 = (__pyx_v_value == -1);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_value == -1) != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":848
  *     value = __parseBoolAsInt(s)
@@ -11392,10 +11449,10 @@ static PyObject *__pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHO
  *     return <bint>value
  * 
  */
-    __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_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_14), __pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0);
+    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -11409,16 +11466,16 @@ static PyObject *__pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHO
  * cdef inline int __parseBoolAsInt(text):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyBool_FromLong(((int)__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = __Pyx_PyBool_FromLong(((int)__pyx_v_value)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.objectify.__parseBool", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -11674,8 +11731,9 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -11688,7 +11746,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__
  *         return obj
  *     if isinstance(obj, _Element):
  */
-  __pyx_t_1 = _isString(__pyx_v_obj);
+  __pyx_t_1 = (_isString(__pyx_v_obj) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":867
@@ -11714,7 +11772,8 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__
  *     if obj is None:
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":869
  *         return obj
@@ -11724,19 +11783,19 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__
  *         return u''
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = textOf(((struct LxmlElement *)__pyx_v_obj)->_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (!__pyx_t_1) {
-      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = textOf(((struct LxmlElement *)__pyx_v_obj)->_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!__pyx_t_2) {
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_INCREF(((PyObject *)__pyx_kp_u_3));
-      __pyx_t_3 = __pyx_kp_u_3;
+      __pyx_t_4 = __pyx_kp_u_3;
     } else {
-      __pyx_t_3 = __pyx_t_2;
-      __pyx_t_2 = 0;
+      __pyx_t_4 = __pyx_t_3;
+      __pyx_t_3 = 0;
     }
-    __pyx_r = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_r = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L4;
   }
@@ -11749,7 +11808,8 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__
  *         return u''
  *     return unicode(obj)
  */
-  __pyx_t_1 = (__pyx_v_obj == Py_None);
+  __pyx_t_2 = (__pyx_v_obj == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":871
@@ -11775,23 +11835,23 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__
  * cdef inline object _numericValueOf(obj):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __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 = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_obj);
-  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_obj);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_obj);
   __Pyx_GIVEREF(__pyx_v_obj);
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_3;
+  __pyx_t_3 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.objectify._strValueOf", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -11812,7 +11872,8 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -11826,7 +11887,8 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject
  *     elif hasattr(obj, u'pyval'):
  */
   __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_obj, ((PyObject*)__pyx_ptype_4lxml_9objectify_NumberElement)); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":876
  * cdef inline object _numericValueOf(obj):
@@ -11836,10 +11898,10 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject
  *         # not always numeric, but Python will raise the right exception
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_f_4lxml_9objectify__parseNumber(((struct __pyx_obj_4lxml_9objectify_NumberElement *)__pyx_v_obj)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_r = __pyx_t_2;
-    __pyx_t_2 = 0;
+    __pyx_t_3 = __pyx_f_4lxml_9objectify__parseNumber(((struct __pyx_obj_4lxml_9objectify_NumberElement *)__pyx_v_obj)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -11851,7 +11913,8 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject
  *         # not always numeric, but Python will raise the right exception
  *         return obj.pyval
  */
-  __pyx_t_1 = PyObject_HasAttr(__pyx_v_obj, ((PyObject *)__pyx_n_u__pyval)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_HasAttr(__pyx_v_obj, ((PyObject *)__pyx_n_u__pyval)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":879
@@ -11862,10 +11925,10 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __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;
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s__pyval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_r = __pyx_t_3;
+    __pyx_t_3 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -11886,7 +11949,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.objectify._numericValueOf", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -12060,9 +12123,9 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
   int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -12079,7 +12142,8 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *         elif not isinstance(name, unicode):
  */
   __pyx_t_1 = PyBytes_Check(__pyx_v_name); 
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":915
  *     def __init__(self, name, type_check, type_class, stringify=None):
@@ -12088,14 +12152,14 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *         elif not isinstance(name, unicode):
  *             raise TypeError, u"Type name must be a string"
  */
-    __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_15), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__encode); 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_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_15), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_name = __pyx_t_4;
+    __pyx_t_4 = 0;
     goto __pyx_L3;
   }
 
@@ -12106,9 +12170,9 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *             raise TypeError, u"Type name must be a string"
  *         if type_check is not None and not callable(type_check):
  */
-  __pyx_t_1 = PyUnicode_Check(__pyx_v_name); 
-  __pyx_t_4 = (!__pyx_t_1);
-  if (__pyx_t_4) {
+  __pyx_t_2 = PyUnicode_Check(__pyx_v_name); 
+  __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":917
  *             name = (<bytes>name).encode('ascii')
@@ -12130,15 +12194,15 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *             raise TypeError, u"Type check function must be callable (or None)"
  *         if name != TREE_PYTYPE_NAME and \
  */
-  __pyx_t_4 = (__pyx_v_type_check != Py_None);
-  if (__pyx_t_4) {
-    __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_type_check); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = (!__pyx_t_1);
-    __pyx_t_1 = __pyx_t_5;
+  __pyx_t_1 = (__pyx_v_type_check != Py_None);
+  if ((__pyx_t_1 != 0)) {
+    __pyx_t_2 = __Pyx_PyCallable_Check(__pyx_v_type_check); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((!(__pyx_t_2 != 0)) != 0);
+    __pyx_t_2 = __pyx_t_5;
   } else {
-    __pyx_t_1 = __pyx_t_4;
+    __pyx_t_2 = (__pyx_t_1 != 0);
   }
-  if (__pyx_t_1) {
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":919
  *             raise TypeError, u"Type name must be a string"
@@ -12160,10 +12224,10 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *                not issubclass(type_class, ObjectifiedDataElement):
  *             raise TypeError, \
  */
-  __pyx_t_3 = PyObject_RichCompare(__pyx_v_name, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_1) {
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_name, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":921
  *             raise TypeError, u"Type check function must be callable (or None)"
@@ -12172,13 +12236,13 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *             raise TypeError, \
  *                 u"Data classes must inherit from ObjectifiedDataElement"
  */
-    __pyx_t_4 = PyObject_IsSubclass(__pyx_v_type_class, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement))); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = (!__pyx_t_4);
-    __pyx_t_4 = __pyx_t_5;
+    __pyx_t_1 = PyObject_IsSubclass(__pyx_v_type_class, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = (!(__pyx_t_1 != 0));
+    __pyx_t_1 = __pyx_t_5;
   } else {
-    __pyx_t_4 = __pyx_t_1;
+    __pyx_t_1 = __pyx_t_2;
   }
-  if (__pyx_t_4) {
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":922
  *         if name != TREE_PYTYPE_NAME and \
@@ -12239,8 +12303,9 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *             stringify = unicode
  *         self.stringify = stringify
  */
-  __pyx_t_4 = (__pyx_v_stringify == Py_None);
-  if (__pyx_t_4) {
+  __pyx_t_1 = (__pyx_v_stringify == Py_None);
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":928
  *         self.type_check = type_check
@@ -12276,19 +12341,19 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  * 
  *     def __repr__(self):
  */
-  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
+  __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
   __Pyx_GOTREF(__pyx_v_self->_schema_types);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_schema_types));
-  __pyx_v_self->_schema_types = ((PyObject*)__pyx_t_3);
-  __pyx_t_3 = 0;
+  __pyx_v_self->_schema_types = ((PyObject*)__pyx_t_4);
+  __pyx_t_4 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.objectify.PyType.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -12452,11 +12517,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  Py_ssize_t __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_3;
+  Py_ssize_t __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
-  int __pyx_t_7;
+  PyObject *__pyx_t_7 = NULL;
   int __pyx_t_8;
   PyObject *__pyx_t_9 = NULL;
   PyObject *__pyx_t_10 = NULL;
@@ -12502,7 +12567,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                 if item[0] is self.type_check:
  */
   __pyx_t_2 = (__pyx_v_self->type_check != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":948
  *             raise ValueError, u"Cannot register tree type"
@@ -12515,17 +12581,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_1 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
+    __pyx_t_1 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
     for (;;) {
-      if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
+      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
       __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_4;
-      __pyx_t_4 = 0;
+      __pyx_v_item = __pyx_t_5;
+      __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":949
  *         if self.type_check is not None:
@@ -12534,10 +12600,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                     _TYPE_CHECKS.remove(item)
  *                     break
  */
-      __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;
+      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __pyx_t_3 = (__pyx_t_5 == __pyx_v_self->type_check);
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_2 = (__pyx_t_3 != 0);
       if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":950
@@ -12547,18 +12614,18 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                     break
  *             entry = (self.type_check, self)
  */
-        __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_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); 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_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_6);
         __Pyx_INCREF(__pyx_v_item);
-        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_item);
+        PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_item);
         __Pyx_GIVEREF(__pyx_v_item);
-        __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_6);
-        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_7);
+        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+        __Pyx_DECREF(((PyObject *)__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/lxml.objectify.pyx":951
  *                 if item[0] is self.type_check:
@@ -12622,8 +12689,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
     __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_before); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!__pyx_t_2) {
-      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_after); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_8 = __pyx_t_7;
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_after); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = __pyx_t_3;
     } else {
       __pyx_t_8 = __pyx_t_2;
     }
@@ -12637,7 +12704,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                 elif after is None:
  */
       __pyx_t_8 = (__pyx_v_before == Py_None);
-      if (__pyx_t_8) {
+      __pyx_t_2 = (__pyx_t_8 != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":957
  *             if before or after:
@@ -12659,7 +12727,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                     after = ()
  *                 for i, (check, pytype) in enumerate(_TYPE_CHECKS):
  */
-      __pyx_t_8 = (__pyx_v_after == Py_None);
+      __pyx_t_2 = (__pyx_v_after == Py_None);
+      __pyx_t_8 = (__pyx_t_2 != 0);
       if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":959
@@ -12685,16 +12754,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
       __Pyx_INCREF(__pyx_int_0);
       __pyx_t_1 = __pyx_int_0;
-      __pyx_t_6 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_6); __pyx_t_3 = 0;
+      __pyx_t_7 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0;
       for (;;) {
-        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_6)) break;
+        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
-        if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
-          PyObject* sequence = __pyx_t_5;
+        if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
+          PyObject* sequence = __pyx_t_6;
           #if CYTHON_COMPILING_IN_CPYTHON
           Py_ssize_t size = Py_SIZE(sequence);
           #else
@@ -12707,30 +12776,30 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           if (likely(PyTuple_CheckExact(sequence))) {
-            __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
+            __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
             __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); 
           } else {
-            __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
+            __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
             __pyx_t_9 = PyList_GET_ITEM(sequence, 1); 
           }
-          __Pyx_INCREF(__pyx_t_4);
+          __Pyx_INCREF(__pyx_t_5);
           __Pyx_INCREF(__pyx_t_9);
           #else
-          __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_4);
+          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_5);
           __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_9);
           #endif
-          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
-          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
-          index = 0; __pyx_t_4 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_4)) goto __pyx_L12_unpacking_failed;
-          __Pyx_GOTREF(__pyx_t_4);
+          index = 0; __pyx_t_5 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_5)) goto __pyx_L12_unpacking_failed;
+          __Pyx_GOTREF(__pyx_t_5);
           index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L12_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_9);
           if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -12745,19 +12814,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
           __pyx_L13_unpacking_done:;
         }
         __Pyx_XDECREF(__pyx_v_check);
-        __pyx_v_check = __pyx_t_4;
-        __pyx_t_4 = 0;
+        __pyx_v_check = __pyx_t_5;
+        __pyx_t_5 = 0;
         __Pyx_XDECREF(__pyx_v_pytype);
         __pyx_v_pytype = __pyx_t_9;
         __pyx_t_9 = 0;
         __Pyx_INCREF(__pyx_t_1);
         __Pyx_XDECREF(__pyx_v_i);
         __pyx_v_i = __pyx_t_1;
-        __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_5);
+        __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_6);
         __Pyx_DECREF(__pyx_t_1);
-        __pyx_t_1 = __pyx_t_5;
-        __pyx_t_5 = 0;
+        __pyx_t_1 = __pyx_t_6;
+        __pyx_t_6 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":961
  *                     after = ()
@@ -12766,19 +12835,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                         last_pos = i
  *                     if pytype.name in after:
  */
-        __pyx_t_5 = PyObject_RichCompare(__pyx_v_last_pos, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __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;
+        __pyx_t_6 = PyObject_RichCompare(__pyx_v_last_pos, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); 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_6); __pyx_t_6 = 0;
         if (__pyx_t_8) {
-          __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;
-          __pyx_t_7 = __pyx_t_2;
+          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_6);
+          __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_t_6, __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_6); __pyx_t_6 = 0;
+          __pyx_t_3 = __pyx_t_2;
         } else {
-          __pyx_t_7 = __pyx_t_8;
+          __pyx_t_3 = __pyx_t_8;
         }
-        if (__pyx_t_7) {
+        if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":962
  *                 for i, (check, pytype) in enumerate(_TYPE_CHECKS):
@@ -12801,11 +12870,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                         first_pos = i+1
  *             if last_pos == -1:
  */
-        __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;
-        if (__pyx_t_7) {
+        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_t_6, __pyx_v_after, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __pyx_t_8 = (__pyx_t_3 != 0);
+        if (__pyx_t_8) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":964
  *                         last_pos = i
@@ -12814,16 +12884,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *             if last_pos == -1:
  *                 _TYPE_CHECKS.append(entry)
  */
-          __pyx_t_5 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-          __Pyx_GOTREF(__pyx_t_5);
+          __pyx_t_6 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_GOTREF(__pyx_t_6);
           __Pyx_DECREF(__pyx_v_first_pos);
-          __pyx_v_first_pos = __pyx_t_5;
-          __pyx_t_5 = 0;
+          __pyx_v_first_pos = __pyx_t_6;
+          __pyx_t_6 = 0;
           goto __pyx_L15;
         }
         __pyx_L15:;
       }
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       goto __pyx_L8;
     }
@@ -12837,9 +12907,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *             elif first_pos > last_pos:
  */
     __pyx_t_1 = PyObject_RichCompare(__pyx_v_last_pos, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    if (__pyx_t_7) {
+    if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":966
  *                         first_pos = i+1
@@ -12864,9 +12934,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *             else:
  */
     __pyx_t_1 = PyObject_RichCompare(__pyx_v_first_pos, __pyx_v_last_pos, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    if (__pyx_t_7) {
+    if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":968
  *                 _TYPE_CHECKS.append(entry)
@@ -12892,8 +12962,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "insert");
         {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_3 = __Pyx_PyIndex_AsSsize_t(__pyx_v_last_pos); if (unlikely((__pyx_t_3 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_12 = PyList_Insert(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_3, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_last_pos); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyList_Insert(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_4, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_L16:;
     goto __pyx_L4;
@@ -12924,17 +12994,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = ((PyObject *)__pyx_v_self->_schema_types); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
+  __pyx_t_1 = ((PyObject *)__pyx_v_self->_schema_types); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
   for (;;) {
-    if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
+    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_6); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __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[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __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[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     __Pyx_XDECREF(__pyx_v_xs_type);
-    __pyx_v_xs_type = __pyx_t_6;
-    __pyx_t_6 = 0;
+    __pyx_v_xs_type = __pyx_t_7;
+    __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":974
  *         _PYTYPE_DICT[self.name] = self
@@ -12955,9 +13025,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_XDECREF(__pyx_t_9);
   __Pyx_XDECREF(__pyx_t_10);
   __Pyx_AddTraceback("lxml.objectify.PyType.register", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -13005,16 +13075,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  Py_ssize_t __pyx_t_4;
-  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  Py_ssize_t __pyx_t_5;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  PyObject *(*__pyx_t_8)(PyObject *);
-  PyObject *__pyx_t_9 = NULL;
+  PyObject *__pyx_t_8 = NULL;
+  PyObject *(*__pyx_t_9)(PyObject *);
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
-  int __pyx_t_12;
+  PyObject *__pyx_t_12 = NULL;
+  int __pyx_t_13;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -13035,7 +13106,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = (__pyx_t_1 == ((PyObject *)__pyx_v_self));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":979
  *         u"unregister(self)"
@@ -13066,22 +13138,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   }
   __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);
-  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_4), NULL); 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_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   for (;;) {
-    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
+    if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
       PyObject* sequence = __pyx_t_1;
@@ -13097,49 +13169,49 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
-        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
       } else {
-        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
       }
-      __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
+      __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       #endif
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_7);
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
-      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_5);
-      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
+      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
+      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_8 = NULL;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_7);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L7_unpacking_done;
       __pyx_L6_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_8 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
     __Pyx_XDECREF(__pyx_v_xs_type);
-    __pyx_v_xs_type = __pyx_t_5;
-    __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_pytype);
-    __pyx_v_pytype = __pyx_t_6;
+    __pyx_v_xs_type = __pyx_t_6;
     __pyx_t_6 = 0;
+    __Pyx_XDECREF(__pyx_v_pytype);
+    __pyx_v_pytype = __pyx_t_7;
+    __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":981
  *             del _PYTYPE_DICT[self.name]
@@ -13148,7 +13220,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  *                 del _SCHEMA_TYPE_DICT[xs_type]
  *         if self.type_check is None:
  */
-    __pyx_t_2 = (__pyx_v_pytype == ((PyObject *)__pyx_v_self));
+    __pyx_t_3 = (__pyx_v_pytype == ((PyObject *)__pyx_v_self));
+    __pyx_t_2 = (__pyx_t_3 != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":982
@@ -13168,7 +13241,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
     }
     __pyx_L8:;
   }
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":983
  *             if pytype is self:
@@ -13178,7 +13251,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  *         try:
  */
   __pyx_t_2 = (__pyx_v_self->type_check == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":984
  *                 del _SCHEMA_TYPE_DICT[xs_type]
@@ -13202,10 +13276,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  *         except ValueError:
  */
   {
-    __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
-    __Pyx_XGOTREF(__pyx_t_9);
+    __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
     __Pyx_XGOTREF(__pyx_t_10);
     __Pyx_XGOTREF(__pyx_t_11);
+    __Pyx_XGOTREF(__pyx_t_12);
     /*try:*/ {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":986
@@ -13215,8 +13289,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  *         except ValueError:
  *             pass
  */
-      __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_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 = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __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);
       __Pyx_INCREF(__pyx_v_self->type_check);
@@ -13225,26 +13299,26 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
       __Pyx_INCREF(((PyObject *)__pyx_v_self));
       PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_1));
+      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+      __Pyx_GOTREF(__pyx_t_7);
+      PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_1));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
       __pyx_t_1 = 0;
-      __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_7), NULL); 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);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     }
-    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
     __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
     __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
     goto __pyx_L17_try_end;
     __pyx_L10_error:;
-    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
-    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":987
@@ -13254,21 +13328,21 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  *             pass
  * 
  */
-    __pyx_t_12 = PyErr_ExceptionMatches(__pyx_builtin_ValueError);
-    if (__pyx_t_12) {
+    __pyx_t_13 = PyErr_ExceptionMatches(__pyx_builtin_ValueError);
+    if (__pyx_t_13) {
       PyErr_Restore(0,0,0);
       goto __pyx_L11_exception_handled;
     }
-    __Pyx_XGIVEREF(__pyx_t_9);
     __Pyx_XGIVEREF(__pyx_t_10);
     __Pyx_XGIVEREF(__pyx_t_11);
-    __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+    __Pyx_XGIVEREF(__pyx_t_12);
+    __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
     goto __pyx_L1_error;
     __pyx_L11_exception_handled:;
-    __Pyx_XGIVEREF(__pyx_t_9);
     __Pyx_XGIVEREF(__pyx_t_10);
     __Pyx_XGIVEREF(__pyx_t_11);
-    __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+    __Pyx_XGIVEREF(__pyx_t_12);
+    __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
     __pyx_L17_try_end:;
   }
 
@@ -13276,10 +13350,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.objectify.PyType.unregister", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -13658,7 +13732,7 @@ static PyObject *__pyx_f_4lxml_9objectify__pytypename(PyObject *__pyx_v_obj) {
  *         return u"str"
  *     else:
  */
-  __pyx_t_1 = _isString(__pyx_v_obj);
+  __pyx_t_1 = (_isString(__pyx_v_obj) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1021
@@ -14148,7 +14222,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
   PyObject *(*__pyx_t_7)(PyObject *);
   int __pyx_t_8;
   int __pyx_t_9;
-  PyObject *(*__pyx_t_10)(PyObject *);
+  int __pyx_t_10;
+  PyObject *(*__pyx_t_11)(PyObject *);
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -14276,7 +14351,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  *             types.append(pytype)
  */
     __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_known), Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_8) {
+    __pyx_t_9 = (__pyx_t_8 != 0);
+    if (__pyx_t_9) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1092
  *         name = pytype.name
@@ -14285,7 +14361,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  *             types.append(pytype)
  *     for pytype in _PYTYPE_DICT.values():
  */
-      __pyx_t_9 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1093
  *         if name not in known:
@@ -14294,7 +14370,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  *     for pytype in _PYTYPE_DICT.values():
  *         name = pytype.name
  */
-      __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;}
+      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L7;
     }
     __pyx_L7:;
@@ -14316,22 +14392,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
   __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;
-    __pyx_t_10 = NULL;
+    __pyx_t_11 = NULL;
   } else {
     __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
+    __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext;
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   for (;;) {
-    if (!__pyx_t_10 && PyList_CheckExact(__pyx_t_3)) {
+    if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_3)) {
       if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
       __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
       __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-    } else if (!__pyx_t_10 && PyTuple_CheckExact(__pyx_t_3)) {
+    } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_3)) {
       if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
       __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -14339,7 +14415,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
       __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
-      __pyx_t_1 = __pyx_t_10(__pyx_t_3);
+      __pyx_t_1 = __pyx_t_11(__pyx_t_3);
       if (unlikely(!__pyx_t_1)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
@@ -14373,7 +14449,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  *             known.add(name)
  *             types.append(pytype)
  */
-    __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_known), Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_known), Py_NE)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = (__pyx_t_9 != 0);
     if (__pyx_t_8) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1097
@@ -14383,7 +14460,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  *             types.append(pytype)
  *     return types
  */
-      __pyx_t_9 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1098
  *         if name not in known:
@@ -14392,7 +14469,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  *     return types
  * 
  */
-      __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;}
+      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L10;
     }
     __pyx_L10:;
@@ -14446,17 +14523,18 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
   struct __pyx_obj_4lxml_9objectify_PyType *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  Py_ssize_t __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
+  Py_ssize_t __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  PyObject *(*__pyx_t_8)(PyObject *);
-  PyObject *__pyx_t_9 = NULL;
+  PyObject *__pyx_t_8 = NULL;
+  PyObject *(*__pyx_t_9)(PyObject *);
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
-  int __pyx_t_12;
+  PyObject *__pyx_t_12 = NULL;
+  int __pyx_t_13;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -14470,7 +14548,8 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
  *     for type_check, tested_pytype in _TYPE_CHECKS:
  */
   __pyx_t_1 = (__pyx_v_value == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1103
  * cdef PyType _guessPyType(value, PyType defaulttype):
@@ -14498,16 +14577,16 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
+  __pyx_t_3 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
   for (;;) {
-    if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
+    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
-      PyObject* sequence = __pyx_t_4;
+    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
+      PyObject* sequence = __pyx_t_5;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -14520,49 +14599,49 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
-        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
       } else {
-        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
       }
-      __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
+      __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       #endif
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_7);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
-      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_5);
-      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
+      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_8 = NULL;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_7);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L7_unpacking_done;
       __pyx_L6_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_8 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
     __Pyx_XDECREF(__pyx_v_type_check);
-    __pyx_v_type_check = __pyx_t_5;
-    __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_tested_pytype);
-    __pyx_v_tested_pytype = __pyx_t_6;
+    __pyx_v_type_check = __pyx_t_6;
     __pyx_t_6 = 0;
+    __Pyx_XDECREF(__pyx_v_tested_pytype);
+    __pyx_v_tested_pytype = __pyx_t_7;
+    __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1105
  *         return None
@@ -14572,10 +14651,10 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
  *             return <PyType>tested_pytype
  */
     {
-      __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
-      __Pyx_XGOTREF(__pyx_t_9);
+      __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
       __Pyx_XGOTREF(__pyx_t_10);
       __Pyx_XGOTREF(__pyx_t_11);
+      __Pyx_XGOTREF(__pyx_t_12);
       /*try:*/ {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1106
@@ -14585,15 +14664,15 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
  *             return <PyType>tested_pytype
  *         except IGNORABLE_ERRORS:
  */
-        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
-        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+        __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_value);
-        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_value);
+        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_value);
         __Pyx_GIVEREF(__pyx_v_value);
-        __pyx_t_6 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
-        __Pyx_GOTREF(__pyx_t_6);
-        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __pyx_t_7 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+        __Pyx_GOTREF(__pyx_t_7);
+        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1107
  *         try:
@@ -14605,24 +14684,24 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
         __Pyx_XDECREF(((PyObject *)__pyx_r));
         __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_tested_pytype)));
         __pyx_r = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_tested_pytype);
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         goto __pyx_L12_try_return;
       }
-      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
       __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
       __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
       goto __pyx_L15_try_end;
       __pyx_L12_try_return:;
-      __Pyx_XGIVEREF(__pyx_t_9);
       __Pyx_XGIVEREF(__pyx_t_10);
       __Pyx_XGIVEREF(__pyx_t_11);
-      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+      __Pyx_XGIVEREF(__pyx_t_12);
+      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
       goto __pyx_L0;
       __pyx_L8_error:;
-      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1108
  *             type_check(value)
@@ -14631,25 +14710,25 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
  *             # could not be parsed as the specififed type => ignore
  *             pass
  */
-      __pyx_t_12 = PyErr_ExceptionMatches(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
-      if (__pyx_t_12) {
+      __pyx_t_13 = PyErr_ExceptionMatches(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
+      if (__pyx_t_13) {
         PyErr_Restore(0,0,0);
         goto __pyx_L9_exception_handled;
       }
-      __Pyx_XGIVEREF(__pyx_t_9);
       __Pyx_XGIVEREF(__pyx_t_10);
       __Pyx_XGIVEREF(__pyx_t_11);
-      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+      __Pyx_XGIVEREF(__pyx_t_12);
+      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
       goto __pyx_L1_error;
       __pyx_L9_exception_handled:;
-      __Pyx_XGIVEREF(__pyx_t_9);
       __Pyx_XGIVEREF(__pyx_t_10);
       __Pyx_XGIVEREF(__pyx_t_11);
-      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+      __Pyx_XGIVEREF(__pyx_t_12);
+      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
       __pyx_L15_try_end:;
     }
   }
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1111
  *             # could not be parsed as the specififed type => ignore
@@ -14666,11 +14745,11 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
   __pyx_r = ((struct __pyx_obj_4lxml_9objectify_PyType *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.objectify._guessPyType", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -14697,16 +14776,17 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  Py_ssize_t __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_3;
+  Py_ssize_t __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  PyObject *(*__pyx_t_8)(PyObject *);
-  PyObject *__pyx_t_9 = NULL;
+  PyObject *__pyx_t_8 = NULL;
+  PyObject *(*__pyx_t_9)(PyObject *);
   PyObject *__pyx_t_10 = NULL;
   PyObject *__pyx_t_11 = NULL;
-  int __pyx_t_12;
+  PyObject *__pyx_t_12 = NULL;
+  int __pyx_t_13;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -14732,7 +14812,8 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
  *     if value == u'':
  */
   __pyx_t_2 = (__pyx_v_value == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1116
  *     value = textOf(c_node)
@@ -14757,9 +14838,9 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
  * 
  */
   __pyx_t_1 = PyObject_RichCompare(__pyx_v_value, ((PyObject *)__pyx_kp_u_3), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __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 = 1117; __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[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (__pyx_t_2) {
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1118
  *         return None
@@ -14787,16 +14868,16 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
     {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
+  __pyx_t_1 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
   for (;;) {
-    if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
+    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_4); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
-      PyObject* sequence = __pyx_t_4;
+    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
+      PyObject* sequence = __pyx_t_5;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -14809,49 +14890,49 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
-        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
       } else {
-        __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
+        __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
       }
-      __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
+      __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       #endif
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_7);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
-      index = 0; __pyx_t_5 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_5)) goto __pyx_L7_unpacking_failed;
-      __Pyx_GOTREF(__pyx_t_5);
-      index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
+      index = 0; __pyx_t_6 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_8 = NULL;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed;
+      __Pyx_GOTREF(__pyx_t_7);
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L8_unpacking_done;
       __pyx_L7_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_8 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L8_unpacking_done:;
     }
     __Pyx_XDECREF(__pyx_v_type_check);
-    __pyx_v_type_check = __pyx_t_5;
-    __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_pytype);
-    __pyx_v_pytype = __pyx_t_6;
+    __pyx_v_type_check = __pyx_t_6;
     __pyx_t_6 = 0;
+    __Pyx_XDECREF(__pyx_v_pytype);
+    __pyx_v_pytype = __pyx_t_7;
+    __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1121
  * 
@@ -14861,10 +14942,10 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
  *             return (<PyType>pytype)._type
  */
     {
-      __Pyx_ExceptionSave(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
-      __Pyx_XGOTREF(__pyx_t_9);
+      __Pyx_ExceptionSave(&__pyx_t_10, &__pyx_t_11, &__pyx_t_12);
       __Pyx_XGOTREF(__pyx_t_10);
       __Pyx_XGOTREF(__pyx_t_11);
+      __Pyx_XGOTREF(__pyx_t_12);
       /*try:*/ {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1122
@@ -14874,15 +14955,15 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
  *             return (<PyType>pytype)._type
  *         except IGNORABLE_ERRORS:
  */
-        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
-        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+        __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_value);
-        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_value);
+        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_value);
         __Pyx_GIVEREF(__pyx_v_value);
-        __pyx_t_6 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
-        __Pyx_GOTREF(__pyx_t_6);
-        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __pyx_t_7 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1122; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+        __Pyx_GOTREF(__pyx_t_7);
+        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1123
  *         try:
@@ -14897,21 +14978,21 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         goto __pyx_L13_try_return;
       }
-      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
       __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
       __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
+      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
       goto __pyx_L16_try_end;
       __pyx_L13_try_return:;
-      __Pyx_XGIVEREF(__pyx_t_9);
       __Pyx_XGIVEREF(__pyx_t_10);
       __Pyx_XGIVEREF(__pyx_t_11);
-      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+      __Pyx_XGIVEREF(__pyx_t_12);
+      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
       goto __pyx_L0;
       __pyx_L9_error:;
-      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1124
  *             type_check(value)
@@ -14920,21 +15001,21 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
  *             pass
  *     return None
  */
-      __pyx_t_12 = PyErr_ExceptionMatches(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
-      if (__pyx_t_12) {
+      __pyx_t_13 = PyErr_ExceptionMatches(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
+      if (__pyx_t_13) {
         PyErr_Restore(0,0,0);
         goto __pyx_L10_exception_handled;
       }
-      __Pyx_XGIVEREF(__pyx_t_9);
       __Pyx_XGIVEREF(__pyx_t_10);
       __Pyx_XGIVEREF(__pyx_t_11);
-      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+      __Pyx_XGIVEREF(__pyx_t_12);
+      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
       goto __pyx_L1_error;
       __pyx_L10_exception_handled:;
-      __Pyx_XGIVEREF(__pyx_t_9);
       __Pyx_XGIVEREF(__pyx_t_10);
       __Pyx_XGIVEREF(__pyx_t_11);
-      __Pyx_ExceptionReset(__pyx_t_9, __pyx_t_10, __pyx_t_11);
+      __Pyx_XGIVEREF(__pyx_t_12);
+      __Pyx_ExceptionReset(__pyx_t_10, __pyx_t_11, __pyx_t_12);
       __pyx_L16_try_end:;
     }
   }
@@ -14956,10 +15037,10 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.objectify._guessElementClass", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -15016,11 +15097,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
-  Py_ssize_t __pyx_t_5;
-  int __pyx_t_6;
+  PyObject *__pyx_t_5 = NULL;
+  Py_ssize_t __pyx_t_6;
   int __pyx_t_7;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
@@ -15035,7 +15116,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *         else:
  */
   __pyx_t_1 = (__pyx_v_self->_element_factory == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1148
  *         cdef bint has_string_value
@@ -15044,16 +15126,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *         else:
  *             element = self._element_factory(self._tag, attrib, self._nsmap)
  */
-    __pyx_t_2 = __pyx_v_self->_tag;
-    __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_3 = __pyx_v_self->_nsmap;
+    __pyx_t_3 = __pyx_v_self->_tag;
     __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_t_2, Py_None, ((PyObject *)__pyx_v_attrib), __pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_4 = __pyx_v_self->_nsmap;
+    __Pyx_INCREF(__pyx_t_4);
+    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_t_3, Py_None, ((PyObject *)__pyx_v_attrib), __pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_v_element = ((struct LxmlElement *)__pyx_t_4);
-    __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_v_element = ((struct LxmlElement *)__pyx_t_5);
+    __pyx_t_5 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -15065,23 +15147,23 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  * 
  *         pytype_name = None
  */
-    __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __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[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_self->_tag);
-    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self->_tag);
+    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_self->_tag);
     __Pyx_GIVEREF(__pyx_v_self->_tag);
     __Pyx_INCREF(((PyObject *)__pyx_v_attrib));
-    PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_attrib));
+    PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_attrib));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_attrib));
     __Pyx_INCREF(__pyx_v_self->_nsmap);
-    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_self->_nsmap);
+    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_self->_nsmap);
     __Pyx_GIVEREF(__pyx_v_self->_nsmap);
-    __pyx_t_3 = PyObject_Call(__pyx_v_self->_element_factory, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_v_element = ((struct LxmlElement *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_t_4 = PyObject_Call(__pyx_v_self->_element_factory, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_v_element = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
   }
   __pyx_L3:;
 
@@ -15120,17 +15202,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *             if child is None:
  *                 if python.PyTuple_GET_SIZE(children) == 1:
  */
-  __pyx_t_3 = ((PyObject *)__pyx_v_children); __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
+  __pyx_t_4 = ((PyObject *)__pyx_v_children); __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
   for (;;) {
-    if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
+    if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     __Pyx_XDECREF(__pyx_v_child);
-    __pyx_v_child = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __pyx_v_child = __pyx_t_5;
+    __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1156
  *         has_string_value = 0
@@ -15139,7 +15221,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 if python.PyTuple_GET_SIZE(children) == 1:
  *                     cetree.setAttributeValue(
  */
-    __pyx_t_1 = (__pyx_v_child == Py_None);
+    __pyx_t_2 = (__pyx_v_child == Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1157
@@ -15149,7 +15232,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                     cetree.setAttributeValue(
  *                         element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
  */
-      __pyx_t_1 = (PyTuple_GET_SIZE(((PyObject *)__pyx_v_children)) == 1);
+      __pyx_t_1 = ((PyTuple_GET_SIZE(((PyObject *)__pyx_v_children)) == 1) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1159
@@ -15159,10 +15242,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *             elif python._isString(child):
  *                 _add_text(element, child)
  */
-        __pyx_t_4 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
-        __Pyx_INCREF(__pyx_t_4);
-        __pyx_t_6 = setAttributeValue(__pyx_v_element, __pyx_t_4, ((PyObject *)__pyx_n_u__true)); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        __pyx_t_5 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
+        __Pyx_INCREF(__pyx_t_5);
+        __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_5, ((PyObject *)__pyx_n_u__true)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         goto __pyx_L7;
       }
       __pyx_L7:;
@@ -15176,7 +15259,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 _add_text(element, child)
  *                 has_string_value = 1
  */
-    __pyx_t_1 = _isString(__pyx_v_child);
+    __pyx_t_1 = (_isString(__pyx_v_child) != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1161
@@ -15186,9 +15269,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 has_string_value = 1
  *             elif isinstance(child, _Element):
  */
-      __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __pyx_t_5 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1162
  *             elif python._isString(child):
@@ -15209,7 +15292,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 has_children = 1
  */
     __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_child, ((PyObject*)__pyx_ptype_4lxml_8includes_11etreepublic__Element)); 
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1164
  *                 has_string_value = 1
@@ -15238,7 +15322,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 elementMaker = <_ObjectifyElementMakerCaller>child
  *                 if elementMaker._element_factory is None:
  */
-    __pyx_t_1 = __Pyx_TypeCheck(__pyx_v_child, ((PyObject*)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)); 
+    __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_child, ((PyObject*)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)); 
+    __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1167
@@ -15260,7 +15345,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                                           None, None, None, None)
  */
       __pyx_t_1 = (__pyx_v_elementMaker->_element_factory == Py_None);
-      if (__pyx_t_1) {
+      __pyx_t_2 = (__pyx_t_1 != 0);
+      if (__pyx_t_2) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1169
  *                 elementMaker = <_ObjectifyElementMakerCaller>child
@@ -15269,8 +15355,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                                           None, None, None, None)
  *                 else:
  */
-        __pyx_t_4 = __pyx_v_elementMaker->_tag;
-        __Pyx_INCREF(__pyx_t_4);
+        __pyx_t_5 = __pyx_v_elementMaker->_tag;
+        __Pyx_INCREF(__pyx_t_5);
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1170
  *                 if elementMaker._element_factory is None:
@@ -15279,10 +15365,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 else:
  *                     childElement = elementMaker._element_factory(
  */
-        __pyx_t_2 = ((PyObject *)makeSubElement(__pyx_v_element, __pyx_t_4, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+        __pyx_t_3 = ((PyObject *)makeSubElement(__pyx_v_element, __pyx_t_5, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         goto __pyx_L8;
       }
       /*else*/ {
@@ -15294,18 +15380,18 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                     cetree.appendChild(element, childElement)
  *                 has_children = 1
  */
-        __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __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 = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_3);
         __Pyx_INCREF(__pyx_v_elementMaker->_tag);
-        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_elementMaker->_tag);
+        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_elementMaker->_tag);
         __Pyx_GIVEREF(__pyx_v_elementMaker->_tag);
-        __pyx_t_4 = PyObject_Call(__pyx_v_elementMaker->_element_factory, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_4);
-        __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-        if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyObject_Call(__pyx_v_elementMaker->_element_factory, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
+        __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+        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 = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_XDECREF(((PyObject *)__pyx_v_childElement));
-        __pyx_v_childElement = ((struct LxmlElement *)__pyx_t_4);
-        __pyx_t_4 = 0;
+        __pyx_v_childElement = ((struct LxmlElement *)__pyx_t_5);
+        __pyx_t_5 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1174
  *                     childElement = elementMaker._element_factory(
@@ -15337,7 +15423,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                     # concatenation always makes the result a string
  *                     has_string_value = 1
  */
-      __pyx_t_1 = (__pyx_v_pytype_name != Py_None);
+      __pyx_t_2 = (__pyx_v_pytype_name != Py_None);
+      __pyx_t_1 = (__pyx_t_2 != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1179
@@ -15359,11 +15446,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 pytype = python.PyDict_GetItem(_PYTYPE_DICT, pytype_name)
  *                 if pytype is not NULL:
  */
-      __pyx_t_4 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_5 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_v_pytype_name);
-      __pyx_v_pytype_name = __pyx_t_4;
-      __pyx_t_4 = 0;
+      __pyx_v_pytype_name = __pyx_t_5;
+      __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1181
  *                     has_string_value = 1
@@ -15372,10 +15459,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 if pytype is not NULL:
  *                     _add_text(element, (<PyType>pytype).stringify(child))
  */
-      __pyx_t_4 = ((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT);
-      __Pyx_INCREF(__pyx_t_4);
-      __pyx_v_pytype = PyDict_GetItem(__pyx_t_4, __pyx_v_pytype_name);
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __pyx_t_5 = ((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT);
+      __Pyx_INCREF(__pyx_t_5);
+      __pyx_v_pytype = PyDict_GetItem(__pyx_t_5, __pyx_v_pytype_name);
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1182
  *                 pytype_name = _typename(child)
@@ -15384,7 +15471,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                     _add_text(element, (<PyType>pytype).stringify(child))
  *                 else:
  */
-      __pyx_t_1 = (__pyx_v_pytype != NULL);
+      __pyx_t_1 = ((__pyx_v_pytype != NULL) != 0);
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1183
@@ -15394,18 +15481,18 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 else:
  *                     has_string_value = 1
  */
-        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __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 = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_child);
-        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_child);
+        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_child);
         __Pyx_GIVEREF(__pyx_v_child);
-        __pyx_t_2 = PyObject_Call(((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_pytype)->stringify, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-        __pyx_t_4 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_4);
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        __pyx_t_3 = PyObject_Call(((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_pytype)->stringify, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+        __pyx_t_5 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         goto __pyx_L10;
       }
       /*else*/ {
@@ -15426,17 +15513,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                     _add_text(element, child)
  * 
  */
-        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1186; __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 = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_child);
-        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_child);
+        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_child);
         __Pyx_GIVEREF(__pyx_v_child);
-        __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+        __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
         __Pyx_DECREF(__pyx_v_child);
-        __pyx_v_child = __pyx_t_2;
-        __pyx_t_2 = 0;
+        __pyx_v_child = __pyx_t_3;
+        __pyx_t_3 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1187
  *                     has_string_value = 1
@@ -15445,15 +15532,15 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  * 
  *         if self._annotate and not has_children:
  */
-        __pyx_t_2 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_GOTREF(__pyx_t_2);
-        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+        __pyx_t_3 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_GOTREF(__pyx_t_3);
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       }
       __pyx_L10:;
     }
     __pyx_L6:;
   }
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1189
  *                     _add_text(element, child)
@@ -15462,13 +15549,13 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *             if has_string_value:
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
  */
-  if (__pyx_v_self->_annotate) {
-    __pyx_t_1 = (!__pyx_v_has_children);
-    __pyx_t_7 = __pyx_t_1;
+  if ((__pyx_v_self->_annotate != 0)) {
+    __pyx_t_1 = ((!(__pyx_v_has_children != 0)) != 0);
+    __pyx_t_2 = __pyx_t_1;
   } else {
-    __pyx_t_7 = __pyx_v_self->_annotate;
+    __pyx_t_2 = (__pyx_v_self->_annotate != 0);
   }
-  if (__pyx_t_7) {
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1190
  * 
@@ -15477,7 +15564,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
  *             elif pytype_name is not None:
  */
-    if (__pyx_v_has_string_value) {
+    __pyx_t_2 = (__pyx_v_has_string_value != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1191
  *         if self._annotate and not has_children:
@@ -15486,10 +15574,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *             elif pytype_name is not None:
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
  */
-      __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;
+      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_4, ((PyObject *)__pyx_n_u__str)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       goto __pyx_L12;
     }
 
@@ -15500,8 +15588,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
  * 
  */
-    __pyx_t_7 = (__pyx_v_pytype_name != Py_None);
-    if (__pyx_t_7) {
+    __pyx_t_2 = (__pyx_v_pytype_name != Py_None);
+    __pyx_t_1 = (__pyx_t_2 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1193
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
@@ -15510,10 +15599,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  * 
  *         return element
  */
-      __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;
+      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_4, __pyx_v_pytype_name); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       goto __pyx_L12;
     }
     __pyx_L12:;
@@ -15536,9 +15625,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify._ObjectifyElementMakerCaller.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -15568,6 +15657,7 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
   int __pyx_t_3;
+  int __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -15590,7 +15680,7 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
  *         old = cetree.tailOf(c_child)
  *         if old is not None:
  */
-  __pyx_t_1 = (__pyx_v_c_child != NULL);
+  __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1203
@@ -15613,7 +15703,8 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
  *         cetree.setTailText(c_child, text)
  */
     __pyx_t_1 = (__pyx_v_old != Py_None);
-    if (__pyx_t_1) {
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1205
  *         old = cetree.tailOf(c_child)
@@ -15638,7 +15729,7 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
  *     else:
  *         old = cetree.textOf(elem._c_node)
  */
-    __pyx_t_3 = setTailText(__pyx_v_c_child, __pyx_v_text); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = setTailText(__pyx_v_c_child, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   /*else*/ {
@@ -15662,7 +15753,8 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
  *             text = old + text
  *         cetree.setNodeText(elem._c_node, text)
  */
-    __pyx_t_1 = (__pyx_v_old != Py_None);
+    __pyx_t_3 = (__pyx_v_old != Py_None);
+    __pyx_t_1 = (__pyx_t_3 != 0);
     if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1210
@@ -15688,7 +15780,7 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
  * 
  * cdef class ElementMaker:
  */
-    __pyx_t_3 = setNodeText(__pyx_v_elem->_c_node, __pyx_v_text); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = setNodeText(__pyx_v_elem->_c_node, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
@@ -15794,7 +15886,8 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -15809,7 +15902,8 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *                 nsmap = _DEFAULT_NSMAP
  */
   __pyx_t_1 = (__pyx_v_nsmap == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1246
  *                  makeelement=None):
@@ -15818,8 +15912,8 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *                 nsmap = _DEFAULT_NSMAP
  *             else:
  */
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_1) {
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1247
  *         if nsmap is None:
@@ -15842,11 +15936,11 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *         self._nsmap = nsmap
  *         if namespace is None:
  */
-      __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(((PyObject *)__pyx_t_2));
+      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
       __Pyx_DECREF(__pyx_v_nsmap);
-      __pyx_v_nsmap = ((PyObject *)__pyx_t_2);
-      __pyx_t_2 = 0;
+      __pyx_v_nsmap = ((PyObject *)__pyx_t_3);
+      __pyx_t_3 = 0;
     }
     __pyx_L4:;
     goto __pyx_L3;
@@ -15873,7 +15967,8 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *             self._namespace = None
  *         else:
  */
-  __pyx_t_1 = (__pyx_v_namespace == Py_None);
+  __pyx_t_2 = (__pyx_v_namespace == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1252
@@ -15899,13 +15994,13 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *         self._annotate = annotate
  *         if makeelement is not None:
  */
-    __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_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_27), __pyx_v_namespace); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+    __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __Pyx_GOTREF(__pyx_v_self->_namespace);
     __Pyx_DECREF(__pyx_v_self->_namespace);
-    __pyx_v_self->_namespace = ((PyObject *)__pyx_t_2);
-    __pyx_t_2 = 0;
+    __pyx_v_self->_namespace = ((PyObject *)__pyx_t_3);
+    __pyx_t_3 = 0;
   }
   __pyx_L5:;
 
@@ -15927,7 +16022,8 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *             self._makeelement = makeelement
  */
   __pyx_t_1 = (__pyx_v_makeelement != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1257
  *         self._annotate = annotate
@@ -15937,8 +16033,8 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *         else:
  */
     #ifndef CYTHON_WITHOUT_ASSERTIONS
-    __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_makeelement); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (unlikely(!__pyx_t_1)) {
+    __pyx_t_2 = __Pyx_PyCallable_Check(__pyx_v_makeelement); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(!(__pyx_t_2 != 0))) {
       PyErr_SetNone(PyExc_AssertionError);
       {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
@@ -15982,18 +16078,18 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  * 
  *     @cython.final
  */
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
   __Pyx_GOTREF(__pyx_v_self->_cache);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_cache));
-  __pyx_v_self->_cache = ((PyObject*)__pyx_t_2);
-  __pyx_t_2 = 0;
+  __pyx_v_self->_cache = ((PyObject*)__pyx_t_3);
+  __pyx_t_3 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.objectify.ElementMaker.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -16148,7 +16244,7 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   }
   __pyx_t_6 = PyDict_Size(__pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_5 = (__pyx_t_6 > 200);
+  __pyx_t_5 = ((__pyx_t_6 > 200) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1275
@@ -16231,8 +16327,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -16262,7 +16359,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
  *                 return object.__getattr__(self, tag)
  */
   __pyx_t_2 = (__pyx_v_element_maker == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1282
  *         element_maker = self._cache.get(tag, None)
@@ -16276,12 +16374,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_9objectify_is_special_method, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify_is_special_method, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    if (__pyx_t_2) {
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1283
  *         if element_maker is None:
@@ -16291,8 +16389,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
  *         return element_maker
  */
       __Pyx_XDECREF(__pyx_r);
-      __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_4 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s____getattr__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __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);
       __Pyx_INCREF(((PyObject *)__pyx_v_self));
@@ -16301,12 +16399,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
       __Pyx_INCREF(__pyx_v_tag);
       PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_tag);
       __Pyx_GIVEREF(__pyx_v_tag);
-      __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-      __pyx_r = __pyx_t_4;
-      __pyx_t_4 = 0;
+      __pyx_r = __pyx_t_5;
+      __pyx_t_5 = 0;
       goto __pyx_L0;
       goto __pyx_L4;
     }
@@ -16320,10 +16418,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __pyx_r = __pyx_t_4;
-    __pyx_t_4 = 0;
+    __pyx_t_5 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __pyx_r = __pyx_t_5;
+    __pyx_t_5 = 0;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -16345,8 +16443,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.ElementMaker.__getattr__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -16440,8 +16538,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_4__call__(struct __pyx
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -16471,7 +16570,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_4__call__(struct __pyx
  *         return element_maker(*args, **kwargs)
  */
   __pyx_t_2 = (__pyx_v_element_maker == Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1290
  *         element_maker = self._cache.get(tag, None)
@@ -16499,22 +16599,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_4__call__(struct __pyx
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_1 = PySequence_Tuple(((PyObject *)__pyx_v_args)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-  __pyx_t_3 = ((PyObject *)__pyx_v_kwargs);
-  __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_4 = PyObject_Call(__pyx_v_element_maker, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_4 = ((PyObject *)__pyx_v_kwargs);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_5 = PyObject_Call(__pyx_v_element_maker, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.ElementMaker.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -16624,9 +16724,9 @@ static PyObject *__pyx_pw_4lxml_9objectify_15dump(PyObject *__pyx_self, PyObject
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("dump (wrapper)", 0);
@@ -16739,7 +16839,8 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  *     else:
  */
   __pyx_t_3 = __Pyx_TypeCheck(((PyObject *)__pyx_v_element), ((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement)); 
-  if (__pyx_t_3) {
+  __pyx_t_4 = (__pyx_t_3 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1318
  *     indentstr = u"    " * indent
@@ -16775,7 +16876,8 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  *             if not value.strip():
  *                 value = None
  */
-    __pyx_t_3 = (__pyx_v_value != Py_None);
+    __pyx_t_4 = (__pyx_v_value != Py_None);
+    __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1322
@@ -16792,7 +16894,7 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __pyx_t_4 = (!__pyx_t_3);
+      __pyx_t_4 = ((!__pyx_t_3) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1323
@@ -17002,7 +17104,8 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  *                 if value == TREE_PYTYPE_NAME:
  */
     __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) {
+    __pyx_t_3 = (__pyx_t_4 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1332
  *     for name, value in cetree.iterattributes(element, 3):
@@ -17015,9 +17118,9 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       __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;
-      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-      if (__pyx_t_4) {
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1333
  *         if u'{' in name:
@@ -17027,9 +17130,9 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  *                 else:
  */
         __pyx_t_8 = PyObject_RichCompare(__pyx_v_value, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-        if (__pyx_t_4) {
+        if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1334
  *             if name == PYTYPE_ATTRIBUTE:
@@ -17218,8 +17321,8 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  *         return result[:-1] # strip last '\n'
  *     else:
  */
-  __pyx_t_4 = (__pyx_v_indent == 1);
-  if (__pyx_t_4) {
+  __pyx_t_3 = ((__pyx_v_indent == 1) != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1344
  *         result += _dump(child, indent)
@@ -17368,10 +17471,11 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
   PyObject *__pyx_v_copyreg = NULL;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
+  int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -17384,7 +17488,8 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
  *         import copyreg
  *     else:
  */
-  if (IS_PYTHON3) {
+  __pyx_t_1 = (IS_PYTHON3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1357
  * cdef _setupPickle(elementTreeReduceFunction):
@@ -17393,10 +17498,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
  *     else:
  *         import copy_reg as copyreg
  */
-    __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__copyreg), 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_1);
-    __pyx_v_copyreg = __pyx_t_1;
-    __pyx_t_1 = 0;
+    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__copyreg), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_v_copyreg = __pyx_t_2;
+    __pyx_t_2 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -17408,10 +17513,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
  *     copyreg.pickle(etree._ElementTree,
  *                    elementTreeReduceFunction, __unpickleElementTree)
  */
-    __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__copy_reg), 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_1);
-    __pyx_v_copyreg = __pyx_t_1;
-    __pyx_t_1 = 0;
+    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__copy_reg), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_v_copyreg = __pyx_t_2;
+    __pyx_t_2 = 0;
   }
   __pyx_L3:;
 
@@ -17422,10 +17527,10 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
  *                    elementTreeReduceFunction, __unpickleElementTree)
  * 
  */
-  __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 = __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_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_copyreg, __pyx_n_s__pickle); 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);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s___ElementTree); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1361
  *         import copy_reg as copyreg
@@ -17434,32 +17539,32 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
  * 
  * def pickleReduceElementTree(obj):
  */
-  __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_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_36); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
-  __Pyx_GIVEREF(__pyx_t_2);
+  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_elementTreeReduceFunction);
-  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_elementTreeReduceFunction);
+  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_elementTreeReduceFunction);
   __Pyx_GIVEREF(__pyx_v_elementTreeReduceFunction);
-  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
-  __Pyx_GIVEREF(__pyx_t_3);
-  __pyx_t_2 = 0;
+  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_3 = 0;
-  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1360; __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_4)); __pyx_t_4 = 0;
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_4 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); 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);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
   __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify._setupPickle", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -17635,6 +17740,7 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
+  int __pyx_t_2;
   __Pyx_RefNannySetupContext("__init__", 0);
   __Pyx_INCREF(__pyx_v_tree_class);
   __Pyx_INCREF(__pyx_v_empty_data_class);
@@ -17656,7 +17762,8 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
  *         self.tree_class = tree_class
  */
   __pyx_t_1 = (__pyx_v_tree_class == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1389
  *         self._lookup_function = _lookupElementClass
@@ -17692,7 +17799,8 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
  *             empty_data_class = StringElement
  *         self.empty_data_class = empty_data_class
  */
-  __pyx_t_1 = (__pyx_v_empty_data_class == Py_None);
+  __pyx_t_2 = (__pyx_v_empty_data_class == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1392
@@ -17775,7 +17883,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *         return lookup.tree_class
  * 
  */
-  __pyx_t_1 = hasChild(__pyx_v_c_node);
+  __pyx_t_1 = (hasChild(__pyx_v_c_node) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1401
@@ -17843,7 +17951,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *             return lookup.tree_class
  */
   __pyx_t_1 = (__pyx_v_value != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_4 = (__pyx_t_1 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1412
  *         c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
@@ -17853,9 +17962,9 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, value)
  */
     __pyx_t_3 = PyObject_RichCompare(__pyx_v_value, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __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[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    if (__pyx_t_1) {
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1413
  *     if value is not None:
@@ -17891,8 +18000,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *             return (<PyType>dict_result)._type
  *         # unknown 'pyval' => try to figure it out ourself, just go on
  */
-    __pyx_t_1 = (__pyx_v_dict_result != NULL);
-    if (__pyx_t_1) {
+    __pyx_t_4 = ((__pyx_v_dict_result != NULL) != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1416
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, value)
@@ -17932,7 +18041,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is NULL and u':' in value:
  */
-  __pyx_t_1 = (__pyx_v_value != Py_None);
+  __pyx_t_4 = (__pyx_v_value != Py_None);
+  __pyx_t_1 = (__pyx_t_4 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1424
@@ -17954,10 +18064,10 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *             prefix, value = value.split(u':', 1)
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  */
-    __pyx_t_1 = (__pyx_v_dict_result == NULL);
+    __pyx_t_1 = ((__pyx_v_dict_result == NULL) != 0);
     if (__pyx_t_1) {
       __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;
+      __pyx_t_5 = (__pyx_t_4 != 0);
     } else {
       __pyx_t_5 = __pyx_t_1;
     }
@@ -18054,7 +18164,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *             return (<PyType>dict_result)._type
  * 
  */
-    __pyx_t_5 = (__pyx_v_dict_result != NULL);
+    __pyx_t_5 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1429
@@ -18095,7 +18205,8 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  * 
  */
   __pyx_t_5 = (__pyx_v_el_class != Py_None);
-  if (__pyx_t_5) {
+  __pyx_t_1 = (__pyx_t_5 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1434
  *     el_class = _guessElementClass(c_node)
@@ -18119,12 +18230,12 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  *         return lookup.tree_class
  * 
  */
-  __pyx_t_5 = (__pyx_v_c_node->parent == NULL);
-  if (!__pyx_t_5) {
-    __pyx_t_1 = (!_isElement(__pyx_v_c_node->parent));
-    __pyx_t_4 = __pyx_t_1;
-  } else {
+  __pyx_t_1 = ((__pyx_v_c_node->parent == NULL) != 0);
+  if (!__pyx_t_1) {
+    __pyx_t_5 = ((!(_isElement(__pyx_v_c_node->parent) != 0)) != 0);
     __pyx_t_4 = __pyx_t_5;
+  } else {
+    __pyx_t_4 = __pyx_t_1;
   }
   if (__pyx_t_4) {
 
@@ -18187,12 +18298,13 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
   struct __pyx_obj_4lxml_9objectify_PyType *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
-  int __pyx_t_7;
+  PyObject *__pyx_t_7 = NULL;
+  int __pyx_t_8;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -18206,7 +18318,8 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
  *     value = textOf(c_node)
  */
   __pyx_t_1 = (((PyObject *)__pyx_v_pytype) == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1448
  * cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype):
@@ -18230,10 +18343,10 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
  *     try:
  *         pytype.type_check(value)
  */
-  __pyx_t_2 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_v_value = __pyx_t_2;
-  __pyx_t_2 = 0;
+  __pyx_t_3 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_v_value = __pyx_t_3;
+  __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1450
  *         return None
@@ -18243,10 +18356,10 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
  *         return pytype
  */
   {
-    __Pyx_ExceptionSave(&__pyx_t_3, &__pyx_t_4, &__pyx_t_5);
-    __Pyx_XGOTREF(__pyx_t_3);
+    __Pyx_ExceptionSave(&__pyx_t_4, &__pyx_t_5, &__pyx_t_6);
     __Pyx_XGOTREF(__pyx_t_4);
     __Pyx_XGOTREF(__pyx_t_5);
+    __Pyx_XGOTREF(__pyx_t_6);
     /*try:*/ {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1451
@@ -18256,15 +18369,15 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
  *         return pytype
  *     except IGNORABLE_ERRORS:
  */
-      __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1451; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
-      __Pyx_GOTREF(__pyx_t_2);
+      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1451; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+      __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_v_value);
-      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_value);
+      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_value);
       __Pyx_GIVEREF(__pyx_v_value);
-      __pyx_t_6 = PyObject_Call(__pyx_v_pytype->type_check, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1451; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+      __pyx_t_7 = PyObject_Call(__pyx_v_pytype->type_check, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1451; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+      __Pyx_GOTREF(__pyx_t_7);
+      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1452
  *     try:
@@ -18278,19 +18391,19 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
       __pyx_r = __pyx_v_pytype;
       goto __pyx_L8_try_return;
     }
-    __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;
+    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L11_try_end;
     __pyx_L8_try_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);
+    __Pyx_XGIVEREF(__pyx_t_6);
+    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     goto __pyx_L0;
     __pyx_L4_error:;
-    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1453
  *         pytype.type_check(value)
@@ -18299,21 +18412,21 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
  *         # could not be parsed as the specified type => ignore
  *         pass
  */
-    __pyx_t_7 = PyErr_ExceptionMatches(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
-    if (__pyx_t_7) {
+    __pyx_t_8 = PyErr_ExceptionMatches(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
+    if (__pyx_t_8) {
       PyErr_Restore(0,0,0);
       goto __pyx_L5_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_XGIVEREF(__pyx_t_6);
+    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     goto __pyx_L1_error;
     __pyx_L5_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_XGIVEREF(__pyx_t_6);
+    __Pyx_ExceptionReset(__pyx_t_4, __pyx_t_5, __pyx_t_6);
     __pyx_L11_try_end:;
   }
 
@@ -18332,8 +18445,8 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
   __pyx_r = ((struct __pyx_obj_4lxml_9objectify_PyType *)Py_None); __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_6);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_7);
   __Pyx_AddTraceback("lxml.objectify._check_type", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -18780,7 +18893,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   struct __pyx_obj_4lxml_9objectify_PyType *__pyx_v_empty_pytype = 0;
   struct __pyx_obj_4lxml_9objectify_PyType *__pyx_v_StrType = 0;
   struct __pyx_obj_4lxml_9objectify_PyType *__pyx_v_NoneType = 0;
-  PyObject *__pyx_v_dict_result;
+  void *__pyx_v_dict_result;
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
@@ -18803,9 +18916,9 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  *         return
  * 
  */
-  __pyx_t_1 = (!__pyx_v_annotate_xsi);
+  __pyx_t_1 = ((!(__pyx_v_annotate_xsi != 0)) != 0);
   if (__pyx_t_1) {
-    __pyx_t_2 = (!__pyx_v_annotate_pytype);
+    __pyx_t_2 = ((!(__pyx_v_annotate_pytype != 0)) != 0);
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
@@ -18834,7 +18947,8 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  *             empty_type_name = (<bytes>empty_type_name).decode("ascii")
  */
   __pyx_t_3 = (__pyx_v_empty_type_name != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1559
  * 
@@ -18843,7 +18957,8 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  *             empty_type_name = (<bytes>empty_type_name).decode("ascii")
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, empty_type_name)
  */
-    __pyx_t_3 = PyBytes_Check(__pyx_v_empty_type_name); 
+    __pyx_t_1 = PyBytes_Check(__pyx_v_empty_type_name); 
+    __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1560
@@ -18888,7 +19003,8 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  *             empty_pytype_name = (<bytes>empty_pytype_name).decode("ascii")
  */
   __pyx_t_3 = (__pyx_v_empty_pytype_name != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1563
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, empty_type_name)
@@ -18897,7 +19013,8 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  *             empty_pytype_name = (<bytes>empty_pytype_name).decode("ascii")
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, empty_pytype_name)
  */
-    __pyx_t_3 = PyBytes_Check(__pyx_v_empty_pytype_name); 
+    __pyx_t_1 = PyBytes_Check(__pyx_v_empty_pytype_name); 
+    __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1564
@@ -18953,7 +19070,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  *         empty_pytype = <PyType>dict_result
  *     else:
  */
-  __pyx_t_3 = (__pyx_v_dict_result != NULL);
+  __pyx_t_3 = ((__pyx_v_dict_result != NULL) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1569
@@ -19053,7 +19170,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  *         _annotate_element(c_node, doc, annotate_xsi, annotate_pytype,
  *                           ignore_xsi, ignore_pytype,
  */
-  __pyx_t_3 = (__pyx_v_c_node->type == XML_ELEMENT_NODE);
+  __pyx_t_3 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1582
@@ -19195,11 +19312,11 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *         typename = cetree.attributeValueFromNsName(
  */
   __pyx_t_3 = (((PyObject *)__pyx_v_pytype) == Py_None);
-  if (__pyx_t_3) {
-    __pyx_t_4 = (!__pyx_v_ignore_xsi);
+  if ((__pyx_t_3 != 0)) {
+    __pyx_t_4 = ((!(__pyx_v_ignore_xsi != 0)) != 0);
     __pyx_t_5 = __pyx_t_4;
   } else {
-    __pyx_t_5 = __pyx_t_3;
+    __pyx_t_5 = (__pyx_t_3 != 0);
   }
   if (__pyx_t_5) {
 
@@ -19224,7 +19341,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 _SCHEMA_TYPE_DICT, typename)
  */
     __pyx_t_5 = (__pyx_v_typename != Py_None);
-    if (__pyx_t_5) {
+    __pyx_t_3 = (__pyx_t_5 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1607
  *         if typename is not None:
@@ -19245,12 +19363,12 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 prefix, typename = typename.split(u':', 1)
  *                 dict_result = python.PyDict_GetItem(
  */
-      __pyx_t_5 = (__pyx_v_dict_result == NULL);
-      if (__pyx_t_5) {
-        __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;
+      __pyx_t_3 = ((__pyx_v_dict_result == NULL) != 0);
+      if (__pyx_t_3) {
+        __pyx_t_5 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_37), __pyx_v_typename, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = (__pyx_t_5 != 0);
       } else {
-        __pyx_t_4 = __pyx_t_5;
+        __pyx_t_4 = __pyx_t_3;
       }
       if (__pyx_t_4) {
 
@@ -19345,7 +19463,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 pytype = <PyType>dict_result
  *                 if pytype is not StrType:
  */
-      __pyx_t_4 = (__pyx_v_dict_result != NULL);
+      __pyx_t_4 = ((__pyx_v_dict_result != NULL) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1613
@@ -19367,7 +19485,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     # anyway, so just accept it if given as type
  */
         __pyx_t_4 = (__pyx_v_pytype != __pyx_v_StrType);
-        if (__pyx_t_4) {
+        __pyx_t_3 = (__pyx_t_4 != 0);
+        if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1618
  *                     # anyway, so just accept it if given as type
@@ -19389,7 +19508,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                         typename = None
  * 
  */
-          __pyx_t_4 = (((PyObject *)__pyx_v_pytype) == Py_None);
+          __pyx_t_3 = (((PyObject *)__pyx_v_pytype) == Py_None);
+          __pyx_t_4 = (__pyx_t_3 != 0);
           if (__pyx_t_4) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1620
@@ -19426,13 +19546,13 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *         old_pytypename = cetree.attributeValueFromNsName(
  */
   __pyx_t_4 = (((PyObject *)__pyx_v_pytype) == Py_None);
-  if (__pyx_t_4) {
-    __pyx_t_5 = (!__pyx_v_ignore_pytype);
-    __pyx_t_3 = __pyx_t_5;
+  if ((__pyx_t_4 != 0)) {
+    __pyx_t_3 = ((!(__pyx_v_ignore_pytype != 0)) != 0);
+    __pyx_t_5 = __pyx_t_3;
   } else {
-    __pyx_t_3 = __pyx_t_4;
+    __pyx_t_5 = (__pyx_t_4 != 0);
   }
-  if (__pyx_t_3) {
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1625
  *         # check that old pytype value is valid
@@ -19453,8 +19573,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             if old_pytypename == TREE_PYTYPE_NAME:
  *                 if not cetree.hasChild(c_node):
  */
-    __pyx_t_3 = (__pyx_v_old_pytypename != Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_5 = (__pyx_v_old_pytypename != Py_None);
+    __pyx_t_4 = (__pyx_t_5 != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1627
  *             c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
@@ -19464,9 +19585,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     # only case where we should keep it,
  */
       __pyx_t_1 = PyObject_RichCompare(__pyx_v_old_pytypename, __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1627; __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[0]; __pyx_lineno = 1627; __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[0]; __pyx_lineno = 1627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      if (__pyx_t_3) {
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1628
  *         if old_pytypename is not None:
@@ -19475,8 +19596,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     # only case where we should keep it,
  *                     # everything else is clear enough
  */
-        __pyx_t_3 = (!hasChild(__pyx_v_c_node));
-        if (__pyx_t_3) {
+        __pyx_t_4 = ((!(hasChild(__pyx_v_c_node) != 0)) != 0);
+        if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1631
  *                     # only case where we should keep it,
@@ -19503,9 +19624,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     old_pytypename = u"NoneType"
  */
         __pyx_t_1 = PyObject_RichCompare(__pyx_v_old_pytypename, ((PyObject *)__pyx_n_u__none), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __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[0]; __pyx_lineno = 1633; __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[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-        if (__pyx_t_3) {
+        if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1635
  *                 if old_pytypename == u'none':
@@ -19540,8 +19661,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     pytype = <PyType>dict_result
  *                     if pytype is not StrType:
  */
-        __pyx_t_3 = (__pyx_v_dict_result != NULL);
-        if (__pyx_t_3) {
+        __pyx_t_4 = ((__pyx_v_dict_result != NULL) != 0);
+        if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1639
  *                     _PYTYPE_DICT, old_pytypename)
@@ -19561,8 +19682,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                         # StrType does not have a typecheck but is the
  *                         # default anyway, so just accept it if given as
  */
-          __pyx_t_3 = (__pyx_v_pytype != __pyx_v_StrType);
-          if (__pyx_t_3) {
+          __pyx_t_4 = (__pyx_v_pytype != __pyx_v_StrType);
+          __pyx_t_5 = (__pyx_t_4 != 0);
+          if (__pyx_t_5) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1644
  *                         # default anyway, so just accept it if given as
@@ -19598,8 +19720,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *         # try to guess type
  *         if not cetree.hasChild(c_node):
  */
-  __pyx_t_3 = (((PyObject *)__pyx_v_pytype) == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_5 = (((PyObject *)__pyx_v_pytype) == Py_None);
+  __pyx_t_4 = (__pyx_t_5 != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1648
  *     if pytype is None:
@@ -19608,8 +19731,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             # element has no children => data class
  *             pytype = _guessPyType(textOf(c_node), StrType)
  */
-    __pyx_t_3 = (!hasChild(__pyx_v_c_node));
-    if (__pyx_t_3) {
+    __pyx_t_4 = ((!(hasChild(__pyx_v_c_node) != 0)) != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1650
  *         if not cetree.hasChild(c_node):
@@ -19651,8 +19774,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *         # use default type for empty elements
  *         if cetree.hasText(c_node):
  */
-  __pyx_t_3 = (((PyObject *)__pyx_v_pytype) == Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (((PyObject *)__pyx_v_pytype) == Py_None);
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1656
  *     if pytype is None:
@@ -19661,8 +19785,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             pytype = StrType
  *         else:
  */
-    __pyx_t_3 = hasText(__pyx_v_c_node);
-    if (__pyx_t_3) {
+    __pyx_t_5 = (hasText(__pyx_v_c_node) != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1657
  *         # use default type for empty elements
@@ -19696,8 +19820,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 typename = empty_type_name
  * 
  */
-      __pyx_t_3 = (__pyx_v_typename == Py_None);
-      if (__pyx_t_3) {
+      __pyx_t_5 = (__pyx_v_typename == Py_None);
+      __pyx_t_4 = (__pyx_t_5 != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1661
  *             pytype = empty_pytype
@@ -19725,8 +19850,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *         if typename is None:
  *             if not istree:
  */
-  __pyx_t_3 = (((PyObject *)__pyx_v_pytype) != Py_None);
-  if (__pyx_t_3) {
+  __pyx_t_4 = (((PyObject *)__pyx_v_pytype) != Py_None);
+  __pyx_t_5 = (__pyx_t_4 != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1664
  * 
@@ -19735,8 +19861,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             if not istree:
  *                 if python.PyList_GET_SIZE(pytype._schema_types) > 0:
  */
-    __pyx_t_3 = (__pyx_v_typename == Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_5 = (__pyx_v_typename == Py_None);
+    __pyx_t_4 = (__pyx_t_5 != 0);
+    if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1665
  *     if pytype is not None:
@@ -19745,8 +19872,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 if python.PyList_GET_SIZE(pytype._schema_types) > 0:
  *                     # pytype->xsi:type is a 1:n mapping
  */
-      __pyx_t_3 = (!__pyx_v_istree);
-      if (__pyx_t_3) {
+      __pyx_t_4 = ((!(__pyx_v_istree != 0)) != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1666
  *         if typename is None:
@@ -19757,9 +19884,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
         __pyx_t_6 = ((PyObject *)__pyx_v_pytype->_schema_types);
         __Pyx_INCREF(__pyx_t_6);
-        __pyx_t_3 = (PyList_GET_SIZE(__pyx_t_6) > 0);
+        __pyx_t_4 = ((PyList_GET_SIZE(__pyx_t_6) > 0) != 0);
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-        if (__pyx_t_3) {
+        if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1669
  *                     # pytype->xsi:type is a 1:n mapping
@@ -19793,8 +19920,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             typename = pytype._schema_types[0]
  * 
  */
-    __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_v_typename, ((PyObject *)__pyx_v_pytype->_schema_types), Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_3) {
+    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_typename, ((PyObject *)__pyx_v_pytype->_schema_types), Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1670; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = (__pyx_t_4 != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1671
  *                     typename = pytype._schema_types[0]
@@ -19826,7 +19954,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *         if typename is None or istree:
  *             cetree.delAttributeFromNsName(
  */
-  if (__pyx_v_annotate_xsi) {
+  __pyx_t_5 = (__pyx_v_annotate_xsi != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1674
  * 
@@ -19835,11 +19964,11 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             cetree.delAttributeFromNsName(
  *                 c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
  */
-    __pyx_t_3 = (__pyx_v_typename == Py_None);
-    if (!__pyx_t_3) {
-      __pyx_t_4 = __pyx_v_istree;
+    __pyx_t_5 = (__pyx_v_typename == Py_None);
+    if (!__pyx_t_5) {
+      __pyx_t_4 = (__pyx_v_istree != 0);
     } else {
-      __pyx_t_4 = __pyx_t_3;
+      __pyx_t_4 = __pyx_t_5;
     }
     if (__pyx_t_4) {
 
@@ -19883,7 +20012,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 if b':' in typename_utf8:
  *                     prefix, name = typename_utf8.split(b':', 1)
  */
-      __pyx_t_4 = (__pyx_v_c_ns != NULL);
+      __pyx_t_4 = ((__pyx_v_c_ns != NULL) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1683
@@ -19894,7 +20023,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
  */
         __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) {
+        __pyx_t_5 = (__pyx_t_4 != 0);
+        if (__pyx_t_5) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1684
  *             if c_ns is not NULL:
@@ -19972,14 +20102,14 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                         typename_utf8 = name
  *                     elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0:
  */
-          __pyx_t_4 = (__pyx_v_c_ns->prefix == NULL);
-          if (!__pyx_t_4) {
-            __pyx_t_3 = ((__pyx_v_c_ns->prefix[0]) == '\x00');
-            __pyx_t_5 = __pyx_t_3;
+          __pyx_t_5 = ((__pyx_v_c_ns->prefix == NULL) != 0);
+          if (!__pyx_t_5) {
+            __pyx_t_4 = (((__pyx_v_c_ns->prefix[0]) == '\x00') != 0);
+            __pyx_t_3 = __pyx_t_4;
           } else {
-            __pyx_t_5 = __pyx_t_4;
+            __pyx_t_3 = __pyx_t_5;
           }
-          if (__pyx_t_5) {
+          if (__pyx_t_3) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1686
  *                     prefix, name = typename_utf8.split(b':', 1)
@@ -20001,8 +20131,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                         typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
  *                 elif c_ns.prefix is not NULL or c_ns.prefix[0] != c'\0':
  */
-          __pyx_t_5 = (xmlStrcmp((const xmlChar*)PyBytes_AS_STRING(__pyx_v_prefix), __pyx_v_c_ns->prefix) != 0);
-          if (__pyx_t_5) {
+          __pyx_t_3 = ((xmlStrcmp((const xmlChar*)PyBytes_AS_STRING(__pyx_v_prefix), __pyx_v_c_ns->prefix) != 0) != 0);
+          if (__pyx_t_3) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1688
  *                         typename_utf8 = name
@@ -20035,14 +20165,14 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + typename_utf8
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  */
-        __pyx_t_5 = (__pyx_v_c_ns->prefix != NULL);
-        if (!__pyx_t_5) {
-          __pyx_t_4 = ((__pyx_v_c_ns->prefix[0]) != '\x00');
-          __pyx_t_3 = __pyx_t_4;
+        __pyx_t_3 = ((__pyx_v_c_ns->prefix != NULL) != 0);
+        if (!__pyx_t_3) {
+          __pyx_t_5 = (((__pyx_v_c_ns->prefix[0]) != '\x00') != 0);
+          __pyx_t_4 = __pyx_t_5;
         } else {
-          __pyx_t_3 = __pyx_t_5;
+          __pyx_t_4 = __pyx_t_3;
         }
-        if (__pyx_t_3) {
+        if (__pyx_t_4) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1690
  *                         typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
@@ -20099,7 +20229,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *         if pytype is None:
  *             # delete attribute if it exists
  */
-  if (__pyx_v_annotate_pytype) {
+  __pyx_t_4 = (__pyx_v_annotate_pytype != 0);
+  if (__pyx_t_4) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1696
  * 
@@ -20108,7 +20239,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             # delete attribute if it exists
  *             cetree.delAttributeFromNsName(
  */
-    __pyx_t_3 = (((PyObject *)__pyx_v_pytype) == Py_None);
+    __pyx_t_4 = (((PyObject *)__pyx_v_pytype) == Py_None);
+    __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1699
@@ -20164,7 +20296,8 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')
  */
       __pyx_t_3 = (__pyx_v_pytype == __pyx_v_NoneType);
-      if (__pyx_t_3) {
+      __pyx_t_4 = (__pyx_t_3 != 0);
+      if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1709
  *             if pytype is NoneType:
@@ -20336,8 +20469,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -20362,7 +20496,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  *         attribute_names.append(PYTYPE_ATTRIBUTE)
  *     if xsi:
  */
-  if (__pyx_v_pytype) {
+  __pyx_t_2 = (__pyx_v_pytype != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1737
  * 
@@ -20373,7 +20508,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  */
     __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 = __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_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -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;
   }
@@ -20386,7 +20521,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  *         attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
  *     if xsi_nil:
  */
-  if (__pyx_v_xsi) {
+  __pyx_t_2 = (__pyx_v_xsi != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1739
  *         attribute_names.append(PYTYPE_ATTRIBUTE)
@@ -20397,7 +20533,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  */
     __pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR;
     __Pyx_INCREF(__pyx_t_1);
-    __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_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -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;
   }
@@ -20410,7 +20546,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  *         attribute_names.append(XML_SCHEMA_INSTANCE_NIL_ATTR)
  * 
  */
-  if (__pyx_v_xsi_nil) {
+  __pyx_t_2 = (__pyx_v_xsi_nil != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1741
  *         attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
@@ -20421,7 +20558,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  */
     __pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
     __Pyx_INCREF(__pyx_t_1);
-    __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_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -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;
   }
@@ -20439,16 +20576,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   __Pyx_INCREF(__pyx_v_element_or_tree);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_element_or_tree);
   __Pyx_GIVEREF(__pyx_v_element_or_tree);
-  __pyx_t_3 = PySequence_Tuple(((PyObject *)__pyx_v_attribute_names)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __pyx_t_4 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PySequence_Tuple(((PyObject *)__pyx_v_attribute_names)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+  __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_5));
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_9objectify__strip_attributes, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify__strip_attributes, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1744
  * 
@@ -20457,7 +20594,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  *         _cleanup_namespaces(element_or_tree)
  * 
  */
-  if (__pyx_v_cleanup_namespaces) {
+  __pyx_t_2 = (__pyx_v_cleanup_namespaces != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1745
  *     _strip_attributes(element_or_tree, *attribute_names)
@@ -20466,15 +20604,15 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  * 
  * ################################################################################
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1745; __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 = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_element_or_tree);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_element_or_tree);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_element_or_tree);
     __Pyx_GIVEREF(__pyx_v_element_or_tree);
-    __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify__cleanup_namespaces, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__cleanup_namespaces, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L6;
   }
   __pyx_L6:;
@@ -20483,8 +20621,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.deannotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -20563,7 +20701,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
+  PyObject *__pyx_t_3 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -20577,7 +20716,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
  *     elif isinstance(new_parser, etree.XMLParser):
  */
   __pyx_t_1 = (__pyx_v_new_parser == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1769
  *     global objectify_parser
@@ -20601,10 +20741,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
  *         objectify_parser = new_parser
  *     else:
  */
-  __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;
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = PyObject_IsInstance(__pyx_v_new_parser, __pyx_t_3); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1771
@@ -20638,7 +20779,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_AddTraceback("lxml.objectify.set_default_parser", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -20681,9 +20822,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -20697,7 +20839,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
  *     parser = etree.XMLParser(**kw)
  */
   __pyx_t_1 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_n_s__remove_blank_text), ((PyObject *)__pyx_v_kw), Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1786
  *     """
@@ -20706,10 +20849,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
  *     parser = etree.XMLParser(**kw)
  *     parser.set_element_class_lookup( ObjectifyElementClassLookup() )
  */
-    __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    if (PyDict_SetItem(((PyObject *)__pyx_v_kw), ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    if (PyDict_SetItem(((PyObject *)__pyx_v_kw), ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1786; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -20721,16 +20864,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
  *     parser.set_element_class_lookup( ObjectifyElementClassLookup() )
  *     return parser
  */
-  __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);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_v_parser = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = ((PyObject *)__pyx_v_kw);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_v_parser = __pyx_t_5;
+  __pyx_t_5 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1788
  *         kw['remove_blank_text'] = True
@@ -20739,20 +20882,20 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
  *     return parser
  * 
  */
-  __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_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_48); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); 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);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
-  __Pyx_GIVEREF(__pyx_t_3);
-  __pyx_t_3 = 0;
-  __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); 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);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_4);
+  __pyx_t_4 = 0;
+  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); 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_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1789
  *     parser = etree.XMLParser(**kw)
@@ -20769,9 +20912,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.makeparser", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -20913,9 +21056,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -20930,7 +21074,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
  *     return _fromstring(xml, parser, base_url=base_url)
  */
   __pyx_t_1 = (__pyx_v_parser == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1815
  *     """
@@ -20954,31 +21099,31 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
  * def XML(xml, parser=None, *, base_url=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __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[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_xml);
-  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_xml);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_xml);
   __Pyx_GIVEREF(__pyx_v_xml);
   __Pyx_INCREF(__pyx_v_parser);
-  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_parser);
+  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.fromstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -21072,9 +21217,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -21089,7 +21235,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
  *     return _fromstring(xml, parser, base_url=base_url)
  */
   __pyx_t_1 = (__pyx_v_parser == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1831
  *     """
@@ -21113,31 +21260,31 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
  * cdef object _parse
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __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[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_xml);
-  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_xml);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_xml);
   __Pyx_GIVEREF(__pyx_v_xml);
   __Pyx_INCREF(__pyx_v_parser);
-  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_parser);
+  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -21231,9 +21378,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -21248,7 +21396,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
  *     return _parse(f, parser, base_url=base_url)
  */
   __pyx_t_1 = (__pyx_v_parser == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1849
  *     """
@@ -21272,31 +21421,31 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
  * cdef dict _DEFAULT_NSMAP = {
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __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[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_f);
-  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_f);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_f);
   __Pyx_GIVEREF(__pyx_v_f);
   __Pyx_INCREF(__pyx_v_parser);
-  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_parser);
+  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify__parse, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_4));
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__parse, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_r = __pyx_t_4;
-  __pyx_t_4 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
   goto __pyx_L0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
   __Pyx_AddTraceback("lxml.objectify.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -21405,7 +21554,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
-  Py_ssize_t __pyx_t_2;
+  int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
@@ -21425,7 +21574,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  *             attrib.update(_attributes)
  */
   __pyx_t_1 = (__pyx_v_attrib != Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1869
  *     """
@@ -21434,7 +21584,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  *             attrib.update(_attributes)
  *         _attributes = attrib
  */
-    __pyx_t_2 = PyDict_Size(__pyx_v__attributes);
+    __pyx_t_2 = (PyDict_Size(__pyx_v__attributes) != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1870
@@ -21481,7 +21631,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  *         _pytype = TREE_PYTYPE_NAME
  *     if nsmap is None:
  */
-  __pyx_t_1 = (__pyx_v__pytype == Py_None);
+  __pyx_t_2 = (__pyx_v__pytype == Py_None);
+  __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1873
@@ -21506,7 +21657,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  *     _attributes[PYTYPE_ATTRIBUTE] = _pytype
  */
   __pyx_t_1 = (__pyx_v_nsmap == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1875
  *         _pytype = TREE_PYTYPE_NAME
@@ -21706,7 +21858,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *     if attrib is not None and attrib:
  */
   __pyx_t_1 = (__pyx_v_nsmap == Py_None);
-  if (__pyx_t_1) {
+  __pyx_t_2 = (__pyx_t_1 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1896
  *     cdef python.PyObject* dict_result
@@ -21729,12 +21882,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         if _attributes:
  *             attrib = dict(attrib)
  */
-  __pyx_t_1 = (__pyx_v_attrib != Py_None);
-  if (__pyx_t_1) {
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __pyx_t_2;
-  } else {
+  __pyx_t_2 = (__pyx_v_attrib != Py_None);
+  if (__pyx_t_2) {
+    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = __pyx_t_1;
+  } else {
+    __pyx_t_3 = __pyx_t_2;
   }
   if (__pyx_t_3) {
 
@@ -21812,7 +21965,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP:
  */
   __pyx_t_3 = __Pyx_TypeCheck(__pyx_v__value, ((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedElement)); 
-  if (__pyx_t_3) {
+  __pyx_t_2 = (__pyx_t_3 != 0);
+  if (__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1903
  *         _attributes = attrib
@@ -21821,7 +21975,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP:
  *                 # special case: no change!
  */
-    __pyx_t_3 = (__pyx_v__pytype == Py_None);
+    __pyx_t_2 = (__pyx_v__pytype == Py_None);
+    __pyx_t_3 = (__pyx_t_2 != 0);
     if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1904
@@ -21832,20 +21987,20 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                 return _value.__copy__()
  */
       __pyx_t_3 = (__pyx_v__xsi == Py_None);
-      if (__pyx_t_3) {
-        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_2 = (!__pyx_t_1);
-        if (__pyx_t_2) {
-          __pyx_t_1 = (__pyx_v_nsmap == ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
-          __pyx_t_7 = __pyx_t_1;
+      if ((__pyx_t_3 != 0)) {
+        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = ((!__pyx_t_2) != 0);
+        if (__pyx_t_1) {
+          __pyx_t_2 = (__pyx_v_nsmap == ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
+          __pyx_t_7 = (__pyx_t_2 != 0);
         } else {
-          __pyx_t_7 = __pyx_t_2;
+          __pyx_t_7 = __pyx_t_1;
         }
-        __pyx_t_2 = __pyx_t_7;
+        __pyx_t_1 = __pyx_t_7;
       } else {
-        __pyx_t_2 = __pyx_t_3;
+        __pyx_t_1 = (__pyx_t_3 != 0);
       }
-      if (__pyx_t_2) {
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1906
  *             if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP:
@@ -21880,8 +22035,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         # reuse existing nsmap unless redefined in nsmap parameter
  *         temp = _value.nsmap
  */
-  __pyx_t_2 = __Pyx_TypeCheck(__pyx_v__value, ((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement)); 
-  if (__pyx_t_2) {
+  __pyx_t_1 = __Pyx_TypeCheck(__pyx_v__value, ((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement)); 
+  __pyx_t_3 = (__pyx_t_1 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1909
  *     if isinstance(_value, ObjectifiedDataElement):
@@ -21902,12 +22058,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             temp = dict(temp)
  *             temp.update(nsmap)
  */
-    __pyx_t_2 = (__pyx_v_temp != Py_None);
-    if (__pyx_t_2) {
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_7 = __pyx_t_3;
+    __pyx_t_3 = (__pyx_v_temp != Py_None);
+    if (__pyx_t_3) {
+      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __pyx_t_1;
     } else {
-      __pyx_t_7 = __pyx_t_2;
+      __pyx_t_7 = __pyx_t_3;
     }
     if (__pyx_t_7) {
 
@@ -21986,12 +22142,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
     __pyx_t_7 = (__pyx_v_temp != Py_None);
     if (__pyx_t_7) {
-      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_3 = __pyx_t_2;
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __pyx_t_3;
     } else {
-      __pyx_t_3 = __pyx_t_7;
+      __pyx_t_1 = __pyx_t_7;
     }
-    if (__pyx_t_3) {
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1917
  *         temp = _value.attrib
@@ -22053,14 +22209,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             dict_result = python.PyDict_GetItem(_attributes,
  *                                                 XML_SCHEMA_INSTANCE_TYPE_ATTR)
  */
-    __pyx_t_3 = (__pyx_v__xsi == Py_None);
-    if (__pyx_t_3) {
+    __pyx_t_1 = (__pyx_v__xsi == Py_None);
+    if ((__pyx_t_1 != 0)) {
       __pyx_t_7 = (__pyx_v__pytype == Py_None);
-      __pyx_t_2 = __pyx_t_7;
+      __pyx_t_3 = (__pyx_t_7 != 0);
     } else {
-      __pyx_t_2 = __pyx_t_3;
+      __pyx_t_3 = (__pyx_t_1 != 0);
     }
-    if (__pyx_t_2) {
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1924
  *         if _xsi is None and _pytype is None:
@@ -22081,8 +22237,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                 _xsi = <object>dict_result
  *             dict_result = python.PyDict_GetItem(_attributes, PYTYPE_ATTRIBUTE)
  */
-      __pyx_t_2 = (__pyx_v_dict_result != NULL);
-      if (__pyx_t_2) {
+      __pyx_t_3 = ((__pyx_v_dict_result != NULL) != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1926
  *                                                 XML_SCHEMA_INSTANCE_TYPE_ATTR)
@@ -22117,8 +22273,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                 _pytype = <object>dict_result
  * 
  */
-      __pyx_t_2 = (__pyx_v_dict_result != NULL);
-      if (__pyx_t_2) {
+      __pyx_t_3 = ((__pyx_v_dict_result != NULL) != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1929
  *             dict_result = python.PyDict_GetItem(_attributes, PYTYPE_ATTRIBUTE)
@@ -22147,8 +22303,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         if u':' in _xsi:
  *             prefix, name = _xsi.split(u':', 1)
  */
-  __pyx_t_2 = (__pyx_v__xsi != Py_None);
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_v__xsi != Py_None);
+  __pyx_t_1 = (__pyx_t_3 != 0);
+  if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1932
  * 
@@ -22157,8 +22314,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             prefix, name = _xsi.split(u':', 1)
  *             ns = nsmap.get(prefix)
  */
-    __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) {
+    __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_37), __pyx_v__xsi, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = (__pyx_t_1 != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1933
  *     if _xsi is not None:
@@ -22257,9 +22415,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         elif nsmap is _DEFAULT_NSMAP:
  */
       __pyx_t_6 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      if (__pyx_t_2) {
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1936
  *             ns = nsmap.get(prefix)
@@ -22283,8 +22441,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             name = _xsi
  *             _xsi = u'xsd:' + _xsi
  */
-    __pyx_t_2 = (__pyx_v_nsmap == ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
-    if (__pyx_t_2) {
+    __pyx_t_3 = (__pyx_v_nsmap == ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
+    __pyx_t_1 = (__pyx_t_3 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1938
  *                 raise ValueError, u"XSD types require the XSD namespace"
@@ -22435,9 +22594,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                         _xsi = prefix + u':' + _xsi
  */
         __pyx_t_4 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-        if (__pyx_t_2) {
+        if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1944
  *             for prefix, ns in nsmap.items():
@@ -22446,12 +22605,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                         _xsi = prefix + u':' + _xsi
  *                     break
  */
-          __pyx_t_2 = (__pyx_v_prefix != Py_None);
-          if (__pyx_t_2) {
+          __pyx_t_1 = (__pyx_v_prefix != Py_None);
+          if (__pyx_t_1) {
             __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __pyx_t_7 = __pyx_t_3;
           } else {
-            __pyx_t_7 = __pyx_t_2;
+            __pyx_t_7 = __pyx_t_1;
           }
           if (__pyx_t_7) {
 
@@ -22520,7 +22679,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, _xsi)
  */
     __pyx_t_7 = (__pyx_v__pytype == Py_None);
-    if (__pyx_t_7) {
+    __pyx_t_1 = (__pyx_t_7 != 0);
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1952
  *         if _pytype is None:
@@ -22541,8 +22701,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                 dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, name)
  *             if dict_result is not NULL:
  */
-      __pyx_t_7 = (__pyx_v_dict_result == NULL);
-      if (__pyx_t_7) {
+      __pyx_t_1 = ((__pyx_v_dict_result == NULL) != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1954
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, _xsi)
@@ -22566,8 +22726,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                 _pytype = (<PyType>dict_result).name
  * 
  */
-      __pyx_t_7 = (__pyx_v_dict_result != NULL);
-      if (__pyx_t_7) {
+      __pyx_t_1 = ((__pyx_v_dict_result != NULL) != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1956
  *                 dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, name)
@@ -22598,7 +22758,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         _pytype = _pytypename(_value)
  * 
  */
-  __pyx_t_7 = (__pyx_v__pytype == Py_None);
+  __pyx_t_1 = (__pyx_v__pytype == Py_None);
+  __pyx_t_7 = (__pyx_t_1 != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1959
@@ -22627,9 +22788,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_7 = (__pyx_v__value == Py_None);
   if (__pyx_t_7) {
     __pyx_t_6 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__str), Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_t_3 = __pyx_t_2;
+    __pyx_t_3 = __pyx_t_1;
   } else {
     __pyx_t_3 = __pyx_t_7;
   }
@@ -22673,7 +22834,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         strval = _value
  *     elif isinstance(_value, bool):
  */
-  __pyx_t_3 = _isString(__pyx_v__value);
+  __pyx_t_3 = (_isString(__pyx_v__value) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1965
@@ -22699,7 +22860,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __Pyx_INCREF(__pyx_t_6);
   __pyx_t_3 = PyObject_IsInstance(__pyx_v__value, __pyx_t_6); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  if (__pyx_t_3) {
+  __pyx_t_7 = (__pyx_t_3 != 0);
+  if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1967
  *         strval = _value
@@ -22708,8 +22870,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             strval = u"true"
  *         else:
  */
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__value); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (__pyx_t_3) {
+    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v__value); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1968
  *     elif isinstance(_value, bool):
@@ -22768,8 +22930,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             stringify = (<PyType>dict_result).stringify
  *         strval = stringify(_value)
  */
-    __pyx_t_3 = (__pyx_v_dict_result != NULL);
-    if (__pyx_t_3) {
+    __pyx_t_7 = ((__pyx_v_dict_result != NULL) != 0);
+    if (__pyx_t_7) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1975
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)
@@ -22814,7 +22976,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         if _pytype == u"NoneType" or _pytype == u"none":
  *             strval = None
  */
-  __pyx_t_3 = (__pyx_v__pytype != Py_None);
+  __pyx_t_7 = (__pyx_v__pytype != Py_None);
+  __pyx_t_3 = (__pyx_t_7 != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1979
@@ -22831,11 +22994,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_t_8 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__none), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-      __pyx_t_2 = __pyx_t_7;
+      __pyx_t_1 = __pyx_t_7;
     } else {
-      __pyx_t_2 = __pyx_t_3;
+      __pyx_t_1 = __pyx_t_3;
     }
-    if (__pyx_t_2) {
+    if (__pyx_t_1) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1980
  *     if _pytype is not None:
@@ -22879,8 +23042,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                 type_check = (<PyType>dict_result).type_check
  *                 if type_check is not None:
  */
-      __pyx_t_2 = (__pyx_v_dict_result != NULL);
-      if (__pyx_t_2) {
+      __pyx_t_1 = ((__pyx_v_dict_result != NULL) != 0);
+      if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1986
  *             dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)
@@ -22901,8 +23064,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *                     type_check(strval)
  * 
  */
-        __pyx_t_2 = (__pyx_v_type_check != Py_None);
-        if (__pyx_t_2) {
+        __pyx_t_1 = (__pyx_v_type_check != Py_None);
+        __pyx_t_3 = (__pyx_t_1 != 0);
+        if (__pyx_t_3) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1988
  *                 type_check = (<PyType>dict_result).type_check
@@ -23062,7 +23226,7 @@ static int __pyx_pf_4lxml_9objectify_10ObjectPath___init__(struct __pyx_obj_4lxm
  *             self._path = _parseObjectPathString(path)
  *             self._path_str = path
  */
-  __pyx_t_1 = _isString(__pyx_v_path);
+  __pyx_t_1 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":23
@@ -23208,7 +23372,7 @@ static void __pyx_pf_4lxml_9objectify_10ObjectPath_2__dealloc__(struct __pyx_obj
  *             python.PyMem_Free(self._c_path)
  * 
  */
-  __pyx_t_1 = (__pyx_v_self->_c_path != NULL);
+  __pyx_t_1 = ((__pyx_v_self->_c_path != NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":34
@@ -23378,7 +23542,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_6__call__(struct __pyx_o
  *             default = python.PyTuple_GET_ITEM(default, 0)
  *             python.Py_INCREF(default)
  */
-  __pyx_t_1 = (__pyx_v_use_default == 1);
+  __pyx_t_1 = ((__pyx_v_use_default == 1) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":49
@@ -23421,7 +23585,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_6__call__(struct __pyx_o
  *             raise TypeError, u"invalid number of arguments: needs one or two"
  *         return _findObjectPath(root, self._c_path, self._path_len,
  */
-  __pyx_t_1 = (__pyx_v_use_default > 1);
+  __pyx_t_1 = ((__pyx_v_use_default > 1) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":53
@@ -23476,9 +23640,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_6__call__(struct __pyx_o
 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;
+  CYTHON_UNUSED int __pyx_lineno = 0;
+  CYTHON_UNUSED const char *__pyx_filename = NULL;
+  CYTHON_UNUSED int __pyx_clineno = 0;
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("hasattr (wrapper)", 0);
@@ -23899,13 +24063,13 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
+  int __pyx_t_3;
   PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
   PyObject *__pyx_t_6 = NULL;
   PyObject *__pyx_t_7 = NULL;
-  PyObject *(*__pyx_t_8)(PyObject *);
-  int __pyx_t_9;
+  PyObject *__pyx_t_8 = NULL;
+  PyObject *(*__pyx_t_9)(PyObject *);
   int __pyx_t_10;
   int __pyx_t_11;
   int __pyx_lineno = 0;
@@ -23934,7 +24098,8 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *     path = path.strip()
  */
   __pyx_t_2 = PyBytes_Check(__pyx_v_path); 
-  if (__pyx_t_2) {
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":97
  *     cdef list new_path = []
@@ -23965,12 +24130,12 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  */
   __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);
+  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_v_path);
-  __pyx_v_path = __pyx_t_3;
-  __pyx_t_3 = 0;
+  __pyx_v_path = __pyx_t_4;
+  __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":99
  *         path = (<bytes>path).decode('ascii')
@@ -23979,10 +24144,10 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         return [_RELATIVE_PATH_SEGMENT]
  *     path_pos = 0
  */
-  __pyx_t_3 = PyObject_RichCompare(__pyx_v_path, ((PyObject *)__pyx_kp_u_8), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  if (__pyx_t_2) {
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_path, ((PyObject *)__pyx_kp_u_8), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":100
  *     path = path.strip()
@@ -23992,13 +24157,13 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *     while python.PyUnicode_GET_SIZE(path) > 0:
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = PyList_New(1); 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);
+    __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
-    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
+    PyList_SET_ITEM(__pyx_t_4, 0, __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
     __Pyx_GIVEREF(__pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
-    __pyx_r = ((PyObject *)__pyx_t_3);
-    __pyx_t_3 = 0;
+    __pyx_r = ((PyObject *)__pyx_t_4);
+    __pyx_t_4 = 0;
     goto __pyx_L0;
     goto __pyx_L4;
   }
@@ -24022,8 +24187,8 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         if match is None:
  */
   while (1) {
-    __pyx_t_2 = (PyUnicode_GET_SIZE(__pyx_v_path) > 0);
-    if (!__pyx_t_2) break;
+    __pyx_t_3 = ((PyUnicode_GET_SIZE(__pyx_v_path) > 0) != 0);
+    if (!__pyx_t_3) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":103
  *     path_pos = 0
@@ -24032,17 +24197,17 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         if match is None:
  *             break
  */
-    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __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[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_path);
-    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_path);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_path);
     __Pyx_GIVEREF(__pyx_v_path);
     __Pyx_INCREF(__pyx_v_path_pos);
-    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_path_pos);
+    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_path_pos);
     __Pyx_GIVEREF(__pyx_v_path_pos);
-    __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __Pyx_XDECREF(__pyx_v_match);
     __pyx_v_match = __pyx_t_1;
     __pyx_t_1 = 0;
@@ -24054,7 +24219,8 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *             break
  * 
  */
-    __pyx_t_2 = (__pyx_v_match == Py_None);
+    __pyx_t_3 = (__pyx_v_match == Py_None);
+    __pyx_t_2 = (__pyx_t_3 != 0);
     if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":105
@@ -24078,11 +24244,11 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  */
     __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_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
-      PyObject* sequence = __pyx_t_3;
+    if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
+      PyObject* sequence = __pyx_t_4;
       #if CYTHON_COMPILING_IN_CPYTHON
       Py_ssize_t size = Py_SIZE(sequence);
       #else
@@ -24096,49 +24262,49 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
         __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
-        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
-        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); 
-        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); 
+        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 2); 
+        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); 
       } else {
         __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
-        __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
-        __pyx_t_5 = PyList_GET_ITEM(sequence, 2); 
-        __pyx_t_6 = PyList_GET_ITEM(sequence, 3); 
+        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
+        __pyx_t_6 = PyList_GET_ITEM(sequence, 2); 
+        __pyx_t_7 = PyList_GET_ITEM(sequence, 3); 
       }
       __Pyx_INCREF(__pyx_t_1);
-      __Pyx_INCREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
+      __Pyx_INCREF(__pyx_t_7);
       #else
       Py_ssize_t i;
-      PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6};
+      PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7};
       for (i=0; i < 4; i++) {
         PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(item);
         *(temps[i]) = item;
       }
       #endif
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_4,&__pyx_t_5,&__pyx_t_6};
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_7);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
+      PyObject** temps[4] = {&__pyx_t_1,&__pyx_t_5,&__pyx_t_6,&__pyx_t_7};
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
       for (index=0; index < 4; index++) {
-        PyObject* item = __pyx_t_8(__pyx_t_7); if (unlikely(!item)) goto __pyx_L8_unpacking_failed;
+        PyObject* item = __pyx_t_9(__pyx_t_8); if (unlikely(!item)) goto __pyx_L8_unpacking_failed;
         __Pyx_GOTREF(item);
         *(temps[index]) = item;
       }
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_8 = NULL;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 4) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L9_unpacking_done;
       __pyx_L8_unpacking_failed:;
-      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_8 = NULL;
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
       {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L9_unpacking_done:;
@@ -24147,14 +24313,14 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
     __pyx_v_dot = __pyx_t_1;
     __pyx_t_1 = 0;
     __Pyx_XDECREF(__pyx_v_ns);
-    __pyx_v_ns = __pyx_t_4;
-    __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_5;
+    __pyx_v_ns = __pyx_t_5;
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_index);
-    __pyx_v_index = __pyx_t_6;
+    __Pyx_XDECREF(__pyx_v_name);
+    __pyx_v_name = __pyx_t_6;
     __pyx_t_6 = 0;
+    __Pyx_XDECREF(__pyx_v_index);
+    __pyx_v_index = __pyx_t_7;
+    __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":108
  * 
@@ -24164,14 +24330,14 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         else:
  */
     __pyx_t_2 = (__pyx_v_index == Py_None);
-    if (!__pyx_t_2) {
-      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_index); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_10 = (!__pyx_t_9);
-      __pyx_t_9 = __pyx_t_10;
+    if (!(__pyx_t_2 != 0)) {
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_index); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = ((!__pyx_t_3) != 0);
+      __pyx_t_3 = __pyx_t_10;
     } else {
-      __pyx_t_9 = __pyx_t_2;
+      __pyx_t_3 = (__pyx_t_2 != 0);
     }
-    if (__pyx_t_9) {
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":109
  *         dot, ns, name, index = match.groups()
@@ -24194,17 +24360,17 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         has_dot = dot == u'.'
  *         if python.PyList_GET_SIZE(new_path) == 0:
  */
-      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __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[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_index);
-      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_index);
+      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_index);
       __Pyx_GIVEREF(__pyx_v_index);
-      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+      __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_v_index);
-      __pyx_v_index = __pyx_t_6;
-      __pyx_t_6 = 0;
+      __pyx_v_index = __pyx_t_7;
+      __pyx_t_7 = 0;
     }
     __pyx_L10:;
 
@@ -24215,10 +24381,10 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         if python.PyList_GET_SIZE(new_path) == 0:
  *             if has_dot:
  */
-    __pyx_t_6 = PyObject_RichCompare(__pyx_v_dot, ((PyObject *)__pyx_kp_u_8), Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely((__pyx_t_9 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_v_has_dot = __pyx_t_9;
+    __pyx_t_7 = PyObject_RichCompare(__pyx_v_dot, ((PyObject *)__pyx_kp_u_8), Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+    __pyx_v_has_dot = __pyx_t_3;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":113
  *             index = int(index)
@@ -24227,8 +24393,8 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *             if has_dot:
  *                 # path '.child' => ignore root
  */
-    __pyx_t_9 = (PyList_GET_SIZE(((PyObject *)__pyx_v_new_path)) == 0);
-    if (__pyx_t_9) {
+    __pyx_t_3 = ((PyList_GET_SIZE(((PyObject *)__pyx_v_new_path)) == 0) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":114
  *         has_dot = dot == u'.'
@@ -24237,7 +24403,8 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *                 # path '.child' => ignore root
  *                 new_path.append(_RELATIVE_PATH_SEGMENT)
  */
-      if (__pyx_v_has_dot) {
+      __pyx_t_3 = (__pyx_v_has_dot != 0);
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":116
  *             if has_dot:
@@ -24246,10 +24413,10 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *             elif index != 0:
  *                 raise ValueError, u"index not allowed on root node"
  */
-        __pyx_t_6 = __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT;
-        __Pyx_INCREF(__pyx_t_6);
-        __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;
+        __pyx_t_7 = __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT;
+        __Pyx_INCREF(__pyx_t_7);
+        __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_new_path, __pyx_t_7); 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_7); __pyx_t_7 = 0;
         goto __pyx_L12;
       }
 
@@ -24260,10 +24427,10 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *                 raise ValueError, u"index not allowed on root node"
  *         elif not has_dot:
  */
-      __pyx_t_6 = PyObject_RichCompare(__pyx_v_index, __pyx_int_0, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      if (__pyx_t_9) {
+      __pyx_t_7 = PyObject_RichCompare(__pyx_v_index, __pyx_int_0, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+      if (__pyx_t_3) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":118
  *                 new_path.append(_RELATIVE_PATH_SEGMENT)
@@ -24287,8 +24454,8 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *             raise ValueError, u"invalid path"
  *         if ns is not None:
  */
-    __pyx_t_9 = (!__pyx_v_has_dot);
-    if (__pyx_t_9) {
+    __pyx_t_3 = ((!(__pyx_v_has_dot != 0)) != 0);
+    if (__pyx_t_3) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":120
  *                 raise ValueError, u"index not allowed on root node"
@@ -24310,8 +24477,9 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *             ns = python.PyUnicode_AsUTF8String(ns)
  *         name = python.PyUnicode_AsUTF8String(name)
  */
-    __pyx_t_9 = (__pyx_v_ns != Py_None);
-    if (__pyx_t_9) {
+    __pyx_t_3 = (__pyx_v_ns != Py_None);
+    __pyx_t_2 = (__pyx_t_3 != 0);
+    if (__pyx_t_2) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":122
  *             raise ValueError, u"invalid path"
@@ -24320,11 +24488,11 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         name = python.PyUnicode_AsUTF8String(name)
  *         new_path.append( (ns, name, index) )
  */
-      __pyx_t_6 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_ns)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_7 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_ns)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_v_ns);
-      __pyx_v_ns = __pyx_t_6;
-      __pyx_t_6 = 0;
+      __pyx_v_ns = __pyx_t_7;
+      __pyx_t_7 = 0;
       goto __pyx_L13;
     }
     __pyx_L13:;
@@ -24336,11 +24504,11 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         new_path.append( (ns, name, index) )
  * 
  */
-    __pyx_t_6 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_name)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_t_7 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_name)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_6;
-    __pyx_t_6 = 0;
+    __pyx_v_name = __pyx_t_7;
+    __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":124
  *             ns = python.PyUnicode_AsUTF8String(ns)
@@ -24349,19 +24517,19 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  * 
  *         path_pos = match.end()
  */
-    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
+    __pyx_t_7 = PyTuple_New(3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
     __Pyx_INCREF(__pyx_v_ns);
-    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_ns);
+    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_ns);
     __Pyx_GIVEREF(__pyx_v_ns);
     __Pyx_INCREF(__pyx_v_name);
-    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_v_name);
+    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_v_name);
     __Pyx_GIVEREF(__pyx_v_name);
     __Pyx_INCREF(__pyx_v_index);
-    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_index);
+    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_v_index);
     __Pyx_GIVEREF(__pyx_v_index);
-    __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;
+    __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_new_path, ((PyObject *)__pyx_t_7)); 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_7)); __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":126
  *         new_path.append( (ns, name, index) )
@@ -24370,14 +24538,14 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *     if python.PyList_GET_SIZE(new_path) == 0 or \
  *            python.PyUnicode_GET_SIZE(path) > path_pos:
  */
-    __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);
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_match, __pyx_n_s__end); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_7);
+    __pyx_t_4 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_DECREF(__pyx_v_path_pos);
-    __pyx_v_path_pos = __pyx_t_3;
-    __pyx_t_3 = 0;
+    __pyx_v_path_pos = __pyx_t_4;
+    __pyx_t_4 = 0;
   }
   __pyx_L6_break:;
 
@@ -24388,8 +24556,8 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *            python.PyUnicode_GET_SIZE(path) > path_pos:
  *         raise ValueError, u"invalid path"
  */
-  __pyx_t_9 = (PyList_GET_SIZE(((PyObject *)__pyx_v_new_path)) == 0);
-  if (!__pyx_t_9) {
+  __pyx_t_2 = (PyList_GET_SIZE(((PyObject *)__pyx_v_new_path)) == 0);
+  if (!__pyx_t_2) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":128
  *         path_pos = match.end()
@@ -24398,15 +24566,15 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *         raise ValueError, u"invalid path"
  *     return new_path
  */
-    __pyx_t_3 = PyInt_FromSsize_t(PyUnicode_GET_SIZE(__pyx_v_path)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_v_path_pos, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __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[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_t_10 = __pyx_t_2;
+    __pyx_t_4 = PyInt_FromSsize_t(PyUnicode_GET_SIZE(__pyx_v_path)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __pyx_t_7 = PyObject_RichCompare(__pyx_t_4, __pyx_v_path_pos, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+    __pyx_t_10 = __pyx_t_3;
   } else {
-    __pyx_t_10 = __pyx_t_9;
+    __pyx_t_10 = __pyx_t_2;
   }
   if (__pyx_t_10) {
 
@@ -24439,11 +24607,11 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_6);
   __Pyx_XDECREF(__pyx_t_7);
+  __Pyx_XDECREF(__pyx_t_8);
   __Pyx_AddTraceback("lxml.objectify._parseObjectPathString", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -24704,7 +24872,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
  *                 index = 0
  *             else:
  */
-      __pyx_t_8 = (__pyx_v_index_pos == NULL);
+      __pyx_t_8 = ((__pyx_v_index_pos == NULL) != 0);
       if (__pyx_t_8) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":147
@@ -24737,7 +24905,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
  *                     raise ValueError, u"index must be enclosed in []"
  *                 index = int(index_pos[1:index_end - index_pos])
  */
-        __pyx_t_8 = (__pyx_v_index_end == NULL);
+        __pyx_t_8 = ((__pyx_v_index_end == NULL) != 0);
         if (__pyx_t_8) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":151
@@ -24853,7 +25021,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
  *         raise ValueError, u"invalid path"
  *     return new_path
  */
-  __pyx_t_7 = (PyList_GET_SIZE(((PyObject *)__pyx_v_new_path)) == 0);
+  __pyx_t_7 = ((PyList_GET_SIZE(((PyObject *)__pyx_v_new_path)) == 0) != 0);
   if (__pyx_t_7) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":158
@@ -24951,7 +25119,7 @@ static __pyx_t_4lxml_9objectify__ObjectPath *__pyx_f_4lxml_9objectify__buildObje
  *         raise MemoryError()
  *     c_path = c_path_segments
  */
-  __pyx_t_1 = (__pyx_v_c_path_segments == NULL);
+  __pyx_t_1 = ((__pyx_v_c_path_segments == NULL) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":167
@@ -25092,7 +25260,7 @@ static __pyx_t_4lxml_9objectify__ObjectPath *__pyx_f_4lxml_9objectify__buildObje
  *         c_path[0].index = index
  */
     __pyx_t_1 = (__pyx_v_href != Py_None);
-    if (__pyx_t_1) {
+    if ((__pyx_t_1 != 0)) {
       __pyx_t_11 = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_href);
     } else {
       __pyx_t_11 = NULL;
@@ -25107,7 +25275,7 @@ static __pyx_t_4lxml_9objectify__ObjectPath *__pyx_f_4lxml_9objectify__buildObje
  *         c_path += 1
  */
     __pyx_t_1 = (__pyx_v_name != Py_None);
-    if (__pyx_t_1) {
+    if ((__pyx_t_1 != 0)) {
       __pyx_t_11 = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name);
     } else {
       __pyx_t_11 = NULL;
@@ -25231,9 +25399,9 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *         c_href = tree._getNs(c_node)
  *     if not cetree.tagMatches(c_node, c_href, c_name):
  */
-  __pyx_t_3 = (__pyx_v_c_href == NULL);
+  __pyx_t_3 = ((__pyx_v_c_href == NULL) != 0);
   if (!__pyx_t_3) {
-    __pyx_t_4 = ((__pyx_v_c_href[0]) == '\x00');
+    __pyx_t_4 = (((__pyx_v_c_href[0]) == '\x00') != 0);
     __pyx_t_5 = __pyx_t_4;
   } else {
     __pyx_t_5 = __pyx_t_3;
@@ -25259,7 +25427,7 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *         if use_default:
  *             return default_value
  */
-  __pyx_t_5 = (!tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_name));
+  __pyx_t_5 = ((!(tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_name) != 0)) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":188
@@ -25269,7 +25437,8 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *             return default_value
  *         else:
  */
-    if (__pyx_v_use_default) {
+    __pyx_t_5 = (__pyx_v_use_default != 0);
+    if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":189
  *     if not cetree.tagMatches(c_node, c_href, c_name):
@@ -25325,7 +25494,7 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *         if c_path_len <= 0:
  */
   while (1) {
-    __pyx_t_5 = (__pyx_v_c_node != NULL);
+    __pyx_t_5 = ((__pyx_v_c_node != NULL) != 0);
     if (!__pyx_t_5) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":196
@@ -25344,7 +25513,7 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *             break
  * 
  */
-    __pyx_t_5 = (__pyx_v_c_path_len <= 0);
+    __pyx_t_5 = ((__pyx_v_c_path_len <= 0) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":198
@@ -25375,7 +25544,7 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *             c_href = c_path[0].href # otherwise: keep parent namespace
  *         c_name = tree.xmlDictExists(c_node.doc.dict, c_path[0].name, -1)
  */
-    __pyx_t_5 = ((__pyx_v_c_path[0]).href != NULL);
+    __pyx_t_5 = (((__pyx_v_c_path[0]).href != NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":202
@@ -25407,7 +25576,7 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *             c_name = c_path[0].name
  *             c_node = NULL
  */
-    __pyx_t_5 = (__pyx_v_c_name == NULL);
+    __pyx_t_5 = ((__pyx_v_c_name == NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":205
@@ -25458,7 +25627,7 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *         c_node = _findFollowingSibling(c_node, c_href, c_name, c_index)
  * 
  */
-    if ((__pyx_v_c_index < 0)) {
+    if (((__pyx_v_c_index < 0) != 0)) {
       __pyx_t_1 = __pyx_v_c_node->last;
     } else {
       __pyx_t_1 = __pyx_v_c_node->children;
@@ -25483,7 +25652,7 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *         return cetree.elementFactory(root._doc, c_node)
  *     elif use_default:
  */
-  __pyx_t_5 = (__pyx_v_c_node != NULL);
+  __pyx_t_5 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":213
@@ -25512,7 +25681,8 @@ static PyObject *__pyx_f_4lxml_9objectify__findObjectPath(struct LxmlElement *__
  *         return default_value
  *     else:
  */
-  if (__pyx_v_use_default) {
+  __pyx_t_5 = (__pyx_v_use_default != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":215
  *         return cetree.elementFactory(root._doc, c_node)
@@ -25610,7 +25780,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *         raise TypeError, u"cannot update root node"
  * 
  */
-  __pyx_t_1 = (__pyx_v_c_path_len == 1);
+  __pyx_t_1 = ((__pyx_v_c_path_len == 1) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":231
@@ -25663,9 +25833,9 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *         c_href = tree._getNs(c_node)
  *     if not cetree.tagMatches(c_node, c_href, c_name):
  */
-  __pyx_t_1 = (__pyx_v_c_href == NULL);
+  __pyx_t_1 = ((__pyx_v_c_href == NULL) != 0);
   if (!__pyx_t_1) {
-    __pyx_t_4 = ((__pyx_v_c_href[0]) == '\x00');
+    __pyx_t_4 = (((__pyx_v_c_href[0]) == '\x00') != 0);
     __pyx_t_5 = __pyx_t_4;
   } else {
     __pyx_t_5 = __pyx_t_1;
@@ -25691,7 +25861,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *         raise ValueError, \
  *             u"root element does not match: need %s, got %s" % \
  */
-  __pyx_t_5 = (!tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_name));
+  __pyx_t_5 = ((!(tagMatches(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_name) != 0)) != 0);
   if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":241
@@ -25731,7 +25901,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *         c_path += 1
  */
   while (1) {
-    __pyx_t_5 = (__pyx_v_c_path_len > 1);
+    __pyx_t_5 = ((__pyx_v_c_path_len > 1) != 0);
     if (!__pyx_t_5) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":244
@@ -25759,7 +25929,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *             c_href = c_path[0].href # otherwise: keep parent namespace
  *         c_index = c_path[0].index
  */
-    __pyx_t_5 = ((__pyx_v_c_path[0]).href != NULL);
+    __pyx_t_5 = (((__pyx_v_c_path[0]).href != NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":247
@@ -25801,7 +25971,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *             c_name = c_path[0].name
  *             c_child = NULL
  */
-    __pyx_t_5 = (__pyx_v_c_name == NULL);
+    __pyx_t_5 = ((__pyx_v_c_name == NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":251
@@ -25833,7 +26003,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *             c_child = _findFollowingSibling(c_child, c_href, c_name, c_index)
  * 
  */
-      if ((__pyx_v_c_index < 0)) {
+      if (((__pyx_v_c_index < 0) != 0)) {
         __pyx_t_2 = __pyx_v_c_node->last;
       } else {
         __pyx_t_2 = __pyx_v_c_node->children;
@@ -25858,7 +26028,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *             c_node = c_child
  *         elif c_index != 0:
  */
-    __pyx_t_5 = (__pyx_v_c_child != NULL);
+    __pyx_t_5 = ((__pyx_v_c_child != NULL) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":258
@@ -25879,7 +26049,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *             raise TypeError, \
  *                 u"creating indexed path attributes is not supported"
  */
-    __pyx_t_5 = (__pyx_v_c_index != 0);
+    __pyx_t_5 = ((__pyx_v_c_index != 0) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":260
@@ -25901,7 +26071,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *             _appendValue(cetree.elementFactory(root._doc, c_node),
  *                          cetree.namespacedNameFromNsName(c_href, c_name),
  */
-    __pyx_t_5 = (__pyx_v_c_path_len == 1);
+    __pyx_t_5 = ((__pyx_v_c_path_len == 1) != 0);
     if (__pyx_t_5) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":263
@@ -26012,7 +26182,8 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
  *         element = cetree.elementFactory(root._doc, c_node)
  *         _replaceElement(element, value)
  */
-  if (__pyx_v_replace) {
+  __pyx_t_5 = (__pyx_v_replace != 0);
+  if (__pyx_t_5) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":276
  *     # if we get here, the entire path was already there
@@ -26345,7 +26516,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  *             c_child = c_child.next
  */
   while (1) {
-    __pyx_t_4 = (__pyx_v_c_child != NULL);
+    __pyx_t_4 = ((__pyx_v_c_child != NULL) != 0);
     if (!__pyx_t_4) break;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":310
@@ -26356,7 +26527,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  *             if c_child is NULL:
  */
     while (1) {
-      __pyx_t_4 = (__pyx_v_c_child->type != XML_ELEMENT_NODE);
+      __pyx_t_4 = ((__pyx_v_c_child->type != XML_ELEMENT_NODE) != 0);
       if (!__pyx_t_4) break;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":311
@@ -26376,7 +26547,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  *                 return 0
  *         if c_href is tree._getNs(c_child):
  */
-      __pyx_t_4 = (__pyx_v_c_child == NULL);
+      __pyx_t_4 = ((__pyx_v_c_child == NULL) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":313
@@ -26400,7 +26571,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  *             tag = pyunicode(c_child.name)
  *         elif c_href is not NULL and tree._getNs(c_child) is NULL:
  */
-    __pyx_t_4 = (__pyx_v_c_href == _getNs(__pyx_v_c_child));
+    __pyx_t_4 = ((__pyx_v_c_href == _getNs(__pyx_v_c_child)) != 0);
     if (__pyx_t_4) {
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":315
@@ -26425,9 +26596,9 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  *             # special case: parent has namespace, child does not
  *             tag = u'{}' + pyunicode(c_child.name)
  */
-    __pyx_t_4 = (__pyx_v_c_href != NULL);
+    __pyx_t_4 = ((__pyx_v_c_href != NULL) != 0);
     if (__pyx_t_4) {
-      __pyx_t_5 = (_getNs(__pyx_v_c_child) == NULL);
+      __pyx_t_5 = ((_getNs(__pyx_v_c_child) == NULL) != 0);
       __pyx_t_6 = __pyx_t_5;
     } else {
       __pyx_t_6 = __pyx_t_4;
@@ -26484,7 +26655,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  *         tags[tag] = count
  *         if count > 0:
  */
-    if ((__pyx_v_dict_result != NULL)) {
+    if (((__pyx_v_dict_result != NULL) != 0)) {
       __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_v_dict_result), __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __pyx_t_7 = __pyx_t_1;
@@ -26712,110 +26883,123 @@ static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_PyType[] = {
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_PyType = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_9objectify_PyType = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.objectify.PyType"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_PyType), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_9objectify_PyType, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
+  __pyx_pw_4lxml_9objectify_6PyType_3__repr__, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_9objectify_PyType, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_9objectify_PyType, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_9objectify_6PyType_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_9objectify_PyType, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_PyType = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+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;
+  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);
+  p->_element_factory = Py_None; Py_INCREF(Py_None);
+  return o;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_PyType = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+static void __pyx_tp_dealloc_4lxml_9objectify__ObjectifyElementMakerCaller(PyObject *o) {
+  struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *p = (struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)o;
+  PyObject_GC_UnTrack(o);
+  Py_CLEAR(p->_tag);
+  Py_CLEAR(p->_nsmap);
+  Py_CLEAR(p->_element_factory);
+  (*Py_TYPE(o)->tp_free)(o);
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_PyType = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static int __pyx_tp_traverse_4lxml_9objectify__ObjectifyElementMakerCaller(PyObject *o, visitproc v, void *a) {
+  int e;
+  struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *p = (struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)o;
+  if (p->_tag) {
+    e = (*v)(p->_tag, a); if (e) return e;
+  }
+  if (p->_nsmap) {
+    e = (*v)(p->_nsmap, a); if (e) return e;
+  }
+  if (p->_element_factory) {
+    e = (*v)(p->_element_factory, a); if (e) return e;
+  }
+  return 0;
+}
+
+static int __pyx_tp_clear_4lxml_9objectify__ObjectifyElementMakerCaller(PyObject *o) {
+  struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *p = (struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_tag);
+  p->_tag = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_nsmap);
+  p->_nsmap = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_element_factory);
+  p->_element_factory = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+
+static PyMethodDef __pyx_methods_4lxml_9objectify__ObjectifyElementMakerCaller[] = {
+  {0, 0, 0, 0}
 };
 
-static PyTypeObject __pyx_type_4lxml_9objectify_PyType = {
+static PyTypeObject __pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.PyType"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_PyType), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.objectify._ObjectifyElementMakerCaller"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_PyType, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -26824,35 +27008,35 @@ static PyTypeObject __pyx_type_4lxml_9objectify_PyType = {
   #else
   0, /*reserved*/
   #endif
-  __pyx_pw_4lxml_9objectify_6PyType_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number_PyType, /*tp_as_number*/
-  &__pyx_tp_as_sequence_PyType, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_PyType, /*tp_as_mapping*/
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  0, /*tp_call*/
+  __pyx_pw_4lxml_9objectify_28_ObjectifyElementMakerCaller_1__call__, /*tp_call*/
   0, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_PyType, /*tp_as_buffer*/
-  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*/
+  0, /*tp_as_buffer*/
+  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*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   0, /*tp_iter*/
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_PyType, /*tp_methods*/
+  __pyx_methods_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_9objectify_PyType, /*tp_getset*/
+  0, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_9objectify_6PyType_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_PyType, /*tp_new*/
+  __pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -26947,64 +27131,6 @@ static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_ObjectifiedElement[] =
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_ObjectifiedElement = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
 static PySequenceMethods __pyx_tp_as_sequence_ObjectifiedElement = {
   __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
   0, /*sq_concat*/
@@ -27024,27 +27150,6 @@ static PyMappingMethods __pyx_tp_as_mapping_ObjectifiedElement = {
   __pyx_mp_ass_subscript_4lxml_9objectify_ObjectifiedElement, /*mp_ass_subscript*/
 };
 
-static PyBufferProcs __pyx_tp_as_buffer_ObjectifiedElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifiedElement = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.objectify.ObjectifiedElement"), /*tp_name*/
@@ -27060,7 +27165,7 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifiedElement = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_ObjectifiedElement, /*tp_as_number*/
+  0, /*tp_as_number*/
   &__pyx_tp_as_sequence_ObjectifiedElement, /*tp_as_sequence*/
   &__pyx_tp_as_mapping_ObjectifiedElement, /*tp_as_mapping*/
   0, /*tp_hash*/
@@ -27068,7 +27173,7 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifiedElement = {
   __pyx_pw_4lxml_9objectify_18ObjectifiedElement_3__str__, /*tp_str*/
   __pyx_tp_getattro_4lxml_9objectify_ObjectifiedElement, /*tp_getattro*/
   __pyx_tp_setattro_4lxml_9objectify_ObjectifiedElement, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ObjectifiedElement, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -27121,140 +27226,30 @@ static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_ObjectifiedDataElement[
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_ObjectifiedDataElement = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
+static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifiedDataElement = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.objectify.ObjectifiedDataElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_ObjectifiedDataElement), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_9objectify_ObjectifiedElement, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ObjectifiedDataElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ObjectifiedDataElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ObjectifiedDataElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifiedDataElement = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.ObjectifiedDataElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_ObjectifiedDataElement), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_ObjectifiedElement, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
+  0, /*tp_compare*/
   #else
   0, /*reserved*/
   #endif
   __pyx_pw_4lxml_9objectify_22ObjectifiedDataElement_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number_ObjectifiedDataElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ObjectifiedDataElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ObjectifiedDataElement, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   0, /*tp_call*/
   __pyx_pw_4lxml_9objectify_22ObjectifiedDataElement_1__str__, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ObjectifiedDataElement, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -27401,58 +27396,6 @@ static PyNumberMethods __pyx_tp_as_number_NumberElement = {
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_NumberElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_NumberElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_NumberElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
 static PyTypeObject __pyx_type_4lxml_9objectify_NumberElement = {
   PyVarObject_HEAD_INIT(0, 0)
   __Pyx_NAMESTR("lxml.objectify.NumberElement"), /*tp_name*/
@@ -27469,14 +27412,14 @@ static PyTypeObject __pyx_type_4lxml_9objectify_NumberElement = {
   #endif
   __pyx_pw_4lxml_9objectify_13NumberElement_13__repr__, /*tp_repr*/
   &__pyx_tp_as_number_NumberElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_NumberElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_NumberElement, /*tp_as_mapping*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   __pyx_pw_4lxml_9objectify_13NumberElement_21__hash__, /*tp_hash*/
   0, /*tp_call*/
   __pyx_pw_4lxml_9objectify_13NumberElement_11__str__, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_NumberElement, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -27513,257 +27456,138 @@ static PyTypeObject __pyx_type_4lxml_9objectify_NumberElement = {
   #endif
 };
 
-static PyObject *__pyx_tp_new_4lxml_9objectify_IntElement(PyTypeObject *t, PyObject *a, PyObject *k) {
+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 (unlikely(!o)) return 0;
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_9objectify_IntElement[] = {
-  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_10IntElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_9objectify_FloatElement[] = {
+  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_12FloatElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_IntElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_23__add__, /*nb_add*/
-  #else
-  0, /*nb_add*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_25__sub__, /*nb_subtract*/
-  #else
-  0, /*nb_subtract*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_27__mul__, /*nb_multiply*/
-  #else
-  0, /*nb_multiply*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_29__div__, /*nb_divide*/
-  #else
+static PyTypeObject __pyx_type_4lxml_9objectify_FloatElement = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.objectify.FloatElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_FloatElement), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_9objectify_NumberElement, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_33__mod__, /*nb_remainder*/
+  0, /*tp_compare*/
   #else
-  0, /*nb_remainder*/
+  0, /*reserved*/
   #endif
-  0, /*nb_divmod*/
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_35__pow__, /*nb_power*/
+  __pyx_pw_4lxml_9objectify_13NumberElement_13__repr__, /*tp_repr*/
   #else
-  0, /*nb_power*/
+  0, /*tp_repr*/
   #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_37__neg__, /*nb_negative*/
+  __pyx_pw_4lxml_9objectify_13NumberElement_11__str__, /*tp_str*/
   #else
-  0, /*nb_negative*/
+  0, /*tp_str*/
   #endif
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_39__pos__, /*nb_positive*/
+  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
   #else
-  0, /*nb_positive*/
+  0, /*tp_iter*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_41__abs__, /*nb_absolute*/
-  #else
-  0, /*nb_absolute*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_9objectify_FloatElement, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  0, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_9objectify_FloatElement, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_43__nonzero__, /*nb_nonzero*/
+};
+
+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 (unlikely(!o)) return 0;
+  return o;
+}
+
+static PyMethodDef __pyx_methods_4lxml_9objectify_IntElement[] = {
+  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_10IntElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_9objectify_IntElement = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.objectify.IntElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_IntElement), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_9objectify_NumberElement, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
+  #if PY_MAJOR_VERSION < 3
+  0, /*tp_compare*/
   #else
-  0, /*nb_nonzero*/
+  0, /*reserved*/
   #endif
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_45__invert__, /*nb_invert*/
+  __pyx_pw_4lxml_9objectify_13NumberElement_13__repr__, /*tp_repr*/
   #else
-  0, /*nb_invert*/
+  0, /*tp_repr*/
   #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_47__lshift__, /*nb_lshift*/
+  __pyx_pw_4lxml_9objectify_13NumberElement_11__str__, /*tp_str*/
   #else
-  0, /*nb_lshift*/
+  0, /*tp_str*/
   #endif
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
   #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_49__rshift__, /*nb_rshift*/
+  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
   #else
-  0, /*nb_rshift*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_51__and__, /*nb_and*/
-  #else
-  0, /*nb_and*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_55__xor__, /*nb_xor*/
-  #else
-  0, /*nb_xor*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_53__or__, /*nb_or*/
-  #else
-  0, /*nb_or*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_3__int__, /*nb_int*/
-  #else
-  0, /*nb_int*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_5__long__, /*nb_long*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_7__float__, /*nb_float*/
-  #else
-  0, /*nb_float*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_15__oct__, /*nb_oct*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_17__hex__, /*nb_hex*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_31__truediv__, /*nb_true_divide*/
-  #else
-  0, /*nb_true_divide*/
-  #endif
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_IntElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_IntElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_IntElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_IntElement = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.IntElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_IntElement), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_NumberElement, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_13__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_IntElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_IntElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_IntElement, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_11__str__, /*tp_str*/
-  #else
-  0, /*tp_str*/
-  #endif
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_IntElement, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
+  0, /*tp_iter*/
   #endif
   0, /*tp_iternext*/
   __pyx_methods_4lxml_9objectify_IntElement, /*tp_methods*/
@@ -27790,18 +27614,27 @@ static PyTypeObject __pyx_type_4lxml_9objectify_IntElement = {
   #endif
 };
 
-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);
+static PyObject *__pyx_tp_new_4lxml_9objectify_BoolElement(PyTypeObject *t, PyObject *a, PyObject *k) {
+  PyObject *o = __pyx_tp_new_4lxml_9objectify_IntElement(t, a, k);
   if (unlikely(!o)) return 0;
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_9objectify_LongElement[] = {
-  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_11LongElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyObject *__pyx_getprop_4lxml_9objectify_11BoolElement_pyval(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_9objectify_11BoolElement_5pyval_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_9objectify_BoolElement[] = {
+  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_11BoolElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_LongElement = {
+static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_BoolElement[] = {
+  {(char *)"pyval", __pyx_getprop_4lxml_9objectify_11BoolElement_pyval, 0, 0, 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_BoolElement = {
   #if CYTHON_COMPILING_IN_PYPY
   __pyx_pw_4lxml_9objectify_13NumberElement_23__add__, /*nb_add*/
   #else
@@ -27850,11 +27683,7 @@ static PyNumberMethods __pyx_tp_as_number_LongElement = {
   #else
   0, /*nb_absolute*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_43__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
+  __pyx_pw_4lxml_9objectify_11BoolElement_3__nonzero__, /*nb_nonzero*/
   #if CYTHON_COMPILING_IN_PYPY
   __pyx_pw_4lxml_9objectify_13NumberElement_45__invert__, /*nb_invert*/
   #else
@@ -27947,62 +27776,10 @@ static PyNumberMethods __pyx_tp_as_number_LongElement = {
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_LongElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_LongElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_LongElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_LongElement = {
+static PyTypeObject __pyx_type_4lxml_9objectify_BoolElement = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.LongElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_LongElement), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.objectify.BoolElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_BoolElement), /*tp_basicsize*/
   0, /*tp_itemsize*/
   __pyx_tp_dealloc_4lxml_9objectify_NumberElement, /*tp_dealloc*/
   0, /*tp_print*/
@@ -28013,29 +27790,21 @@ static PyTypeObject __pyx_type_4lxml_9objectify_LongElement = {
   #else
   0, /*reserved*/
   #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_13__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_LongElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_LongElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_LongElement, /*tp_as_mapping*/
-  0, /*tp_hash*/
+  __pyx_pw_4lxml_9objectify_11BoolElement_11__repr__, /*tp_repr*/
+  &__pyx_tp_as_number_BoolElement, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  __pyx_pw_4lxml_9objectify_11BoolElement_7__hash__, /*tp_hash*/
   0, /*tp_call*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_11__str__, /*tp_str*/
-  #else
-  0, /*tp_str*/
-  #endif
+  __pyx_pw_4lxml_9objectify_11BoolElement_9__str__, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_LongElement, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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_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*/
-  0, /*tp_richcompare*/
+  __pyx_pw_4lxml_9objectify_11BoolElement_5__richcmp__, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
   #if CYTHON_COMPILING_IN_PYPY
   __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
@@ -28043,9 +27812,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_LongElement = {
   0, /*tp_iter*/
   #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_LongElement, /*tp_methods*/
+  __pyx_methods_4lxml_9objectify_BoolElement, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_9objectify_BoolElement, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
@@ -28053,7 +27822,7 @@ static PyTypeObject __pyx_type_4lxml_9objectify_LongElement = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_LongElement, /*tp_new*/
+  __pyx_tp_new_4lxml_9objectify_BoolElement, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -28067,1100 +27836,23 @@ static PyTypeObject __pyx_type_4lxml_9objectify_LongElement = {
   #endif
 };
 
-static PyObject *__pyx_tp_new_4lxml_9objectify_FloatElement(PyTypeObject *t, PyObject *a, PyObject *k) {
+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 (unlikely(!o)) return 0;
   return o;
 }
 
-static PyMethodDef __pyx_methods_4lxml_9objectify_FloatElement[] = {
-  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_12FloatElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
+static PyMethodDef __pyx_methods_4lxml_9objectify_LongElement[] = {
+  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_11LongElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_FloatElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_23__add__, /*nb_add*/
-  #else
-  0, /*nb_add*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_25__sub__, /*nb_subtract*/
-  #else
-  0, /*nb_subtract*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_27__mul__, /*nb_multiply*/
-  #else
-  0, /*nb_multiply*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_29__div__, /*nb_divide*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_33__mod__, /*nb_remainder*/
-  #else
-  0, /*nb_remainder*/
-  #endif
-  0, /*nb_divmod*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_35__pow__, /*nb_power*/
-  #else
-  0, /*nb_power*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_37__neg__, /*nb_negative*/
-  #else
-  0, /*nb_negative*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_39__pos__, /*nb_positive*/
-  #else
-  0, /*nb_positive*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_41__abs__, /*nb_absolute*/
-  #else
-  0, /*nb_absolute*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_43__nonzero__, /*nb_nonzero*/
-  #else
-  0, /*nb_nonzero*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_45__invert__, /*nb_invert*/
-  #else
-  0, /*nb_invert*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_47__lshift__, /*nb_lshift*/
-  #else
-  0, /*nb_lshift*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_49__rshift__, /*nb_rshift*/
-  #else
-  0, /*nb_rshift*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_51__and__, /*nb_and*/
-  #else
-  0, /*nb_and*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_55__xor__, /*nb_xor*/
-  #else
-  0, /*nb_xor*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_53__or__, /*nb_or*/
-  #else
-  0, /*nb_or*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_3__int__, /*nb_int*/
-  #else
-  0, /*nb_int*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_5__long__, /*nb_long*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_7__float__, /*nb_float*/
-  #else
-  0, /*nb_float*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_15__oct__, /*nb_oct*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_17__hex__, /*nb_hex*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_31__truediv__, /*nb_true_divide*/
-  #else
-  0, /*nb_true_divide*/
-  #endif
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_FloatElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_FloatElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_FloatElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_FloatElement = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.FloatElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_FloatElement), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_NumberElement, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_13__repr__, /*tp_repr*/
-  #else
-  0, /*tp_repr*/
-  #endif
-  &__pyx_tp_as_number_FloatElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_FloatElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_FloatElement, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  0, /*tp_call*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_11__str__, /*tp_str*/
-  #else
-  0, /*tp_str*/
-  #endif
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_FloatElement, /*tp_as_buffer*/
-  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*/
-  0, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_FloatElement, /*tp_methods*/
-  0, /*tp_members*/
-  0, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_FloatElement, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-static PyObject *__pyx_tp_new_4lxml_9objectify_StringElement(PyTypeObject *t, PyObject *a, PyObject *k) {
-  PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(t, a, k);
-  if (unlikely(!o)) return 0;
-  return o;
-}
-
-static PyObject *__pyx_getprop_4lxml_9objectify_13StringElement_pyval(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_9objectify_13StringElement_5pyval_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_9objectify_StringElement[] = {
-  {__Pyx_NAMESTR("strlen"), (PyCFunction)__pyx_pw_4lxml_9objectify_13StringElement_3strlen, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {__Pyx_NAMESTR("__complex__"), (PyCFunction)__pyx_pw_4lxml_9objectify_13StringElement_23__complex__, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_StringElement[] = {
-  {(char *)"pyval", __pyx_getprop_4lxml_9objectify_13StringElement_pyval, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_StringElement = {
-  __pyx_pw_4lxml_9objectify_13StringElement_11__add__, /*nb_add*/
-  0, /*nb_subtract*/
-  __pyx_pw_4lxml_9objectify_13StringElement_13__mul__, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  __pyx_pw_4lxml_9objectify_13StringElement_15__mod__, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  __pyx_pw_4lxml_9objectify_13StringElement_5__nonzero__, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  __pyx_pw_4lxml_9objectify_13StringElement_17__int__, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  __pyx_pw_4lxml_9objectify_13StringElement_19__long__, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  __pyx_pw_4lxml_9objectify_13StringElement_21__float__, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_StringElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_StringElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_StringElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_StringElement = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.StringElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_StringElement), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_ObjectifiedElement, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  __pyx_pw_4lxml_9objectify_13StringElement_1__repr__, /*tp_repr*/
-  &__pyx_tp_as_number_StringElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_StringElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_StringElement, /*tp_as_mapping*/
-  __pyx_pw_4lxml_9objectify_13StringElement_9__hash__, /*tp_hash*/
-  0, /*tp_call*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_22ObjectifiedDataElement_1__str__, /*tp_str*/
-  #else
-  0, /*tp_str*/
-  #endif
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_StringElement, /*tp_as_buffer*/
-  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*/
-  __pyx_pw_4lxml_9objectify_13StringElement_7__richcmp__, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_StringElement, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_9objectify_StringElement, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_StringElement, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-static PyObject *__pyx_tp_new_4lxml_9objectify_NoneElement(PyTypeObject *t, PyObject *a, PyObject *k) {
-  PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(t, a, k);
-  if (unlikely(!o)) return 0;
-  return o;
-}
-
-static PyObject *__pyx_getprop_4lxml_9objectify_11NoneElement_pyval(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_9objectify_11NoneElement_5pyval_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_9objectify_NoneElement[] = {
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_NoneElement[] = {
-  {(char *)"pyval", __pyx_getprop_4lxml_9objectify_11NoneElement_pyval, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_NoneElement = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  __pyx_pw_4lxml_9objectify_11NoneElement_5__nonzero__, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_NoneElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_NoneElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_NoneElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_NoneElement = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.NoneElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_NoneElement), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_ObjectifiedElement, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  __pyx_pw_4lxml_9objectify_11NoneElement_3__repr__, /*tp_repr*/
-  &__pyx_tp_as_number_NoneElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_NoneElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_NoneElement, /*tp_as_mapping*/
-  __pyx_pw_4lxml_9objectify_11NoneElement_9__hash__, /*tp_hash*/
-  0, /*tp_call*/
-  __pyx_pw_4lxml_9objectify_11NoneElement_1__str__, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_NoneElement, /*tp_as_buffer*/
-  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*/
-  __pyx_pw_4lxml_9objectify_11NoneElement_7__richcmp__, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_NoneElement, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_9objectify_NoneElement, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_NoneElement, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-static PyObject *__pyx_tp_new_4lxml_9objectify_BoolElement(PyTypeObject *t, PyObject *a, PyObject *k) {
-  PyObject *o = __pyx_tp_new_4lxml_9objectify_IntElement(t, a, k);
-  if (unlikely(!o)) return 0;
-  return o;
-}
-
-static PyObject *__pyx_getprop_4lxml_9objectify_11BoolElement_pyval(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_9objectify_11BoolElement_5pyval_1__get__(o);
-}
-
-static PyMethodDef __pyx_methods_4lxml_9objectify_BoolElement[] = {
-  {__Pyx_NAMESTR("_init"), (PyCFunction)__pyx_pw_4lxml_9objectify_11BoolElement_1_init, METH_NOARGS, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_BoolElement[] = {
-  {(char *)"pyval", __pyx_getprop_4lxml_9objectify_11BoolElement_pyval, 0, 0, 0},
-  {0, 0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_BoolElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_23__add__, /*nb_add*/
-  #else
-  0, /*nb_add*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_25__sub__, /*nb_subtract*/
-  #else
-  0, /*nb_subtract*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_27__mul__, /*nb_multiply*/
-  #else
-  0, /*nb_multiply*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_29__div__, /*nb_divide*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_33__mod__, /*nb_remainder*/
-  #else
-  0, /*nb_remainder*/
-  #endif
-  0, /*nb_divmod*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_35__pow__, /*nb_power*/
-  #else
-  0, /*nb_power*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_37__neg__, /*nb_negative*/
-  #else
-  0, /*nb_negative*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_39__pos__, /*nb_positive*/
-  #else
-  0, /*nb_positive*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_41__abs__, /*nb_absolute*/
-  #else
-  0, /*nb_absolute*/
-  #endif
-  __pyx_pw_4lxml_9objectify_11BoolElement_3__nonzero__, /*nb_nonzero*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_45__invert__, /*nb_invert*/
-  #else
-  0, /*nb_invert*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_47__lshift__, /*nb_lshift*/
-  #else
-  0, /*nb_lshift*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_49__rshift__, /*nb_rshift*/
-  #else
-  0, /*nb_rshift*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_51__and__, /*nb_and*/
-  #else
-  0, /*nb_and*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_55__xor__, /*nb_xor*/
-  #else
-  0, /*nb_xor*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_53__or__, /*nb_or*/
-  #else
-  0, /*nb_or*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_3__int__, /*nb_int*/
-  #else
-  0, /*nb_int*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_5__long__, /*nb_long*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_7__float__, /*nb_float*/
-  #else
-  0, /*nb_float*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_15__oct__, /*nb_oct*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_17__hex__, /*nb_hex*/
-  #else
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_13NumberElement_31__truediv__, /*nb_true_divide*/
-  #else
-  0, /*nb_true_divide*/
-  #endif
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_BoolElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*sq_length*/
-  #else
-  0, /*sq_length*/
-  #endif
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_BoolElement = {
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_7__len__, /*mp_length*/
-  #else
-  0, /*mp_length*/
-  #endif
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_21__getitem__, /*mp_subscript*/
-  #else
-  0, /*mp_subscript*/
-  #endif
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_BoolElement = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_BoolElement = {
-  PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.BoolElement"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_BoolElement), /*tp_basicsize*/
-  0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_NumberElement, /*tp_dealloc*/
-  0, /*tp_print*/
-  0, /*tp_getattr*/
-  0, /*tp_setattr*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*tp_compare*/
-  #else
-  0, /*reserved*/
-  #endif
-  __pyx_pw_4lxml_9objectify_11BoolElement_11__repr__, /*tp_repr*/
-  &__pyx_tp_as_number_BoolElement, /*tp_as_number*/
-  &__pyx_tp_as_sequence_BoolElement, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_BoolElement, /*tp_as_mapping*/
-  __pyx_pw_4lxml_9objectify_11BoolElement_7__hash__, /*tp_hash*/
-  0, /*tp_call*/
-  __pyx_pw_4lxml_9objectify_11BoolElement_9__str__, /*tp_str*/
-  0, /*tp_getattro*/
-  0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_BoolElement, /*tp_as_buffer*/
-  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*/
-  __pyx_pw_4lxml_9objectify_11BoolElement_5__richcmp__, /*tp_richcompare*/
-  0, /*tp_weaklistoffset*/
-  #if CYTHON_COMPILING_IN_PYPY
-  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
-  #else
-  0, /*tp_iter*/
-  #endif
-  0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_BoolElement, /*tp_methods*/
-  0, /*tp_members*/
-  __pyx_getsets_4lxml_9objectify_BoolElement, /*tp_getset*/
-  0, /*tp_base*/
-  0, /*tp_dict*/
-  0, /*tp_descr_get*/
-  0, /*tp_descr_set*/
-  0, /*tp_dictoffset*/
-  0, /*tp_init*/
-  0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_BoolElement, /*tp_new*/
-  0, /*tp_free*/
-  0, /*tp_is_gc*/
-  0, /*tp_bases*/
-  0, /*tp_mro*/
-  0, /*tp_cache*/
-  0, /*tp_subclasses*/
-  0, /*tp_weaklist*/
-  0, /*tp_del*/
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*tp_version_tag*/
-  #endif
-};
-
-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;
-  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);
-  p->_element_factory = Py_None; Py_INCREF(Py_None);
-  return o;
-}
-
-static void __pyx_tp_dealloc_4lxml_9objectify__ObjectifyElementMakerCaller(PyObject *o) {
-  struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *p = (struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)o;
-  PyObject_GC_UnTrack(o);
-  Py_CLEAR(p->_tag);
-  Py_CLEAR(p->_nsmap);
-  Py_CLEAR(p->_element_factory);
-  (*Py_TYPE(o)->tp_free)(o);
-}
-
-static int __pyx_tp_traverse_4lxml_9objectify__ObjectifyElementMakerCaller(PyObject *o, visitproc v, void *a) {
-  int e;
-  struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *p = (struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)o;
-  if (p->_tag) {
-    e = (*v)(p->_tag, a); if (e) return e;
-  }
-  if (p->_nsmap) {
-    e = (*v)(p->_nsmap, a); if (e) return e;
-  }
-  if (p->_element_factory) {
-    e = (*v)(p->_element_factory, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_9objectify__ObjectifyElementMakerCaller(PyObject *o) {
-  struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *p = (struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_tag);
-  p->_tag = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_nsmap);
-  p->_nsmap = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_element_factory);
-  p->_element_factory = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyMethodDef __pyx_methods_4lxml_9objectify__ObjectifyElementMakerCaller[] = {
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number__ObjectifyElementMakerCaller = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence__ObjectifyElementMakerCaller = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping__ObjectifyElementMakerCaller = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer__ObjectifyElementMakerCaller = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller = {
+static PyTypeObject __pyx_type_4lxml_9objectify_LongElement = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify._ObjectifyElementMakerCaller"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.objectify.LongElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_LongElement), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_9objectify_NumberElement, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -29169,25 +27861,37 @@ static PyTypeObject __pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller = {
   #else
   0, /*reserved*/
   #endif
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_9objectify_13NumberElement_13__repr__, /*tp_repr*/
+  #else
   0, /*tp_repr*/
-  &__pyx_tp_as_number__ObjectifyElementMakerCaller, /*tp_as_number*/
-  &__pyx_tp_as_sequence__ObjectifyElementMakerCaller, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping__ObjectifyElementMakerCaller, /*tp_as_mapping*/
+  #endif
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
-  __pyx_pw_4lxml_9objectify_28_ObjectifyElementMakerCaller_1__call__, /*tp_call*/
+  0, /*tp_call*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_9objectify_13NumberElement_11__str__, /*tp_str*/
+  #else
   0, /*tp_str*/
+  #endif
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer__ObjectifyElementMakerCaller, /*tp_as_buffer*/
-  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
+  0, /*tp_as_buffer*/
+  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__ObjectifyElementMakerCaller, /*tp_traverse*/
-  __pyx_tp_clear_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_clear*/
+  __pyx_tp_traverse_4lxml_9objectify_NumberElement, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_9objectify_NumberElement, /*tp_clear*/
   0, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_methods*/
+  __pyx_methods_4lxml_9objectify_LongElement, /*tp_methods*/
   0, /*tp_members*/
   0, /*tp_getset*/
   0, /*tp_base*/
@@ -29197,7 +27901,7 @@ static PyTypeObject __pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller = {
   0, /*tp_dictoffset*/
   0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller, /*tp_new*/
+  __pyx_tp_new_4lxml_9objectify_LongElement, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -29247,141 +27951,43 @@ static int __pyx_tp_traverse_4lxml_9objectify_ElementMaker(PyObject *o, visitpro
   }
   if (p->_nsmap) {
     e = (*v)(p->_nsmap, a); if (e) return e;
-  }
-  if (p->_cache) {
-    e = (*v)(p->_cache, a); if (e) return e;
-  }
-  return 0;
-}
-
-static int __pyx_tp_clear_4lxml_9objectify_ElementMaker(PyObject *o) {
-  struct __pyx_obj_4lxml_9objectify_ElementMaker *p = (struct __pyx_obj_4lxml_9objectify_ElementMaker *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->_makeelement);
-  p->_makeelement = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_namespace);
-  p->_namespace = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_nsmap);
-  p->_nsmap = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_cache);
-  p->_cache = ((PyObject*)Py_None); Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
-}
-
-static PyObject *__pyx_tp_getattro_4lxml_9objectify_ElementMaker(PyObject *o, PyObject *n) {
-  PyObject *v = PyObject_GenericGetAttr(o, n);
-  if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {
-    PyErr_Clear();
-    v = __pyx_pw_4lxml_9objectify_12ElementMaker_3__getattr__(o, n);
-  }
-  return v;
-}
-
-static PyMethodDef __pyx_methods_4lxml_9objectify_ElementMaker[] = {
-  {__Pyx_NAMESTR("__getattr__"), (PyCFunction)__pyx_pw_4lxml_9objectify_12ElementMaker_3__getattr__, METH_O|METH_COEXIST, __Pyx_DOCSTR(0)},
-  {0, 0, 0, 0}
-};
-
-static PyNumberMethods __pyx_tp_as_number_ElementMaker = {
-  0, /*nb_add*/
-  0, /*nb_subtract*/
-  0, /*nb_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_divide*/
-  #endif
-  0, /*nb_remainder*/
-  0, /*nb_divmod*/
-  0, /*nb_power*/
-  0, /*nb_negative*/
-  0, /*nb_positive*/
-  0, /*nb_absolute*/
-  0, /*nb_nonzero*/
-  0, /*nb_invert*/
-  0, /*nb_lshift*/
-  0, /*nb_rshift*/
-  0, /*nb_and*/
-  0, /*nb_xor*/
-  0, /*nb_or*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_coerce*/
-  #endif
-  0, /*nb_int*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
-  #else
-  0, /*reserved*/
-  #endif
-  0, /*nb_float*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_oct*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_hex*/
-  #endif
-  0, /*nb_inplace_add*/
-  0, /*nb_inplace_subtract*/
-  0, /*nb_inplace_multiply*/
-  #if PY_MAJOR_VERSION < 3
-  0, /*nb_inplace_divide*/
-  #endif
-  0, /*nb_inplace_remainder*/
-  0, /*nb_inplace_power*/
-  0, /*nb_inplace_lshift*/
-  0, /*nb_inplace_rshift*/
-  0, /*nb_inplace_and*/
-  0, /*nb_inplace_xor*/
-  0, /*nb_inplace_or*/
-  0, /*nb_floor_divide*/
-  0, /*nb_true_divide*/
-  0, /*nb_inplace_floor_divide*/
-  0, /*nb_inplace_true_divide*/
-  #if PY_VERSION_HEX >= 0x02050000
-  0, /*nb_index*/
-  #endif
-};
-
-static PySequenceMethods __pyx_tp_as_sequence_ElementMaker = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
+  }
+  if (p->_cache) {
+    e = (*v)(p->_cache, a); if (e) return e;
+  }
+  return 0;
+}
 
-static PyMappingMethods __pyx_tp_as_mapping_ElementMaker = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
+static int __pyx_tp_clear_4lxml_9objectify_ElementMaker(PyObject *o) {
+  struct __pyx_obj_4lxml_9objectify_ElementMaker *p = (struct __pyx_obj_4lxml_9objectify_ElementMaker *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->_makeelement);
+  p->_makeelement = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_namespace);
+  p->_namespace = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_nsmap);
+  p->_nsmap = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_cache);
+  p->_cache = ((PyObject*)Py_None); Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
 
-static PyBufferProcs __pyx_tp_as_buffer_ElementMaker = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
+static PyObject *__pyx_tp_getattro_4lxml_9objectify_ElementMaker(PyObject *o, PyObject *n) {
+  PyObject *v = PyObject_GenericGetAttr(o, n);
+  if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {
+    PyErr_Clear();
+    v = __pyx_pw_4lxml_9objectify_12ElementMaker_3__getattr__(o, n);
+  }
+  return v;
+}
+
+static PyMethodDef __pyx_methods_4lxml_9objectify_ElementMaker[] = {
+  {__Pyx_NAMESTR("__getattr__"), (PyCFunction)__pyx_pw_4lxml_9objectify_12ElementMaker_3__getattr__, METH_O|METH_COEXIST, __Pyx_DOCSTR(0)},
+  {0, 0, 0, 0}
 };
 
 static PyTypeObject __pyx_type_4lxml_9objectify_ElementMaker = {
@@ -29399,15 +28005,15 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ElementMaker = {
   0, /*reserved*/
   #endif
   0, /*tp_repr*/
-  &__pyx_tp_as_number_ElementMaker, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ElementMaker, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ElementMaker, /*tp_as_mapping*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
   0, /*tp_hash*/
   __pyx_pw_4lxml_9objectify_12ElementMaker_5__call__, /*tp_call*/
   0, /*tp_str*/
   __pyx_tp_getattro_4lxml_9objectify_ElementMaker, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ElementMaker, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
@@ -29489,7 +28095,82 @@ static PyMethodDef __pyx_methods_4lxml_9objectify_ObjectifyElementClassLookup[]
   {0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_ObjectifyElementClassLookup = {
+static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifyElementClassLookup = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.objectify.ObjectifyElementClassLookup"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
+  #if PY_MAJOR_VERSION < 3
+  0, /*tp_compare*/
+  #else
+  0, /*reserved*/
+  #endif
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  0, /*tp_call*/
+  0, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_methods*/
+  0, /*tp_members*/
+  0, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_9objectify_27ObjectifyElementClassLookup_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
+  #endif
+};
+
+static PyObject *__pyx_tp_new_4lxml_9objectify_NoneElement(PyTypeObject *t, PyObject *a, PyObject *k) {
+  PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(t, a, k);
+  if (unlikely(!o)) return 0;
+  return o;
+}
+
+static PyObject *__pyx_getprop_4lxml_9objectify_11NoneElement_pyval(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_9objectify_11NoneElement_5pyval_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_9objectify_NoneElement[] = {
+  {0, 0, 0, 0}
+};
+
+static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_NoneElement[] = {
+  {(char *)"pyval", __pyx_getprop_4lxml_9objectify_11NoneElement_pyval, 0, 0, 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyNumberMethods __pyx_tp_as_number_NoneElement = {
   0, /*nb_add*/
   0, /*nb_subtract*/
   0, /*nb_multiply*/
@@ -29502,7 +28183,7 @@ static PyNumberMethods __pyx_tp_as_number_ObjectifyElementClassLookup = {
   0, /*nb_negative*/
   0, /*nb_positive*/
   0, /*nb_absolute*/
-  0, /*nb_nonzero*/
+  __pyx_pw_4lxml_9objectify_11NoneElement_5__nonzero__, /*nb_nonzero*/
   0, /*nb_invert*/
   0, /*nb_lshift*/
   0, /*nb_rshift*/
@@ -29547,52 +28228,12 @@ static PyNumberMethods __pyx_tp_as_number_ObjectifyElementClassLookup = {
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_ObjectifyElementClassLookup = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ObjectifyElementClassLookup = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ObjectifyElementClassLookup = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifyElementClassLookup = {
+static PyTypeObject __pyx_type_4lxml_9objectify_NoneElement = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.ObjectifyElementClassLookup"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.objectify.NoneElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_NoneElement), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_9objectify_ObjectifiedElement, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -29601,35 +28242,39 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifyElementClassLookup = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_ObjectifyElementClassLookup, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ObjectifyElementClassLookup, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ObjectifyElementClassLookup, /*tp_as_mapping*/
-  0, /*tp_hash*/
+  __pyx_pw_4lxml_9objectify_11NoneElement_3__repr__, /*tp_repr*/
+  &__pyx_tp_as_number_NoneElement, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  __pyx_pw_4lxml_9objectify_11NoneElement_9__hash__, /*tp_hash*/
   0, /*tp_call*/
-  0, /*tp_str*/
+  __pyx_pw_4lxml_9objectify_11NoneElement_1__str__, /*tp_str*/
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ObjectifyElementClassLookup, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
-  0, /*tp_richcompare*/
+  0, /*tp_doc*/
+  __pyx_tp_traverse_4lxml_9objectify_ObjectifiedElement, /*tp_traverse*/
+  __pyx_tp_clear_4lxml_9objectify_ObjectifiedElement, /*tp_clear*/
+  __pyx_pw_4lxml_9objectify_11NoneElement_7__richcmp__, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_methods*/
+  __pyx_methods_4lxml_9objectify_NoneElement, /*tp_methods*/
   0, /*tp_members*/
-  0, /*tp_getset*/
+  __pyx_getsets_4lxml_9objectify_NoneElement, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_9objectify_27ObjectifyElementClassLookup_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_ObjectifyElementClassLookup, /*tp_new*/
+  __pyx_tp_new_4lxml_9objectify_NoneElement, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -29688,51 +28333,128 @@ static int __pyx_tp_traverse_4lxml_9objectify_ObjectPath(PyObject *o, visitproc
   return 0;
 }
 
-static int __pyx_tp_clear_4lxml_9objectify_ObjectPath(PyObject *o) {
-  struct __pyx_obj_4lxml_9objectify_ObjectPath *p = (struct __pyx_obj_4lxml_9objectify_ObjectPath *)o;
-  PyObject* tmp;
-  tmp = ((PyObject*)p->find);
-  p->find = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_path);
-  p->_path = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  tmp = ((PyObject*)p->_path_str);
-  p->_path_str = Py_None; Py_INCREF(Py_None);
-  Py_XDECREF(tmp);
-  return 0;
+static int __pyx_tp_clear_4lxml_9objectify_ObjectPath(PyObject *o) {
+  struct __pyx_obj_4lxml_9objectify_ObjectPath *p = (struct __pyx_obj_4lxml_9objectify_ObjectPath *)o;
+  PyObject* tmp;
+  tmp = ((PyObject*)p->find);
+  p->find = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_path);
+  p->_path = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  tmp = ((PyObject*)p->_path_str);
+  p->_path_str = Py_None; Py_INCREF(Py_None);
+  Py_XDECREF(tmp);
+  return 0;
+}
+
+static PyObject *__pyx_getprop_4lxml_9objectify_10ObjectPath_find(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_9objectify_10ObjectPath_4find_1__get__(o);
+}
+
+static PyMethodDef __pyx_methods_4lxml_9objectify_ObjectPath[] = {
+  {__Pyx_NAMESTR("hasattr"), (PyCFunction)__pyx_pw_4lxml_9objectify_10ObjectPath_9hasattr, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_10ObjectPath_8hasattr)},
+  {__Pyx_NAMESTR("setattr"), (PyCFunction)__pyx_pw_4lxml_9objectify_10ObjectPath_11setattr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_10ObjectPath_10setattr)},
+  {__Pyx_NAMESTR("addattr"), (PyCFunction)__pyx_pw_4lxml_9objectify_10ObjectPath_13addattr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_10ObjectPath_12addattr)},
+  {0, 0, 0, 0}
+};
+
+static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_ObjectPath[] = {
+  {(char *)"find", __pyx_getprop_4lxml_9objectify_10ObjectPath_find, 0, 0, 0},
+  {0, 0, 0, 0, 0}
+};
+
+static PyTypeObject __pyx_type_4lxml_9objectify_ObjectPath = {
+  PyVarObject_HEAD_INIT(0, 0)
+  __Pyx_NAMESTR("lxml.objectify.ObjectPath"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_ObjectPath), /*tp_basicsize*/
+  0, /*tp_itemsize*/
+  __pyx_tp_dealloc_4lxml_9objectify_ObjectPath, /*tp_dealloc*/
+  0, /*tp_print*/
+  0, /*tp_getattr*/
+  0, /*tp_setattr*/
+  #if PY_MAJOR_VERSION < 3
+  0, /*tp_compare*/
+  #else
+  0, /*reserved*/
+  #endif
+  0, /*tp_repr*/
+  0, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  0, /*tp_hash*/
+  __pyx_pw_4lxml_9objectify_10ObjectPath_7__call__, /*tp_call*/
+  __pyx_pw_4lxml_9objectify_10ObjectPath_5__str__, /*tp_str*/
+  0, /*tp_getattro*/
+  0, /*tp_setattro*/
+  0, /*tp_as_buffer*/
+  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*/
+  0, /*tp_richcompare*/
+  0, /*tp_weaklistoffset*/
+  0, /*tp_iter*/
+  0, /*tp_iternext*/
+  __pyx_methods_4lxml_9objectify_ObjectPath, /*tp_methods*/
+  0, /*tp_members*/
+  __pyx_getsets_4lxml_9objectify_ObjectPath, /*tp_getset*/
+  0, /*tp_base*/
+  0, /*tp_dict*/
+  0, /*tp_descr_get*/
+  0, /*tp_descr_set*/
+  0, /*tp_dictoffset*/
+  __pyx_pw_4lxml_9objectify_10ObjectPath_1__init__, /*tp_init*/
+  0, /*tp_alloc*/
+  __pyx_tp_new_4lxml_9objectify_ObjectPath, /*tp_new*/
+  0, /*tp_free*/
+  0, /*tp_is_gc*/
+  0, /*tp_bases*/
+  0, /*tp_mro*/
+  0, /*tp_cache*/
+  0, /*tp_subclasses*/
+  0, /*tp_weaklist*/
+  0, /*tp_del*/
+  #if PY_VERSION_HEX >= 0x02060000
+  0, /*tp_version_tag*/
+  #endif
+};
+
+static PyObject *__pyx_tp_new_4lxml_9objectify_StringElement(PyTypeObject *t, PyObject *a, PyObject *k) {
+  PyObject *o = __pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(t, a, k);
+  if (unlikely(!o)) return 0;
+  return o;
 }
 
-static PyObject *__pyx_getprop_4lxml_9objectify_10ObjectPath_find(PyObject *o, CYTHON_UNUSED void *x) {
-  return __pyx_pw_4lxml_9objectify_10ObjectPath_4find_1__get__(o);
+static PyObject *__pyx_getprop_4lxml_9objectify_13StringElement_pyval(PyObject *o, CYTHON_UNUSED void *x) {
+  return __pyx_pw_4lxml_9objectify_13StringElement_5pyval_1__get__(o);
 }
 
-static PyMethodDef __pyx_methods_4lxml_9objectify_ObjectPath[] = {
-  {__Pyx_NAMESTR("hasattr"), (PyCFunction)__pyx_pw_4lxml_9objectify_10ObjectPath_9hasattr, METH_O, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_10ObjectPath_8hasattr)},
-  {__Pyx_NAMESTR("setattr"), (PyCFunction)__pyx_pw_4lxml_9objectify_10ObjectPath_11setattr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_10ObjectPath_10setattr)},
-  {__Pyx_NAMESTR("addattr"), (PyCFunction)__pyx_pw_4lxml_9objectify_10ObjectPath_13addattr, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(__pyx_doc_4lxml_9objectify_10ObjectPath_12addattr)},
+static PyMethodDef __pyx_methods_4lxml_9objectify_StringElement[] = {
+  {__Pyx_NAMESTR("strlen"), (PyCFunction)__pyx_pw_4lxml_9objectify_13StringElement_3strlen, METH_NOARGS, __Pyx_DOCSTR(0)},
+  {__Pyx_NAMESTR("__complex__"), (PyCFunction)__pyx_pw_4lxml_9objectify_13StringElement_23__complex__, METH_NOARGS, __Pyx_DOCSTR(0)},
   {0, 0, 0, 0}
 };
 
-static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_ObjectPath[] = {
-  {(char *)"find", __pyx_getprop_4lxml_9objectify_10ObjectPath_find, 0, 0, 0},
+static struct PyGetSetDef __pyx_getsets_4lxml_9objectify_StringElement[] = {
+  {(char *)"pyval", __pyx_getprop_4lxml_9objectify_13StringElement_pyval, 0, 0, 0},
   {0, 0, 0, 0, 0}
 };
 
-static PyNumberMethods __pyx_tp_as_number_ObjectPath = {
-  0, /*nb_add*/
+static PyNumberMethods __pyx_tp_as_number_StringElement = {
+  __pyx_pw_4lxml_9objectify_13StringElement_11__add__, /*nb_add*/
   0, /*nb_subtract*/
-  0, /*nb_multiply*/
+  __pyx_pw_4lxml_9objectify_13StringElement_13__mul__, /*nb_multiply*/
   #if PY_MAJOR_VERSION < 3
   0, /*nb_divide*/
   #endif
-  0, /*nb_remainder*/
+  __pyx_pw_4lxml_9objectify_13StringElement_15__mod__, /*nb_remainder*/
   0, /*nb_divmod*/
   0, /*nb_power*/
   0, /*nb_negative*/
   0, /*nb_positive*/
   0, /*nb_absolute*/
-  0, /*nb_nonzero*/
+  __pyx_pw_4lxml_9objectify_13StringElement_5__nonzero__, /*nb_nonzero*/
   0, /*nb_invert*/
   0, /*nb_lshift*/
   0, /*nb_rshift*/
@@ -29742,13 +28464,13 @@ static PyNumberMethods __pyx_tp_as_number_ObjectPath = {
   #if PY_MAJOR_VERSION < 3
   0, /*nb_coerce*/
   #endif
-  0, /*nb_int*/
+  __pyx_pw_4lxml_9objectify_13StringElement_17__int__, /*nb_int*/
   #if PY_MAJOR_VERSION < 3
-  0, /*nb_long*/
+  __pyx_pw_4lxml_9objectify_13StringElement_19__long__, /*nb_long*/
   #else
   0, /*reserved*/
   #endif
-  0, /*nb_float*/
+  __pyx_pw_4lxml_9objectify_13StringElement_21__float__, /*nb_float*/
   #if PY_MAJOR_VERSION < 3
   0, /*nb_oct*/
   #endif
@@ -29777,52 +28499,12 @@ static PyNumberMethods __pyx_tp_as_number_ObjectPath = {
   #endif
 };
 
-static PySequenceMethods __pyx_tp_as_sequence_ObjectPath = {
-  0, /*sq_length*/
-  0, /*sq_concat*/
-  0, /*sq_repeat*/
-  0, /*sq_item*/
-  0, /*sq_slice*/
-  0, /*sq_ass_item*/
-  0, /*sq_ass_slice*/
-  0, /*sq_contains*/
-  0, /*sq_inplace_concat*/
-  0, /*sq_inplace_repeat*/
-};
-
-static PyMappingMethods __pyx_tp_as_mapping_ObjectPath = {
-  0, /*mp_length*/
-  0, /*mp_subscript*/
-  0, /*mp_ass_subscript*/
-};
-
-static PyBufferProcs __pyx_tp_as_buffer_ObjectPath = {
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getreadbuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getwritebuffer*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getsegcount*/
-  #endif
-  #if PY_MAJOR_VERSION < 3
-  0, /*bf_getcharbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_getbuffer*/
-  #endif
-  #if PY_VERSION_HEX >= 0x02060000
-  0, /*bf_releasebuffer*/
-  #endif
-};
-
-static PyTypeObject __pyx_type_4lxml_9objectify_ObjectPath = {
+static PyTypeObject __pyx_type_4lxml_9objectify_StringElement = {
   PyVarObject_HEAD_INIT(0, 0)
-  __Pyx_NAMESTR("lxml.objectify.ObjectPath"), /*tp_name*/
-  sizeof(struct __pyx_obj_4lxml_9objectify_ObjectPath), /*tp_basicsize*/
+  __Pyx_NAMESTR("lxml.objectify.StringElement"), /*tp_name*/
+  sizeof(struct __pyx_obj_4lxml_9objectify_StringElement), /*tp_basicsize*/
   0, /*tp_itemsize*/
-  __pyx_tp_dealloc_4lxml_9objectify_ObjectPath, /*tp_dealloc*/
+  __pyx_tp_dealloc_4lxml_9objectify_ObjectifiedElement, /*tp_dealloc*/
   0, /*tp_print*/
   0, /*tp_getattr*/
   0, /*tp_setattr*/
@@ -29831,35 +28513,43 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectPath = {
   #else
   0, /*reserved*/
   #endif
-  0, /*tp_repr*/
-  &__pyx_tp_as_number_ObjectPath, /*tp_as_number*/
-  &__pyx_tp_as_sequence_ObjectPath, /*tp_as_sequence*/
-  &__pyx_tp_as_mapping_ObjectPath, /*tp_as_mapping*/
-  0, /*tp_hash*/
-  __pyx_pw_4lxml_9objectify_10ObjectPath_7__call__, /*tp_call*/
-  __pyx_pw_4lxml_9objectify_10ObjectPath_5__str__, /*tp_str*/
+  __pyx_pw_4lxml_9objectify_13StringElement_1__repr__, /*tp_repr*/
+  &__pyx_tp_as_number_StringElement, /*tp_as_number*/
+  0, /*tp_as_sequence*/
+  0, /*tp_as_mapping*/
+  __pyx_pw_4lxml_9objectify_13StringElement_9__hash__, /*tp_hash*/
+  0, /*tp_call*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_9objectify_22ObjectifiedDataElement_1__str__, /*tp_str*/
+  #else
+  0, /*tp_str*/
+  #endif
   0, /*tp_getattro*/
   0, /*tp_setattro*/
-  &__pyx_tp_as_buffer_ObjectPath, /*tp_as_buffer*/
+  0, /*tp_as_buffer*/
   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*/
-  0, /*tp_richcompare*/
+  __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*/
+  __pyx_pw_4lxml_9objectify_13StringElement_7__richcmp__, /*tp_richcompare*/
   0, /*tp_weaklistoffset*/
+  #if CYTHON_COMPILING_IN_PYPY
+  __pyx_pw_4lxml_9objectify_18ObjectifiedElement_1__iter__, /*tp_iter*/
+  #else
   0, /*tp_iter*/
+  #endif
   0, /*tp_iternext*/
-  __pyx_methods_4lxml_9objectify_ObjectPath, /*tp_methods*/
+  __pyx_methods_4lxml_9objectify_StringElement, /*tp_methods*/
   0, /*tp_members*/
-  __pyx_getsets_4lxml_9objectify_ObjectPath, /*tp_getset*/
+  __pyx_getsets_4lxml_9objectify_StringElement, /*tp_getset*/
   0, /*tp_base*/
   0, /*tp_dict*/
   0, /*tp_descr_get*/
   0, /*tp_descr_set*/
   0, /*tp_dictoffset*/
-  __pyx_pw_4lxml_9objectify_10ObjectPath_1__init__, /*tp_init*/
+  0, /*tp_init*/
   0, /*tp_alloc*/
-  __pyx_tp_new_4lxml_9objectify_ObjectPath, /*tp_new*/
+  __pyx_tp_new_4lxml_9objectify_StringElement, /*tp_new*/
   0, /*tp_free*/
   0, /*tp_is_gc*/
   0, /*tp_bases*/
@@ -30008,6 +28698,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__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____parseBool, __pyx_k____parseBool, sizeof(__pyx_k____parseBool), 0, 0, 1, 1},
+  {&__pyx_n_s____pyx_vtable__, __pyx_k____pyx_vtable__, sizeof(__pyx_k____pyx_vtable__), 0, 0, 1, 1},
   {&__pyx_n_s____set__, __pyx_k____set__, sizeof(__pyx_k____set__), 0, 0, 1, 1},
   {&__pyx_n_s____test__, __pyx_k____test__, sizeof(__pyx_k____test__), 0, 0, 1, 1},
   {&__pyx_n_s____version__, __pyx_k____version__, sizeof(__pyx_k____version__), 0, 0, 1, 1},
@@ -30695,6 +29386,18 @@ PyMODINIT_FUNC PyInit_objectify(void)
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_PyType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "PyType", (PyObject *)&__pyx_type_4lxml_9objectify_PyType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_PyType = &__pyx_type_4lxml_9objectify_PyType;
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  #if CYTHON_COMPILING_IN_CPYTHON
+  {
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
+      __pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
+      __pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__.doc = __pyx_doc_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__;
+      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__;
+    }
+  }
+  #endif
+  __pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller = &__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller;
   __pyx_ptype_4lxml_8includes_11etreepublic_ElementBase = __Pyx_ImportType("lxml.etree", "ElementBase", sizeof(struct LxmlElementBase), 0); if (unlikely(!__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_type_4lxml_9objectify_ObjectifiedElement.tp_base = __pyx_ptype_4lxml_8includes_11etreepublic_ElementBase;
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectifiedElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -30768,42 +29471,22 @@ PyMODINIT_FUNC PyInit_objectify(void)
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_NumberElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "NumberElement", (PyObject *)&__pyx_type_4lxml_9objectify_NumberElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_NumberElement = &__pyx_type_4lxml_9objectify_NumberElement;
-  __pyx_type_4lxml_9objectify_IntElement.tp_base = __pyx_ptype_4lxml_9objectify_NumberElement;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_IntElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "IntElement", (PyObject *)&__pyx_type_4lxml_9objectify_IntElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_9objectify_IntElement = &__pyx_type_4lxml_9objectify_IntElement;
-  __pyx_type_4lxml_9objectify_LongElement.tp_base = __pyx_ptype_4lxml_9objectify_NumberElement;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_LongElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "LongElement", (PyObject *)&__pyx_type_4lxml_9objectify_LongElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_9objectify_LongElement = &__pyx_type_4lxml_9objectify_LongElement;
   __pyx_type_4lxml_9objectify_FloatElement.tp_base = __pyx_ptype_4lxml_9objectify_NumberElement;
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_FloatElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "FloatElement", (PyObject *)&__pyx_type_4lxml_9objectify_FloatElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_FloatElement = &__pyx_type_4lxml_9objectify_FloatElement;
-  __pyx_type_4lxml_9objectify_StringElement.tp_base = __pyx_ptype_4lxml_9objectify_ObjectifiedDataElement;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_StringElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "StringElement", (PyObject *)&__pyx_type_4lxml_9objectify_StringElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_9objectify_StringElement = &__pyx_type_4lxml_9objectify_StringElement;
-  __pyx_type_4lxml_9objectify_NoneElement.tp_base = __pyx_ptype_4lxml_9objectify_ObjectifiedDataElement;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "NoneElement", (PyObject *)&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_ptype_4lxml_9objectify_NoneElement = &__pyx_type_4lxml_9objectify_NoneElement;
+  __pyx_type_4lxml_9objectify_IntElement.tp_base = __pyx_ptype_4lxml_9objectify_NumberElement;
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_IntElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "IntElement", (PyObject *)&__pyx_type_4lxml_9objectify_IntElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_9objectify_IntElement = &__pyx_type_4lxml_9objectify_IntElement;
   __pyx_type_4lxml_9objectify_BoolElement.tp_base = __pyx_ptype_4lxml_9objectify_IntElement;
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_BoolElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "BoolElement", (PyObject *)&__pyx_type_4lxml_9objectify_BoolElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_BoolElement = &__pyx_type_4lxml_9objectify_BoolElement;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  #if CYTHON_COMPILING_IN_CPYTHON
-  {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
-      __pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
-      __pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__.doc = __pyx_doc_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__;
-      ((PyWrapperDescrObject *)wrapper)->d_base = &__pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__;
-    }
-  }
-  #endif
-  __pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller = &__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller;
+  __pyx_type_4lxml_9objectify_LongElement.tp_base = __pyx_ptype_4lxml_9objectify_NumberElement;
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_LongElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "LongElement", (PyObject *)&__pyx_type_4lxml_9objectify_LongElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_9objectify_LongElement = &__pyx_type_4lxml_9objectify_LongElement;
   __pyx_vtabptr_4lxml_9objectify_ElementMaker = &__pyx_vtable_4lxml_9objectify_ElementMaker;
   __pyx_vtable_4lxml_9objectify_ElementMaker._build_element_maker = (PyObject *(*)(struct __pyx_obj_4lxml_9objectify_ElementMaker *, PyObject *))__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker;
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_ElementMaker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -30825,6 +29508,10 @@ PyMODINIT_FUNC PyInit_objectify(void)
   #endif
   if (__Pyx_SetAttrString(__pyx_m, "ObjectifyElementClassLookup", (PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup = &__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup;
+  __pyx_type_4lxml_9objectify_NoneElement.tp_base = __pyx_ptype_4lxml_9objectify_ObjectifiedDataElement;
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "NoneElement", (PyObject *)&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_9objectify_NoneElement = &__pyx_type_4lxml_9objectify_NoneElement;
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectPath) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
@@ -30838,6 +29525,10 @@ PyMODINIT_FUNC PyInit_objectify(void)
   #endif
   if (__Pyx_SetAttrString(__pyx_m, "ObjectPath", (PyObject *)&__pyx_type_4lxml_9objectify_ObjectPath) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_ObjectPath = &__pyx_type_4lxml_9objectify_ObjectPath;
+  __pyx_type_4lxml_9objectify_StringElement.tp_base = __pyx_ptype_4lxml_9objectify_ObjectifiedDataElement;
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_StringElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "StringElement", (PyObject *)&__pyx_type_4lxml_9objectify_StringElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_ptype_4lxml_9objectify_StringElement = &__pyx_type_4lxml_9objectify_StringElement;
   /*--- Type import code ---*/
   __pyx_ptype_4lxml_8includes_11etreepublic__Document = __Pyx_ImportType("lxml.etree", "_Document", sizeof(struct LxmlDocument), 0); if (unlikely(!__pyx_ptype_4lxml_8includes_11etreepublic__Document)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_8includes_11etreepublic__Element = __Pyx_ImportType("lxml.etree", "_Element", sizeof(struct LxmlElement), 0); if (unlikely(!__pyx_ptype_4lxml_8includes_11etreepublic__Element)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -32074,14 +30765,14 @@ static void __pyx_module_cleanup(CYTHON_UNUSED PyObject *self) {
   Py_CLEAR(__pyx_v_4lxml_9objectify_etree);
   __Pyx_CleanupGlobals();
   /*--- Type import cleanup code ---*/
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Element);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_FallbackElementClassLookup);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTagMatcher);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTree);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Document);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTagMatcher);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
   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);
@@ -32784,6 +31475,25 @@ bad:
     return (double)-1;
 }
 
+static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
+                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename) {
+    PyObject *old_exc, *old_val, *old_tb;
+    PyObject *ctx;
+    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
+    #if PY_MAJOR_VERSION < 3
+    ctx = PyString_FromString(name);
+    #else
+    ctx = PyUnicode_FromString(name);
+    #endif
+    __Pyx_ErrRestore(old_exc, old_val, old_tb);
+    if (!ctx) {
+        PyErr_WriteUnraisable(Py_None);
+    } else {
+        PyErr_WriteUnraisable(ctx);
+        Py_DECREF(ctx);
+    }
+}
+
 static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) {
 #if CYTHON_COMPILING_IN_CPYTHON
 #if PY_MAJOR_VERSION >= 3
@@ -33130,6 +31840,23 @@ static void __Pyx_call_next_tp_clear(PyObject* obj, inquiry current_tp_clear) {
         type->tp_clear(obj);
 }
 
+static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
+#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
+    PyObject *ob = PyCapsule_New(vtable, 0, 0);
+#else
+    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
+#endif
+    if (!ob)
+        goto bad;
+    if (PyDict_SetItem(dict, __pyx_n_s____pyx_vtable__, ob) < 0)
+        goto bad;
+    Py_DECREF(ob);
+    return 0;
+bad:
+    Py_XDECREF(ob);
+    return -1;
+}
+
 static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) {
     PyObject* value = __Pyx_PyObject_GetAttrStr(module, name);
     if (unlikely(!value) && PyErr_ExceptionMatches(PyExc_AttributeError)) {
@@ -33895,25 +32622,6 @@ static CYTHON_INLINE signed PY_LONG_LONG __Pyx_PyInt_AsSignedLongLong(PyObject*
     }
 }
 
-static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno,
-                                  CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename) {
-    PyObject *old_exc, *old_val, *old_tb;
-    PyObject *ctx;
-    __Pyx_ErrFetch(&old_exc, &old_val, &old_tb);
-    #if PY_MAJOR_VERSION < 3
-    ctx = PyString_FromString(name);
-    #else
-    ctx = PyUnicode_FromString(name);
-    #endif
-    __Pyx_ErrRestore(old_exc, old_val, old_tb);
-    if (!ctx) {
-        PyErr_WriteUnraisable(Py_None);
-    } else {
-        PyErr_WriteUnraisable(ctx);
-        Py_DECREF(ctx);
-    }
-}
-
 static int __Pyx_check_binary_version(void) {
     char ctversion[4], rtversion[4];
     PyOS_snprintf(ctversion, 4, "%d.%d", PY_MAJOR_VERSION, PY_MINOR_VERSION);
@@ -34001,23 +32709,6 @@ bad:
 }
 #endif
 
-static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
-#if PY_VERSION_HEX >= 0x02070000 && !(PY_MAJOR_VERSION==3&&PY_MINOR_VERSION==0)
-    PyObject *ob = PyCapsule_New(vtable, 0, 0);
-#else
-    PyObject *ob = PyCObject_FromVoidPtr(vtable, 0);
-#endif
-    if (!ob)
-        goto bad;
-    if (PyDict_SetItemString(dict, "__pyx_vtable__", ob) < 0)
-        goto bad;
-    Py_DECREF(ob);
-    return 0;
-bad:
-    Py_XDECREF(ob);
-    return -1;
-}
-
 static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) {
     int start = 0, mid = 0, end = count - 1;
     if (end >= 0 && code_line > entries[end].code_line) {
index 3d76361311475d66b7dcb84d21085d907ff3e19b..6e75c65ba1024d8d819f7cda7c05d54e6069fb6c 100644 (file)
@@ -369,17 +369,25 @@ cdef int moveNodeToDocument(_Document doc, xmlDoc* c_source_doc,
         c_node = c_element
         while c_node is not NULL:
             if c_node.ns is not NULL:
-                for i from 0 <= i < c_ns_cache.last:
+                c_ns = NULL
+                for i in range(c_ns_cache.last):
                     if c_node.ns is c_ns_cache.old[i]:
-                        c_node.ns = c_ns_cache.new[i]
+                        if (c_node.type == tree.XML_ATTRIBUTE_NODE
+                                and c_node.ns.prefix
+                                and not c_ns_cache.new[i].prefix):
+                            # avoid dropping prefix from attributes
+                            continue
+                        c_ns = c_ns_cache.new[i]
                         break
-                else:
-                    # not in cache => find a replacement from this document
+
+                if not c_ns:
+                    # not in cache or not acceptable
+                    # => find a replacement from this document
                     c_ns = doc._findOrBuildNodeNs(
                         c_start_node, c_node.ns.href, c_node.ns.prefix,
                         c_node.type == tree.XML_ATTRIBUTE_NODE)
                     _appendToNsCache(&c_ns_cache, c_node.ns, c_ns)
-                    c_node.ns = c_ns
+                c_node.ns = c_ns
 
             if c_node is c_element:
                 # after the element, continue with its attributes
index e2a8ae3fe0c36d7b89330a2526869916921604ce..9052a3de91cc1df7d07effd501a63d3d99dc0e4b 100644 (file)
@@ -261,8 +261,8 @@ cdef class _ReadOnlyEntityProxy(_ReadOnlyProxy):
 
         def __set__(self, value):
             value_utf = _utf8(value)
-            assert u'&' not in value and u';' not in value, \
-                u"Invalid entity name '%s'" % value
+            if u'&' in value or u';' in value:
+                raise ValueError(u"Invalid entity name '%s'" % value)
             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
 
     property text:
index 645a7db994044a8568afa86be34b936a462bc63c..c528a3cabd0b7dbd16dc6cde98933fb92b5e480d 100644 (file)
@@ -19,10 +19,10 @@ IS_PYPY = (getattr(sys, 'implementation', None) == 'pypy' or
 IS_PYTHON3 = sys.version_info[0] >= 3
 
 try:
-    from elementtree import ElementTree # standard ET
+    from xml.etree import ElementTree # Python 2.5+
 except ImportError:
     try:
-        from xml.etree import ElementTree # Python 2.5+
+        from elementtree import ElementTree # standard ET
     except ImportError:
         ElementTree = None
 
@@ -32,10 +32,10 @@ else:
     ET_VERSION = (0,0,0)
 
 try:
-    import cElementTree # standard ET
+    from xml.etree import cElementTree # Python 2.5+
 except ImportError:
     try:
-        from xml.etree import cElementTree # Python 2.5+
+        import cElementTree # standard ET
     except ImportError:
         cElementTree = None
 
index 7ca37270b1fe99744037e38fea177972c08a8293..0cd29785175c54f48fb32b8500b8b0bf10c1f656 100644 (file)
@@ -70,6 +70,40 @@ class ProxyTestCase(HelperTestCase):
                 self.assertTrue(False, "element '%s' is missing" % new.tag)
         self.assertEqual(0, missing)
 
+    def test_element_base(self):
+        el = self.etree.ElementBase()
+        self.assertEqual('ElementBase', el.tag)
+        root = self.etree.ElementBase()
+        root.append(el)
+        self.assertEqual('ElementBase', root[0].tag)
+
+    def test_element_base_children(self):
+        el = self.etree.ElementBase(etree.ElementBase())
+        self.assertEqual('ElementBase', el.tag)
+        self.assertEqual(1, len(el))
+        self.assertEqual('ElementBase', el[0].tag)
+
+        root = self.etree.ElementBase()
+        root.append(el)
+        self.assertEqual('ElementBase', root[0].tag)
+        self.assertEqual('ElementBase', root[0][0].tag)
+
+    def test_comment_base(self):
+        el = self.etree.CommentBase('some text')
+        self.assertEqual(self.etree.Comment, el.tag)
+        self.assertEqual('some text', el.text)
+        root = self.etree.Element('root')
+        root.append(el)
+        self.assertEqual('some text', root[0].text)
+
+    def test_pi_base(self):
+        el = self.etree.PIBase('the target', 'some text')
+        self.assertEqual(self.etree.ProcessingInstruction, el.tag)
+        self.assertEqual('some text', el.text)
+        root = self.etree.Element('root')
+        root.append(el)
+        self.assertEqual('some text', root[0].text)
+
 
 class ClassLookupTestCase(HelperTestCase):
     """Test cases for different Element class lookup mechanisms.
@@ -122,6 +156,29 @@ class ClassLookupTestCase(HelperTestCase):
         self.assertEqual("default pi", root[0].FIND_ME)
         self.assertEqual("default comment", root[1].FIND_ME)
 
+    def test_evil_class_lookup(self):
+        class MyLookup(etree.CustomElementClassLookup):
+            def lookup(self, t, d, ns, name):
+                if name == 'none':
+                    return None
+                elif name == 'obj':
+                    return object()
+                else:
+                    return etree.ElementBase
+
+        parser = etree.XMLParser()
+        parser.set_element_class_lookup(MyLookup())
+
+        root = etree.XML(_bytes('<none/>'), parser)
+        self.assertEqual('none', root.tag)
+
+        self.assertRaises(
+            TypeError,
+            etree.XML, _bytes("<obj />"), parser)
+
+        root = etree.XML(_bytes('<root/>'), parser)
+        self.assertEqual('root', root.tag)
+
     def test_attribute_based_lookup(self):
         class TestElement(etree.ElementBase):
             FIND_ME = "attribute_based"
@@ -256,6 +313,7 @@ class ClassLookupTestCase(HelperTestCase):
 
 def test_suite():
     suite = unittest.TestSuite()
+    suite.addTests([unittest.makeSuite(ProxyTestCase)])
     suite.addTests([unittest.makeSuite(ClassLookupTestCase)])
     return suite
 
index 1f265a49de8d8ac03d151c7ba136275b30402b15..6806cf985a17f9e787abc93781f93b2b7eca4ed6 100644 (file)
@@ -42,6 +42,14 @@ class _ETreeTestCaseBase(HelperTestCase):
     required_versions_ET = {}
     required_versions_cET = {}
 
+    def XMLParser(self, **kwargs):
+        try:
+            XMLParser = self.etree.XMLParser
+        except AttributeError:
+            assert 'ElementTree' in self.etree.__name__
+            XMLParser = self.etree.TreeBuilder
+        return XMLParser(**kwargs)
+
     def test_element(self):
         for i in range(10):
             e = self.etree.Element('foo')
@@ -3005,7 +3013,7 @@ class _ETreeTestCaseBase(HelperTestCase):
 
     required_versions_ET['test_parse_encoding_8bit_explicit'] = (1,3)
     def test_parse_encoding_8bit_explicit(self):
-        XMLParser = self.etree.XMLParser
+        XMLParser = self.XMLParser
 
         text = _str('Søk pÃ¥ nettet')
         xml_latin1 = (_str('<a>%s</a>') % text).encode('iso-8859-1')
@@ -3021,7 +3029,7 @@ class _ETreeTestCaseBase(HelperTestCase):
 
     required_versions_ET['test_parse_encoding_8bit_override'] = (1,3)
     def test_parse_encoding_8bit_override(self):
-        XMLParser = self.etree.XMLParser
+        XMLParser = self.XMLParser
 
         text = _str('Søk pÃ¥ nettet')
         wrong_declaration = _str("<?xml version='1.0' encoding='UTF-8'?>")
@@ -3402,7 +3410,7 @@ class _ETreeTestCaseBase(HelperTestCase):
     # feed parser interface
 
     def test_feed_parser_bytes(self):
-        parser = self.etree.XMLParser()
+        parser = self.XMLParser()
 
         parser.feed(_bytes('<?xml version='))
         parser.feed(_bytes('"1.0"?><ro'))
@@ -3418,7 +3426,7 @@ class _ETreeTestCaseBase(HelperTestCase):
         self.assertEqual(root[0].get("test"), "works")
 
     def test_feed_parser_unicode(self):
-        parser = self.etree.XMLParser()
+        parser = self.XMLParser()
 
         parser.feed(_str('<ro'))
         parser.feed(_str('ot><'))
@@ -3435,13 +3443,13 @@ class _ETreeTestCaseBase(HelperTestCase):
     required_versions_ET['test_feed_parser_error_close_empty'] = (1,3)
     def test_feed_parser_error_close_empty(self):
         ParseError = self.etree.ParseError
-        parser = self.etree.XMLParser()
+        parser = self.XMLParser()
         self.assertRaises(ParseError, parser.close)
 
     required_versions_ET['test_feed_parser_error_close_incomplete'] = (1,3)
     def test_feed_parser_error_close_incomplete(self):
         ParseError = self.etree.ParseError
-        parser = self.etree.XMLParser()
+        parser = self.XMLParser()
 
         parser.feed('<?xml version=')
         parser.feed('"1.0"?><ro')
@@ -3451,7 +3459,7 @@ class _ETreeTestCaseBase(HelperTestCase):
     required_versions_ET['test_feed_parser_error_broken'] = (1,3)
     def test_feed_parser_error_broken(self):
         ParseError = self.etree.ParseError
-        parser = self.etree.XMLParser()
+        parser = self.XMLParser()
 
         parser.feed('<?xml version=')
         parser.feed('"1.0"?><ro')
@@ -3466,7 +3474,7 @@ class _ETreeTestCaseBase(HelperTestCase):
     required_versions_ET['test_feed_parser_error_position'] = (1,3)
     def test_feed_parser_error_position(self):
         ParseError = self.etree.ParseError
-        parser = self.etree.XMLParser()
+        parser = self.XMLParser()
         try:
             parser.close()
         except ParseError:
@@ -3484,7 +3492,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             pass
 
         target = Target()
-        parser = self.etree.XMLParser(target=target)
+        parser = self.XMLParser(target=target)
 
         self.assertEqual(target, parser.target)
 
@@ -3504,7 +3512,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 return "DONE"
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         parser.feed("<TAG/>")
         done = parser.close()
@@ -3527,7 +3535,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 return "DONE"
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         try:
             parser.feed("<TAG/>")
@@ -3556,7 +3564,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 return "DONE"
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         try:
             parser.feed("<TAG/>")
@@ -3580,7 +3588,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 raise ValueError("TEST")
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         try:
             parser.feed("<TAG/>")
@@ -3606,7 +3614,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 raise ValueError("TEST-VE")
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         try:
             parser.feed("<TAG/>")
@@ -3646,7 +3654,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 return Element("DONE")
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
         tree = self.etree.ElementTree()
         tree.parse(BytesIO("<TAG/>"), parser=parser)
 
@@ -3667,7 +3675,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 return "DONE"
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         parser.feed('<root a="roota" b="rootb"><sub c="subc"/></root>')
         done = parser.close()
@@ -3688,7 +3696,7 @@ class _ETreeTestCaseBase(HelperTestCase):
             def close(self):
                 return "DONE"
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         parser.feed('<root>A<sub/>B</root>')
         done = parser.close()
@@ -3719,7 +3727,7 @@ class _ETreeTestCaseBase(HelperTestCase):
                 self._flush_data()
                 return "DONE"
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         dtd = '''
             <!DOCTYPE root [
@@ -3759,7 +3767,7 @@ class _ETreeTestCaseBase(HelperTestCase):
                 self._flush_data()
                 return "DONE"
 
-        parser = self.etree.XMLParser(target=Target())
+        parser = self.XMLParser(target=Target())
 
         def feed():
             parser.feed('<root><sub/><sub>some &ent;</sub><sub/></root>')
@@ -3791,7 +3799,7 @@ class _ETreeTestCaseBase(HelperTestCase):
         self.assertEqual("CHILDTAIL", root[0].tail)
 
     def test_treebuilder_target(self):
-        parser = self.etree.XMLParser(target=self.etree.TreeBuilder())
+        parser = self.XMLParser(target=self.etree.TreeBuilder())
         parser.feed('<root>ROOTTEXT<child>CHILDTEXT</child>CHILDTAIL</root>')
         root = parser.close()
 
index b59ce9913e622133cc051b5fbb25f161f18c09f1..860aee2c0f39078ac49a5471664bf67cf577116b 100644 (file)
@@ -2084,6 +2084,92 @@ class ETreeOnlyTestCase(HelperTestCase):
             _bytes('<bar xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi" hoi:test="value"></bar>'),
             self._writeElement(e))
 
+    def test_attribute_keeps_namespace_prefix_on_merge(self):
+        etree = self.etree
+
+        root = etree.Element('{http://test/ns}root',
+                             nsmap={None: 'http://test/ns'})
+        sub = etree.Element('{http://test/ns}sub',
+                            nsmap={'test': 'http://test/ns'})
+
+        sub.attrib['{http://test/ns}attr'] = 'value'
+        self.assertEqual(sub.attrib['{http://test/ns}attr'], 'value')
+        self.assertEqual(
+            _bytes('<test:sub xmlns:test="http://test/ns" test:attr="value"/>'),
+            etree.tostring(sub))
+
+        root.append(sub)
+        self.assertEqual(
+            _bytes('<root xmlns="http://test/ns">'
+                   '<sub xmlns:test="http://test/ns" test:attr="value"/>'
+                   '</root>'),
+            etree.tostring(root))
+
+    def test_attribute_keeps_namespace_prefix_on_merge_with_nons(self):
+        etree = self.etree
+
+        root = etree.Element('root')
+        sub = etree.Element('{http://test/ns}sub',
+                            nsmap={'test': 'http://test/ns'})
+
+        sub.attrib['{http://test/ns}attr'] = 'value'
+        self.assertEqual(sub.attrib['{http://test/ns}attr'], 'value')
+        self.assertEqual(
+            _bytes('<test:sub xmlns:test="http://test/ns" test:attr="value"/>'),
+            etree.tostring(sub))
+
+        root.append(sub)
+        self.assertEqual(
+            _bytes('<root>'
+                   '<test:sub xmlns:test="http://test/ns" test:attr="value"/>'
+                   '</root>'),
+            etree.tostring(root))
+
+    def test_attribute_gets_namespace_prefix_on_merge_with_nons(self):
+        etree = self.etree
+
+        root = etree.Element('root')
+        sub = etree.Element('{http://test/ns}sub',
+                            nsmap={None: 'http://test/ns'})
+
+        sub.attrib['{http://test/ns}attr'] = 'value'
+        self.assertEqual(sub.attrib['{http://test/ns}attr'], 'value')
+        self.assertEqual(
+            _bytes('<sub xmlns="http://test/ns" '
+                   'xmlns:ns0="http://test/ns" ns0:attr="value"/>'),
+            etree.tostring(sub))
+
+        root.append(sub)
+        self.assertEqual(
+            _bytes('<root>'
+                   '<sub xmlns="http://test/ns"'
+                   ' xmlns:ns0="http://test/ns" ns0:attr="value"/>'
+                   '</root>'),
+            etree.tostring(root))
+
+    def test_attribute_gets_namespace_prefix_on_merge(self):
+        etree = self.etree
+
+        root = etree.Element('{http://test/ns}root',
+                             nsmap={'test': 'http://test/ns',
+                                    None: 'http://test/ns'})
+        sub = etree.Element('{http://test/ns}sub',
+                            nsmap={None: 'http://test/ns'})
+
+        sub.attrib['{http://test/ns}attr'] = 'value'
+        self.assertEqual(sub.attrib['{http://test/ns}attr'], 'value')
+        self.assertEqual(
+            _bytes('<sub xmlns="http://test/ns" '
+                   'xmlns:ns0="http://test/ns" ns0:attr="value"/>'),
+            etree.tostring(sub))
+
+        root.append(sub)
+        self.assertEqual(
+            _bytes('<test:root xmlns:test="http://test/ns" xmlns="http://test/ns">'
+                   '<test:sub test:attr="value"/>'
+                   '</test:root>'),
+            etree.tostring(root))
+
     def test_namespaces_elementtree(self):
         etree = self.etree
         r = {None: 'http://ns.infrae.com/foo',
index 52d052f5343d48611524e1dd10c281ce7d40c40c..f549486f27d9970c97be24b9419d8b025deab71d 100644 (file)
@@ -1497,6 +1497,68 @@ class ETreeXSLTExtElementTestCase(HelperTestCase):
         self.assertEqual(self._rootstring(result),
                           _bytes('<A><T>Y</T><T>XYZ</T></A>'))
 
+    def test_extension_element_apply_templates_elements_only(self):
+        tree = self.parse('<a><b>B</b></a>')
+        style = self.parse('''\
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:myns="testns"
+    extension-element-prefixes="myns">
+  <xsl:template match="a">
+    <A><myns:myext><x>X</x><y>Y</y><z/></myns:myext></A>
+  </xsl:template>
+  <xsl:template match="x"><X/></xsl:template>
+  <xsl:template match="z">XYZ</xsl:template>
+</xsl:stylesheet>''')
+
+        class MyExt(etree.XSLTExtension):
+            def execute(self, context, self_node, input_node, output_parent):
+                for child in self_node:
+                    for result in self.apply_templates(context, child,
+                                                       elements_only=True):
+                        assert not isinstance(result, basestring)
+                        output_parent.append(result)
+
+        extensions = { ('testns', 'myext') : MyExt() }
+
+        result = tree.xslt(style, extensions=extensions)
+        self.assertEqual(self._rootstring(result),
+                          _bytes('<A><X/></A>'))
+
+    def test_extension_element_apply_templates_remove_blank_text(self):
+        tree = self.parse('<a><b>B</b></a>')
+        style = self.parse('''\
+<xsl:stylesheet version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:myns="testns"
+    extension-element-prefixes="myns">
+  <xsl:template match="a">
+    <A><myns:myext><x>X</x><y>Y</y><z/></myns:myext></A>
+  </xsl:template>
+  <xsl:template match="x"><X/></xsl:template>
+  <xsl:template match="y"><xsl:text>   </xsl:text></xsl:template>
+  <xsl:template match="z">XYZ</xsl:template>
+</xsl:stylesheet>''')
+
+        class MyExt(etree.XSLTExtension):
+            def execute(self, context, self_node, input_node, output_parent):
+                for child in self_node:
+                    for result in self.apply_templates(context, child,
+                                                       remove_blank_text=True):
+                        if isinstance(result, basestring):
+                            assert result.strip()
+                            el = etree.Element("T")
+                            el.text = result
+                        else:
+                            el = result
+                        output_parent.append(el)
+
+        extensions = { ('testns', 'myext') : MyExt() }
+
+        result = tree.xslt(style, extensions=extensions)
+        self.assertEqual(self._rootstring(result),
+                          _bytes('<A><X/><T>XYZ</T></A>'))
+
     def test_extension_element_apply_templates_target_node(self):
         tree = self.parse('<a><b>B</b></a>')
         style = self.parse('''\
index 1c4a134442cefc4cfa73c2b5f3bfcfadaec8d9b7..f34d6f6f934dae93697c15748d96899ad8eb10d6 100644 (file)
@@ -19,20 +19,27 @@ cdef class XSLTExtension:
         """
         pass
 
-    def apply_templates(self, _XSLTContext context not None, node, output_parent=None):
-        u"""apply_templates(self, context, node, output_parent=None)
+    def apply_templates(self, _XSLTContext context not None, node, output_parent=None,
+                        *, elements_only=False, remove_blank_text=False):
+        u"""apply_templates(self, context, node, output_parent=None, elements_only=False, remove_blank_text=False)
 
         Call this method to retrieve the result of applying templates
         to an element.
 
         The return value is a list of elements or text strings that
-        were generated by the XSLT processor.
+        were generated by the XSLT processor.  If you pass
+        ``elements_only=True``, strings will be discarded from the result
+        list.  The option ``remove_blank_text=True`` will only discard
+        strings that consist entirely of whitespace (e.g. formatting).
+        These options do not apply to Elements, only to bare string results.
 
         If you pass an Element as `output_parent` parameter, the result
         will instead be appended to the element (including attributes
         etc.) and the return value will be `None`.  This is a safe way
         to generate content into the output document directly, without
         having to take care of special values like text or attributes.
+        Note that the string discarding options will be ignored in this
+        case.
         """
         cdef xmlNode* c_parent
         cdef xmlNode* c_node
@@ -58,25 +65,33 @@ cdef class XSLTExtension:
             return None
 
         try:
-            return self._collectXSLTResultContent(context, c_parent)
+            return self._collectXSLTResultContent(
+                context, c_parent, elements_only, remove_blank_text)
         finally:
             # free all intermediate nodes that will not be freed by proxies
             tree.xmlFreeNode(c_parent)
 
-    def process_children(self, _XSLTContext context not None, output_parent=None):
-        u"""process_children(self, context, output_parent=None)
+    def process_children(self, _XSLTContext context not None, output_parent=None,
+                         *, elements_only=False, remove_blank_text=False):
+        u"""process_children(self, context, output_parent=None, elements_only=False, remove_blank_text=False)
 
         Call this method to process the XSLT content of the extension
         element itself.
 
         The return value is a list of elements or text strings that
-        were generated by the XSLT processor.
+        were generated by the XSLT processor.  If you pass
+        ``elements_only=True``, strings will be discarded from the result
+        list.  The option ``remove_blank_text=True`` will only discard
+        strings that consist entirely of whitespace (e.g. formatting).
+        These options do not apply to Elements, only to bare string results.
 
         If you pass an Element as `output_parent` parameter, the result
         will instead be appended to the element (including attributes
         etc.) and the return value will be `None`.  This is a safe way
         to generate content into the output document directly, without
         having to take care of special values like text or attributes.
+        Note that the string discarding options will be ignored in this
+        case.
         """
         cdef xmlNode* c_parent
         cdef xslt.xsltTransformContext* c_ctxt = context._xsltCtxt
@@ -102,12 +117,14 @@ cdef class XSLTExtension:
             return None
 
         try:
-            return self._collectXSLTResultContent(context, c_parent)
+            return self._collectXSLTResultContent(
+                context, c_parent, elements_only, remove_blank_text)
         finally:
             # free all intermediate nodes that will not be freed by proxies
             tree.xmlFreeNode(c_parent)
 
-    cdef _collectXSLTResultContent(self, _XSLTContext context, xmlNode* c_parent):
+    cdef _collectXSLTResultContent(self, _XSLTContext context, xmlNode* c_parent,
+                                   bint elements_only, bint remove_blank_text):
         cdef xmlNode* c_node
         cdef xmlNode* c_next
         cdef _ReadOnlyProxy proxy
@@ -116,7 +133,11 @@ cdef class XSLTExtension:
         while c_node is not NULL:
             c_next = c_node.next
             if c_node.type == tree.XML_TEXT_NODE:
-                results.append(funicode(c_node.content))
+                if not elements_only:
+                    s = funicode(c_node.content)
+                    if not remove_blank_text or s.strip():
+                        results.append(s)
+                    s = None
             elif c_node.type == tree.XML_ELEMENT_NODE:
                 proxy = _newReadOnlyProxy(
                     context._extension_element_proxy, c_node)
index 944880fa15e85084780c290b929924d3f8b6085f..e4604e3afd0dd7b7ebf8a8064658da22c365f6ef 100644 (file)
@@ -1 +1 @@
-3.2.0
+3.2.1